diff options
author | Marcin Bukat <marcin.bukat@gmail.com> | 2010-04-26 21:40:16 +0000 |
---|---|---|
committer | Marcin Bukat <marcin.bukat@gmail.com> | 2010-04-26 21:40:16 +0000 |
commit | 28d54c6016459ffe93c0be2efea7de27c38d783c (patch) | |
tree | 9a7a71481f0a82599616a3e9f4e5bdad9fee8d6c /firmware/target/coldfire/mpio/boot.lds.flash | |
parent | b09d3aec392538ca0934644ff6357c41aaa4c323 (diff) | |
download | rockbox-28d54c6016459ffe93c0be2efea7de27c38d783c.tar.gz rockbox-28d54c6016459ffe93c0be2efea7de27c38d783c.zip |
Add MPIO HD200 port - new files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25725 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/coldfire/mpio/boot.lds.flash')
-rw-r--r-- | firmware/target/coldfire/mpio/boot.lds.flash | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/firmware/target/coldfire/mpio/boot.lds.flash b/firmware/target/coldfire/mpio/boot.lds.flash new file mode 100644 index 0000000000..2b086586ad --- /dev/null +++ b/firmware/target/coldfire/mpio/boot.lds.flash @@ -0,0 +1,81 @@ +#include "config.h" + +ENTRY(start) +OUTPUT_FORMAT(elf32-m68k) +STARTUP(target/coldfire/crt0.o) + +#define DRAMSIZE (MEMORYSIZE * 0x100000) + +#define DRAMORIG 0x31000000 +#define IRAMORIG 0x10000000 +#define IRAMSIZE 0x18000 +#define FLASHORIG 0x000e0000 +#define FLASHSIZE 0x1f800 + +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 DRAMORIG+0x800000: + { + _edata = .; + *(.ibss) + *(.bss*) + *(COMMON) + _end = .; + } > DRAM +} |