aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv/conf/init-link.S
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2021-09-19 17:46:26 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2021-09-19 19:07:13 +0300
commit4dffc92abf8f6a6e9b503c9809caaa99795d7a00 (patch)
tree65fdb7c09f0b9a0ce2551fe8b51e637309322ed5 /arch/riscv/conf/init-link.S
parent5979b0e7ba9064ae4033dbbe650bea86c2afb440 (diff)
downloadkmi-4dffc92abf8f6a6e9b503c9809caaa99795d7a00.tar.gz
kmi-4dffc92abf8f6a6e9b503c9809caaa99795d7a00.zip
Added basic awareness of kernel size/bounds
Diffstat (limited to 'arch/riscv/conf/init-link.S')
-rw-r--r--arch/riscv/conf/init-link.S21
1 files changed, 21 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 = . ;
}