aboutsummaryrefslogtreecommitdiff
path: root/src/baremetal/link_riscv.ld
diff options
context:
space:
mode:
Diffstat (limited to 'src/baremetal/link_riscv.ld')
-rw-r--r--src/baremetal/link_riscv.ld39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/baremetal/link_riscv.ld b/src/baremetal/link_riscv.ld
new file mode 100644
index 0000000..cd470a4
--- /dev/null
+++ b/src/baremetal/link_riscv.ld
@@ -0,0 +1,39 @@
+OUTPUT_ARCH(riscv)
+OUTPUT_FORMAT(elf64-littleriscv)
+ENTRY(_start)
+
+MEMORY
+{
+ RAM (rwx) : ORIGIN = 0x80000000, LENGTH = 48M
+}
+
+SECTIONS
+{
+ .text : {
+ KEEP(*(.text.init))
+ *(.text .text.*)
+ } > RAM
+ .rodata : {
+ *(.rodata .rodata.*)
+ *(.srodata .srodata.*)
+ } > RAM
+ .data : {
+ *(.data .data.*)
+ *(.sdata .sdata.*)
+ } > RAM
+ .bss : {
+ . = ALIGN(16);
+ _sbss = .;
+ *(.bss .bss.*)
+ *(.sbss .sbss.*)
+ *(COMMON)
+ . = ALIGN(16);
+ _ebss = .;
+ } > RAM
+ .stack : {
+ . = ALIGN(16);
+ . += 64K;
+ _stack_top = .;
+ } > RAM
+ /DISCARD/ : { *(.eh_frame*) *(.comment) *(.note*) *(.riscv.attributes) }
+}