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