5 OUTPUT_FORMAT(elf32-littlearm)
7 STARTUP(target/arm/crt0-pp.o)
9 #define PLUGINSIZE PLUGIN_BUFFER_SIZE
10 #define CODECSIZE CODEC_SIZE
13 #define STUBOFFSET 0x10000
18 #define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - STUBOFFSET - CODECSIZE
20 #define DRAMORIG 0x00000000 + STUBOFFSET
21 #define IRAMORIG 0x40000000
22 #define IRAMSIZE 0xc000
25 #define NOCACHE_BASE 0x10000000
27 #define NOCACHE_BASE 0x28000000
30 #define CACHEALIGN_SIZE 16
32 /* End of the audio buffer, where the codec buffer starts */
33 #define ENDAUDIOADDR (DRAMORIG + DRAMSIZE)
35 /* Where the codec buffer ends, and the plugin buffer starts */
36 #define ENDADDR (ENDAUDIOADDR + CODECSIZE)
40 DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
41 IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
60 *(.rodata) /* problems without this, dunno why */
66 /* Pseudo-allocate the copies of the data sections */
70 /* TRICK ALERT! For RAM execution, we put the .data section at the
71 same load address as the copy. Thus, we don't waste extra RAM
72 when we don't actually need the copy. */
73 .data : AT ( _datacopy )
82 /* .ncdata section is placed at uncached physical alias address and is
83 * loaded at the proper cached virtual address - no copying is
84 * performed in the init code */
85 .ncdata . + NOCACHE_BASE :
87 . = ALIGN(CACHEALIGN_SIZE);
89 . = ALIGN(CACHEALIGN_SIZE);
105 _vectorscopy = LOADADDR(.vectors);
106 _noloaddram = LOADADDR(.vectors);
108 .ibss IRAMORIG (NOLOAD) :
127 _iramcopy = LOADADDR(.iram);
129 .idle_stacks (NOLOAD) :
133 cpu_idlestackbegin = .;
134 . += IDLE_STACK_SIZE;
135 cpu_idlestackend = .;
137 cop_idlestackbegin = .;
138 . += IDLE_STACK_SIZE;
139 cop_idlestackend = .;
150 /* .bss and .ncbss are treated as a single section to use one init loop to
151 * zero it - note "_edata" and "_end" */
152 .bss _noloaddram (NOLOAD) :
160 #if NOCACHE_BASE != 0
161 .ncbss . + NOCACHE_BASE (NOLOAD):
163 . = ALIGN(CACHEALIGN_SIZE);
165 . = ALIGN(CACHEALIGN_SIZE);
169 /* This will be aligned by preceding alignments */
170 .endaddr . - NOCACHE_BASE (NOLOAD) :
181 .audiobufend ENDAUDIOADDR (NOLOAD) :
187 .codec ENDAUDIOADDR (NOLOAD) :
193 .plugin ENDADDR (NOLOAD) :