summaryrefslogtreecommitdiff
path: root/firmware/target/arm/olympus
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2013-07-19 08:18:16 -0400
committerMichael Sevakis <jethead71@rockbox.org>2013-07-19 08:18:16 -0400
commitd2249dce6f4dda8cb71e048ced6562f26515d27f (patch)
tree897a1da0147d9ea459d6ca3ec7234695dacfaa49 /firmware/target/arm/olympus
parent4596f51c90db76d125c7c963efa4876443a82440 (diff)
Combine PortalPlayer .lds files into one for app and boot.
These nearly identical files are multiplying like rabbits as PP targets are added and make SoC-related changes a PITA. Just include the master .lds file from the target one as was done for bootloader USB. Change-Id: I65e9e653030f0688b1728e32ada16abf2932e029
Diffstat (limited to 'firmware/target/arm/olympus')
-rw-r--r--firmware/target/arm/olympus/app.lds196
-rw-r--r--firmware/target/arm/olympus/boot.lds64
2 files changed, 2 insertions, 258 deletions
diff --git a/firmware/target/arm/olympus/app.lds b/firmware/target/arm/olympus/app.lds
index 30e5962b82..856cc52bb0 100644
--- a/firmware/target/arm/olympus/app.lds
+++ b/firmware/target/arm/olympus/app.lds
@@ -1,196 +1,2 @@
#include "config.h"
-
-ENTRY(start)
-
-OUTPUT_FORMAT(elf32-littlearm)
-OUTPUT_ARCH(arm)
-STARTUP(target/arm/pp/crt0-pp.o)
-
-#define PLUGINSIZE PLUGIN_BUFFER_SIZE
-#define CODECSIZE CODEC_SIZE
-
-#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - CODECSIZE
-
-#define DRAMORIG 0x00000000
-#define IRAMORIG 0x40000000
-#define IRAMSIZE 0xc000
-
-#ifdef CPU_PP502x
-#define NOCACHE_BASE 0x10000000
-#else
-#define NOCACHE_BASE 0x28000000
-#endif
-
-#define CACHEALIGN_SIZE 16
-
-/* End of the audio buffer, where the codec buffer starts */
-#define ENDAUDIOADDR (DRAMORIG + DRAMSIZE)
-
-/* Where the codec buffer ends, and the plugin buffer starts */
-#define ENDADDR (ENDAUDIOADDR + CODECSIZE)
-
-MEMORY
-{
- DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
- IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
-}
-
-SECTIONS
-{
- .text :
- {
- loadaddress = .;
- _loadaddress = .;
- . = ALIGN(0x200);
- *(.init.text)
- *(.text*)
- *(.glue_7)
- *(.glue_7t)
- . = ALIGN(0x4);
- } > DRAM
-
- .rodata :
- {
- *(.rodata) /* problems without this, dunno why */
- *(.rodata*)
- *(.rodata.str1.1)
- *(.rodata.str1.4)
- . = ALIGN(0x4);
- } > DRAM
-
- .data :
- {
- *(.data*)
- . = ALIGN(0x4);
- } > DRAM
-
-#if NOCACHE_BASE != 0
- /* .ncdata section is placed at uncached physical alias address and is
- * loaded at the proper cached virtual address - no copying is
- * performed in the init code */
- .ncdata . + NOCACHE_BASE :
- {
- . = ALIGN(CACHEALIGN_SIZE);
- *(.ncdata*)
- . = ALIGN(CACHEALIGN_SIZE);
- } AT> DRAM
-#endif
-
- /DISCARD/ :
- {
- *(.eh_frame)
- }
-
- .vectors 0x0 :
- {
- _vectorsstart = .;
- KEEP(*(.vectors));
- _vectorsend = .;
- } AT> DRAM
-
- _vectorscopy = LOADADDR(.vectors);
- _noloaddram = LOADADDR(.vectors);
-
- .ibss IRAMORIG (NOLOAD) :
- {
- _iedata = .;
- *(.qharray)
- *(.ibss)
- . = ALIGN(0x4);
- _iend = .;
- } > IRAM
-
- .iram _iend :
- {
- _iramstart = .;
- *(.icode)
- *(.irodata)
- *(.idata)
- . = ALIGN(0x4);
- _iramend = .;
- } > IRAM AT> DRAM
-
- _iramcopy = LOADADDR(.iram);
-
-
- .init ENDAUDIOADDR :
- {
- . = ALIGN(4);
- _initstart = .;
- *(.init*)
- _initend = .;
- } AT> DRAM
-
- _initcopy = LOADADDR(.init);
-
- .idle_stacks (NOLOAD) :
- {
- *(.idle_stacks)
-#if NUM_CORES > 1
- cpu_idlestackbegin = .;
- . += IDLE_STACK_SIZE;
- cpu_idlestackend = .;
-#endif
- cop_idlestackbegin = .;
- . += IDLE_STACK_SIZE;
- cop_idlestackend = .;
- } > IRAM
-
- .stack (NOLOAD) :
- {
- *(.stack)
- stackbegin = .;
- . += 0x2000;
- stackend = .;
- } > IRAM
-
- /* .bss and .ncbss are treated as a single section to use one init loop to
- * zero it - note "_edata" and "_end" */
- .bss _noloaddram (NOLOAD) :
- {
- _edata = .;
- *(.bss*)
- *(COMMON)
- . = ALIGN(0x4);
- } > DRAM
-
-#if NOCACHE_BASE != 0
- .ncbss . + NOCACHE_BASE (NOLOAD):
- {
- . = ALIGN(CACHEALIGN_SIZE);
- *(.ncbss*)
- . = ALIGN(CACHEALIGN_SIZE);
- } AT> DRAM
-#endif
-
- /* This will be aligned by preceding alignments */
- .endaddr . - NOCACHE_BASE (NOLOAD) :
- {
- _end = .;
- } > DRAM
-
- .audiobuf (NOLOAD) :
- {
- _audiobuffer = .;
- . = ALIGN(0x4);
- audiobuffer = .;
- } > DRAM
-
- .audiobufend ENDAUDIOADDR (NOLOAD) :
- {
- audiobufend = .;
- _audiobufend = .;
- } > DRAM
-
- .codec ENDAUDIOADDR (NOLOAD) :
- {
- codecbuf = .;
- _codecbuf = .;
- }
-
- .plugin ENDADDR (NOLOAD) :
- {
- _pluginbuf = .;
- pluginbuf = .;
- }
-}
+#include "../pp/app-pp.lds"
diff --git a/firmware/target/arm/olympus/boot.lds b/firmware/target/arm/olympus/boot.lds
index 98d9cb62fe..33b826bec8 100644
--- a/firmware/target/arm/olympus/boot.lds
+++ b/firmware/target/arm/olympus/boot.lds
@@ -1,64 +1,2 @@
#include "config.h"
-
-ENTRY(start)
-OUTPUT_FORMAT(elf32-littlearm)
-OUTPUT_ARCH(arm)
-STARTUP(target/arm/pp/crt0-pp-bl.o)
-
-#define DRAMSIZE (MEMORYSIZE * 0x100000)
-
-#define DRAMORIG 0x10000000
-#define IRAMORIG 0x40000000
-#define IRAMSIZE 0x18000
-#define FLASHORIG 0x001f0000
-#define FLASHSIZE 2M
-
-MEMORY
-{
- DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
- IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
-}
-
-SECTIONS
-{
- . = IRAMORIG;
-
- .text : {
- *(.init.text)
- *(.text*)
- *(.glue_7)
- *(.glue_7t)
- } > IRAM
-
- .data : {
- *(.icode)
- *(.irodata)
- *(.idata)
- *(.data*)
- *(.ncdata*)
- *(.rodata*)
- _dataend = . ;
- } > IRAM
-
- .stack (NOLOAD) : {
- *(.stack)
- _stackbegin = .;
- stackbegin = .;
- . += 0x2000;
- _stackend = .;
- stackend = .;
- } > IRAM
-
- /* The bss section is too large for IRAM - we just move it 16MB into the
- DRAM */
-
- . = DRAMORIG;
- .bss . + (16*1024*1024) (NOLOAD) : {
- _edata = .;
- *(.bss*);
- *(.ibss);
- *(COMMON)
- *(.ncbss*);
- _end = .;
- } > DRAM
-}
+#include "../pp/boot-pp.lds"