summaryrefslogtreecommitdiff
path: root/flash/bootloader/no_rom.lds
diff options
context:
space:
mode:
Diffstat (limited to 'flash/bootloader/no_rom.lds')
-rw-r--r--flash/bootloader/no_rom.lds62
1 files changed, 62 insertions, 0 deletions
diff --git a/flash/bootloader/no_rom.lds b/flash/bootloader/no_rom.lds
new file mode 100644
index 0000000000..e65e7fdd3c
--- /dev/null
+++ b/flash/bootloader/no_rom.lds
@@ -0,0 +1,62 @@
+/* This is for the variant without boot ROM,
+ where the flash ROM is mirrored to address zero */
+
+OUTPUT_FORMAT(elf32-sh)
+INPUT(bootloader.o)
+
+MEMORY
+{
+ IRAM : ORIGIN = 0x0FFFF000, LENGTH = 0x1000
+ FLASH : ORIGIN = 0x00000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+ .vectors :
+ {
+ *(.vectors)
+ . = ALIGN(0x200);
+ } > FLASH
+
+ .startup :
+ {
+ *(.startup)
+ . = ALIGN(0x4);
+ _begin_iramcopy = .;
+ } > FLASH
+
+ .text : AT ( _begin_iramcopy )
+ {
+ _begin_text = .;
+ *(.text)
+ . = ALIGN(0x4);
+ _end_text = .;
+ } > IRAM
+
+ .data : AT ( _end_text )
+ {
+ _begin_data = .;
+ *(.data)
+ . = ALIGN(0x4);
+ _end_data = .;
+ } > IRAM
+
+ .bss : AT ( _end_data )
+ {
+ _begin_bss = .;
+ *(.bss)
+ . = ALIGN(0x4);
+ _end_bss = .;
+ } > IRAM
+
+ .stack :
+ {
+ _begin_stack = .;
+ *(.stack)
+ . = ALIGN(0x1000);
+ _end_stack = .;
+ } > IRAM
+
+ /* size of the program (without vectors) */
+ _total_size = SIZEOF(.startup) + SIZEOF(.text) + SIZEOF(.data);
+}