summaryrefslogtreecommitdiff
path: root/kernel/kernel.ld
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/kernel.ld')
-rw-r--r--kernel/kernel.ld31
1 files changed, 31 insertions, 0 deletions
diff --git a/kernel/kernel.ld b/kernel/kernel.ld
new file mode 100644
index 0000000..53c9b90
--- /dev/null
+++ b/kernel/kernel.ld
@@ -0,0 +1,31 @@
+OUTPUT_ARCH( "riscv" )
+ENTRY( _entry )
+
+SECTIONS
+{
+ /*
+ * ensure that entry.S / _entry is at 0x80000000,
+ * where qemu's -kernel jumps.
+ */
+ . = 0x80000000;
+ .text :
+ {
+ *(.text)
+ . = ALIGN(0x1000);
+ *(trampoline)
+ }
+
+ . = ALIGN(0x1000);
+ PROVIDE(etext = .);
+
+ /*
+ * make sure end is after data and bss.
+ */
+ .data : {
+ *(.data)
+ }
+ bss : {
+ *(.bss)
+ PROVIDE(end = .);
+ }
+}