2023-01-10 17:50:24 +02:00
|
|
|
ENTRY (_start)
|
|
|
|
|
2024-03-26 00:09:05 +02:00
|
|
|
KERNEL_OFFSET = 0xC0000000;
|
|
|
|
|
2022-11-12 21:04:47 +02:00
|
|
|
SECTIONS
|
|
|
|
{
|
2024-03-26 00:09:05 +02:00
|
|
|
. = 0xF000;
|
|
|
|
.ap_init ALIGN(4K) : AT(ADDR(.ap_init))
|
|
|
|
{
|
|
|
|
g_ap_init_addr = .;
|
|
|
|
*(.ap_init)
|
|
|
|
}
|
|
|
|
|
|
|
|
. = 0x00100000 + KERNEL_OFFSET;
|
2023-01-10 17:50:24 +02:00
|
|
|
|
2023-04-21 10:40:24 +03:00
|
|
|
g_kernel_start = .;
|
2024-03-26 00:09:05 +02:00
|
|
|
.text ALIGN(4K) : AT(ADDR(.text) - KERNEL_OFFSET)
|
2022-11-12 21:04:47 +02:00
|
|
|
{
|
2024-03-26 00:09:05 +02:00
|
|
|
g_kernel_execute_start = .;
|
2022-11-15 00:32:07 +02:00
|
|
|
*(.multiboot)
|
2024-03-26 00:09:05 +02:00
|
|
|
*(.bananboot)
|
|
|
|
*(.text.*)
|
2022-11-12 21:04:47 +02:00
|
|
|
}
|
2024-03-26 00:09:05 +02:00
|
|
|
.userspace ALIGN(4K) : AT(ADDR(.userspace) - KERNEL_OFFSET)
|
|
|
|
{
|
|
|
|
g_userspace_start = .;
|
|
|
|
*(.userspace)
|
|
|
|
g_userspace_end = .;
|
|
|
|
g_kernel_execute_end = .;
|
|
|
|
}
|
|
|
|
.rodata ALIGN(4K) : AT(ADDR(.rodata) - KERNEL_OFFSET)
|
2022-11-12 21:04:47 +02:00
|
|
|
{
|
2023-03-13 15:32:46 +02:00
|
|
|
*(.rodata.*)
|
2022-11-12 21:04:47 +02:00
|
|
|
}
|
2024-03-26 00:09:05 +02:00
|
|
|
.data ALIGN(4K) : AT(ADDR(.data) - KERNEL_OFFSET)
|
2022-11-12 21:04:47 +02:00
|
|
|
{
|
2024-08-12 14:28:52 +03:00
|
|
|
g_kernel_writable_start = .;
|
2022-11-12 21:04:47 +02:00
|
|
|
*(.data)
|
|
|
|
}
|
2024-03-26 00:09:05 +02:00
|
|
|
.bss ALIGN(4K) : AT(ADDR(.bss) - KERNEL_OFFSET)
|
2022-11-12 21:04:47 +02:00
|
|
|
{
|
|
|
|
*(COMMON)
|
|
|
|
*(.bss)
|
2024-08-12 14:28:52 +03:00
|
|
|
g_kernel_writable_end = .;
|
2022-11-12 21:04:47 +02:00
|
|
|
}
|
2023-01-10 17:50:24 +02:00
|
|
|
g_kernel_end = .;
|
2024-01-24 14:43:46 +02:00
|
|
|
}
|