diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2021-09-19 17:46:26 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2021-09-19 19:07:13 +0300 |
| commit | 4dffc92abf8f6a6e9b503c9809caaa99795d7a00 (patch) | |
| tree | 65fdb7c09f0b9a0ce2551fe8b51e637309322ed5 /arch/riscv/conf | |
| parent | 5979b0e7ba9064ae4033dbbe650bea86c2afb440 (diff) | |
| download | kmi-4dffc92abf8f6a6e9b503c9809caaa99795d7a00.tar.gz kmi-4dffc92abf8f6a6e9b503c9809caaa99795d7a00.zip | |
Added basic awareness of kernel size/bounds
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 = .; } |
