fix: memory layout and startup
This commit is contained in:
parent
92d8a91be4
commit
8dc53f662e
7 changed files with 48 additions and 32 deletions
|
|
@ -1,6 +1,8 @@
|
|||
|
||||
ENTRY(__start)
|
||||
|
||||
high_base = 0xFFFF800000000000;
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MULTIBOOT_HEADER_PV : ORIGIN = 16k, LENGTH = 4k
|
||||
|
|
@ -9,7 +11,7 @@ MEMORY
|
|||
|
||||
KERNEL_MEMORY_P : ORIGIN = 64k, LENGTH = (1024M - ORIGIN(KERNEL_MEMORY_P))
|
||||
|
||||
HIGH_KERNEL_V : ORIGIN = 0xFFFF800000000000 + 64k, LENGTH = LENGTH(KERNEL_MEMORY_P)
|
||||
HIGH_KERNEL_V : ORIGIN = high_base + ORIGIN(KERNEL_MEMORY_P), LENGTH = LENGTH(KERNEL_MEMORY_P)
|
||||
}
|
||||
|
||||
SECTIONS
|
||||
|
|
@ -29,31 +31,31 @@ SECTIONS
|
|||
KEEP(*(.startup_data))
|
||||
__startup_data_end__ = .;
|
||||
} > START_MEMORY_PV
|
||||
.text : {
|
||||
.text : AT(ADDR(.text) - high_base) {
|
||||
__text_start__ = .;
|
||||
*(EXCLUDE_FILE(*trampoline*) .text)
|
||||
__text_end__ = .;
|
||||
} > HIGH_KERNEL_V AT > KERNEL_MEMORY_P
|
||||
.rodata : {
|
||||
} > HIGH_KERNEL_V
|
||||
.rodata : AT(ADDR(.rodata) - high_base) {
|
||||
__rodata_start__ = .;
|
||||
*(EXCLUDE_FILE(*trampoline*) .rodata)
|
||||
__rodata_end__ = .;
|
||||
} > HIGH_KERNEL_V AT > KERNEL_MEMORY_P
|
||||
.data : {
|
||||
} > HIGH_KERNEL_V
|
||||
.data : AT(ADDR(.data) - high_base) {
|
||||
__data_start__ = .;
|
||||
*(EXCLUDE_FILE(*trampoline*) .data)
|
||||
__data_end__ = .;
|
||||
} > HIGH_KERNEL_V AT > KERNEL_MEMORY_P
|
||||
.bss : {
|
||||
__bss_start__ = .;
|
||||
*(EXCLUDE_FILE(*trampoline*) .bss)
|
||||
__bss_end__ = .;
|
||||
} > HIGH_KERNEL_V AT > KERNEL_MEMORY_P
|
||||
.reserved_ranges : {
|
||||
} > HIGH_KERNEL_V
|
||||
.reserved_ranges : AT(ADDR(.reserved_ranges) - high_base) {
|
||||
__reserved_ranges_start__ = .;
|
||||
KEEP(*(.reserved_ranges))
|
||||
__reserved_ranges_end__ = .;
|
||||
} > HIGH_KERNEL_V AT > KERNEL_MEMORY_P
|
||||
} > HIGH_KERNEL_V
|
||||
.bss (NOLOAD) : AT(ADDR(.bss) - high_base) {
|
||||
__bss_start__ = .;
|
||||
*(EXCLUDE_FILE(*trampoline*) .bss)
|
||||
__bss_end__ = .;
|
||||
} > HIGH_KERNEL_V
|
||||
|
||||
.trampoline_text : {
|
||||
__trampoline_text_start__ = .;
|
||||
|
|
@ -67,18 +69,18 @@ SECTIONS
|
|||
__trampoline_data_end__ = .;
|
||||
} > TRAMPOLINE_PV
|
||||
|
||||
.trampoline_bss : {
|
||||
__trampoline_bss_start__ = .;
|
||||
*trampoline*(.bss)
|
||||
__trampoline_bss_end__ = .;
|
||||
} > TRAMPOLINE_PV
|
||||
|
||||
.trampoline_rodata : {
|
||||
__trampoline_rodata_start__ = .;
|
||||
*trampoline*(.rodata)
|
||||
__trampoline_rodata_end__ = .;
|
||||
} > TRAMPOLINE_PV
|
||||
|
||||
.trampoline_bss (NOLOAD) : {
|
||||
__trampoline_bss_start__ = .;
|
||||
*trampoline*(.bss)
|
||||
__trampoline_bss_end__ = .;
|
||||
} > TRAMPOLINE_PV
|
||||
|
||||
/DISCARD/ : {
|
||||
*(.comment)
|
||||
*(.eh_frame)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue