From 8dae933293223e28648ec72ac818ab2a98ee2482 Mon Sep 17 00:00:00 2001 From: Dave Chapman Date: Thu, 17 Sep 2009 07:26:08 +0000 Subject: Add an app.lds and some stub functions for the Nano 2G - this isn't enough to make rockbox.bin compile, but it's a step towards it (more commits coming soon). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22714 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/s5l8700/app.lds | 150 ++++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 firmware/target/arm/s5l8700/app.lds (limited to 'firmware/target/arm/s5l8700/app.lds') diff --git a/firmware/target/arm/s5l8700/app.lds b/firmware/target/arm/s5l8700/app.lds new file mode 100644 index 0000000000..812bce8cbb --- /dev/null +++ b/firmware/target/arm/s5l8700/app.lds @@ -0,0 +1,150 @@ +#include "config.h" +#include "cpu.h" + +ENTRY(start) + +OUTPUT_FORMAT(elf32-littlearm) +OUTPUT_ARCH(arm) +STARTUP(target/arm/s5l8700/crt0.o) + +#define PLUGINSIZE PLUGIN_BUFFER_SIZE +#define CODECSIZE CODEC_SIZE + +#ifdef DEBUG +#define STUBOFFSET 0x10000 +#else +#define STUBOFFSET 0 +#endif + + +#define IRAMORIG 0x0 +#define DRAMORIG 0x08000000 + +/* End of the audio buffer, where the codec buffer starts */ +#define ENDAUDIOADDR (DRAMORIG + DRAMSIZE) + +#define DRAM_SIZE (MEMORYSIZE * 0x100000) + +#define DRAMSIZE (DRAM_SIZE - STUBOFFSET - PLUGINSIZE - CODECSIZE) +#define CODECORIG (ENDAUDIOADDR) +#define IRAMSIZE (0x20000) + +/* Where the codec buffer ends, and the plugin buffer starts */ +#define ENDADDR (ENDAUDIOADDR + CODECSIZE) + +MEMORY +{ + IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE + DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE +} + +SECTIONS +{ + loadaddress = DRAMORIG; + + .intvect : { + _intvectstart = . ; + *(.intvect) + _intvectend = _newstart ; + } >IRAM AT> DRAM + _intvectcopy = LOADADDR(.intvect) ; + + .text : + { + _loadaddress = .; + _textstart = .; + *(.init.text) + *(.text) + *(.text*) + *(.glue_7) + *(.glue_7t) + . = ALIGN(0x4); + } > DRAM + + .rodata : + { + *(.rodata*) + . = ALIGN(0x4); + } > DRAM + + .data : + { + *(.data*) + . = ALIGN(0x4); + } > DRAM + + /DISCARD/ : + { + *(.eh_frame) + } + + .iram : + { + _iramstart = .; + *(.icode) + *(.irodata) + *(.idata) + . = ALIGN(0x4); + _iramend = .; + } > IRAM AT> DRAM + _iramcopy = LOADADDR(.iram) ; + + .ibss (NOLOAD) : + { + _iedata = .; + *(.qharray) + *(.ibss) + . = ALIGN(0x4); + _iend = .; + } > IRAM + + .stack (NOLOAD) : + { + *(.stack) + stackbegin = .; + _stackbegin = .; + . += 0x2000; + stackend = .; + _stackend = .; + _irqstackbegin = .; + . += 0x400; + _irqstackend = .; + _fiqstackbegin = .; + . += 0x400; + _fiqstackend = .; + } > IRAM + + .bss (NOLOAD) : + { + _edata = .; + *(.bss*) + *(COMMON) + . = ALIGN(0x4); + _end = .; + } > DRAM + + .audiobuf (NOLOAD) : + { + . = ALIGN(4); + _audiobuffer = .; + audiobuffer = .; + } > DRAM + + .audiobufend ENDAUDIOADDR (NOLOAD) : + { + audiobufend = .; + _audiobufend = .; + } > DRAM + + .codec CODECORIG (NOLOAD) : + { + codecbuf = .; + _codecbuf = .; + } > DRAM + + .plugin ENDADDR (NOLOAD) : + { + _pluginbuf = .; + pluginbuf = .; + } +} -- cgit v1.2.3