diff options
Diffstat (limited to 'arch/riscv/conf')
| -rw-r--r-- | arch/riscv/conf/init-link.S | 21 | ||||
| -rw-r--r-- | arch/riscv/conf/kernel-link.S | 16 |
2 files changed, 37 insertions, 0 deletions
diff --git a/arch/riscv/conf/init-link.S b/arch/riscv/conf/init-link.S index 2bb904b..86e692e 100644 --- a/arch/riscv/conf/init-link.S +++ b/arch/riscv/conf/init-link.S @@ -5,8 +5,29 @@ ENTRY(_start) SECTIONS { . = ABSOLUTE(PM_KERN); + __init_start = .; + + /* objcopy only copies these three sections (as far as I'm aware) into the + produces binary, so __init_end should point to the correct location in the + final binary + */ .text ALIGN(4K) : AT(0) { *(.init.start) *(.text*); } + + .rodata : { + *(.rodata*) + } + + .data : { + *(.data*) + } + + .bss : { + *(.bss*) *(COMMON) + } + + __kernel_size = <KERNEL_SIZE>; + __init_end = . ; } diff --git a/arch/riscv/conf/kernel-link.S b/arch/riscv/conf/kernel-link.S index 4592086..1ccdc77 100644 --- a/arch/riscv/conf/kernel-link.S +++ b/arch/riscv/conf/kernel-link.S @@ -5,8 +5,24 @@ ENTRY(main) SECTIONS { . = ABSOLUTE(VM_KERN); + __kernel_start = .; + .text ALIGN(4K) : AT(0) { *(.kernel.start); *(.text*); } + + .rodata : { + *(.rodata*) + } + + .data : { + *(.data*) + } + + .bss : { + *(.bss*) *(COMMON) + } + + __kernel_end = .; } |
