summaryrefslogtreecommitdiff
path: root/linker.ld
diff options
context:
space:
mode:
Diffstat (limited to 'linker.ld')
-rw-r--r--linker.ld45
1 files changed, 45 insertions, 0 deletions
diff --git a/linker.ld b/linker.ld
new file mode 100644
index 0000000..63e3249
--- /dev/null
+++ b/linker.ld
@@ -0,0 +1,45 @@
+OUTPUT_ARCH( "riscv" )
+ENTRY( _start )
+
+SECTIONS
+{
+ . = 0x80200000;
+
+ /* Text Segment */
+ .text : {
+ *(.text.entry)
+ *(.text .text.*)
+ . = ALIGN(0x1000);
+ PROVIDE(etext = .);
+ }
+
+ /* Read Only Data Segment */
+ .rodata : {
+ . = ALIGN(16);
+ *(.srodata .srodata.*)
+ . = ALIGN(16);
+ *(.rodata .rodata.*)
+ }
+
+ /* Data Segment */
+ .data : {
+ . = ALIGN(16);
+ *(.sdata .sdata.*)
+ . = ALIGN(16);
+ *(.data .data.*)
+ }
+
+ /* BBS Segment */
+ .bss : {
+ . = ALIGN(16);
+ PROVIDE(sbss = .);
+ *(.sbss .sbss.*)
+ . = ALIGN(16);
+ *(.bss .bss.*)
+ PROVIDE(ebss = .);
+ }
+
+ . = ALIGN(0x1000);
+ PROVIDE(end = .);
+ PROVIDE(kernel_end = .);
+} \ No newline at end of file