From 82c52302bdc664fdcb177811c65c2891d53ef73a Mon Sep 17 00:00:00 2001 From: Marcoen Hirschberg Date: Thu, 27 Mar 2008 23:58:03 +0000 Subject: split boot.lds and move it into the target tree git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16855 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/sh/archos/boot.lds | 81 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 firmware/target/sh/archos/boot.lds (limited to 'firmware/target/sh') diff --git a/firmware/target/sh/archos/boot.lds b/firmware/target/sh/archos/boot.lds new file mode 100644 index 0000000000..8002f6e87f --- /dev/null +++ b/firmware/target/sh/archos/boot.lds @@ -0,0 +1,81 @@ +#include "config.h" + +ENTRY(start) +OUTPUT_FORMAT(elf32-sh) +INPUT(target/sh/crt0.o) + +#define DRAMSIZE (MEMORYSIZE * 0x100000) + +#define DRAMORIG 0x09000000 +#define IRAMORIG 0x0f000000 +#define IRAMSIZE 0x1000 +#define FLASHORIG 0x02000000 + ROM_START +#define FLASHSIZE 256K - ROM_START + +MEMORY +{ + DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE + IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE + FLASH : ORIGIN = FLASHORIG, LENGTH = FLASHSIZE +} + +SECTIONS +{ + .vectors : + { + _datacopy = .; + } > FLASH + + .data : AT ( _datacopy ) + { + _datastart = .; + KEEP(*(.resetvectors)); + *(.resetvectors); + KEEP(*(.vectors)); + *(.vectors); + . = ALIGN(0x200); + *(.icode) + *(.irodata) + *(.idata) + *(.data*) + . = ALIGN(0x4); + _dataend = .; + . = ALIGN(0x10); /* Maintain proper alignment for .text section */ + } > IRAM + + /* TRICK ALERT! Newer versions of the linker don't allow output sections + to overlap even if one of them is empty, so advance the location pointer + "by hand" */ + .text LOADADDR(.data) + SIZEOF(.data) : + { + *(.init.text) + *(.text*) + . = ALIGN(0x4); + } > FLASH + + .rodata : + { + *(.rodata*) + . = ALIGN(0x4); + _iramcopy = .; + } > FLASH + + .stack : + { + *(.stack) + _stackbegin = .; + stackbegin = .; + . += 0x2000; + _stackend = .; + stackend = .; + } > IRAM + + .bss : + { + _edata = .; + *(.ibss) + *(.bss*) + *(COMMON) + _end = .; + } > IRAM +} -- cgit