summaryrefslogtreecommitdiff
path: root/firmware/decompressor/link.lds
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-11-27 23:55:13 +0000
committerJens Arnold <amiconn@rockbox.org>2005-11-27 23:55:13 +0000
commitdbff1f20eec246d9c9f720b1fa64696fd7671737 (patch)
tree0a8a73832532bc6b194d5b74f789ba501998e651 /firmware/decompressor/link.lds
parent4923f49c6f89b751c89678d328d6b5adb7d7bcfb (diff)
downloadrockbox-dbff1f20eec246d9c9f720b1fa64696fd7671737.zip
rockbox-dbff1f20eec246d9c9f720b1fa64696fd7671737.tar.gz
rockbox-dbff1f20eec246d9c9f720b1fa64696fd7671737.tar.bz2
rockbox-dbff1f20eec246d9c9f720b1fa64696fd7671737.tar.xz
Archos targets: Self-extractor for on-disk firmware images to work around the file size limit. Re-uses rockbox.ucl. Not yet integrated with build system.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8089 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/decompressor/link.lds')
-rwxr-xr-xfirmware/decompressor/link.lds74
1 files changed, 74 insertions, 0 deletions
diff --git a/firmware/decompressor/link.lds b/firmware/decompressor/link.lds
new file mode 100755
index 0000000..9cb4be8
--- /dev/null
+++ b/firmware/decompressor/link.lds
@@ -0,0 +1,74 @@
+OUTPUT_FORMAT(elf32-sh)
+
+#define DRAMORIG 0x09000000
+#define DRAMSIZE (MEMORYSIZE * 0x00100000)
+#define IRAMORIG 0x0f000000
+#define IRAMSIZE 0x00001000
+
+MEMORY
+{
+ IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
+ DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
+}
+
+SECTIONS
+{
+ .vectors :
+ {
+ _loadaddress = .;
+ _dramend = . + DRAMSIZE;
+ *(.vectors)
+ . = ALIGN(0x200);
+ } > DRAM
+
+ .text :
+ {
+ *(.start)
+ *(.text)
+ . = ALIGN(0x4);
+ } > DRAM
+
+ .rodata :
+ {
+ *(.rodata*)
+ *(.rodata.str1.1)
+ *(.rodata.str1.4)
+ . = ALIGN(0x4);
+ } > DRAM
+
+ .data :
+ {
+ *(.data)
+ . = ALIGN(0x4);
+ _imgstart = .;
+ *(.image)
+ . = ALIGN(0x4);
+ _imgend = .;
+ _iramcopy = .;
+ } > DRAM
+
+ .iram IRAMORIG : AT ( _iramcopy )
+ {
+ _iramstart = .;
+ *(.icode)
+ *(.idata)
+ . = ALIGN(0x4);
+ _iramend = .;
+ } > IRAM
+
+ .stack :
+ {
+ _stackbegin = .;
+ *(.stack)
+ . += 0x0800;
+ _stackend = .;
+ } > IRAM
+
+ .bss :
+ {
+ _edata = .;
+ *(.bss)
+ . = ALIGN(0x4);
+ _end = .;
+ } > DRAM
+}