aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv64/conf/init-link.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/riscv64/conf/init-link.S')
-rw-r--r--arch/riscv64/conf/init-link.S31
1 files changed, 31 insertions, 0 deletions
diff --git a/arch/riscv64/conf/init-link.S b/arch/riscv64/conf/init-link.S
new file mode 100644
index 0000000..baabcc6
--- /dev/null
+++ b/arch/riscv64/conf/init-link.S
@@ -0,0 +1,31 @@
+OUTPUT_ARCH(riscv)
+ENTRY(_start)
+
+SECTIONS {
+ . = ABSOLUTE(PM_KERN_BASE);
+ __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 : {
+ *(.sbss*) *(.bss*) *(COMMON)
+ }
+
+ __init_end = . ;
+ __kernel_size = <KERNEL_SIZE>;
+}