5 OUTPUT_FORMAT(elf32-m68k)
6 INPUT(target/coldfire/crt0.o)
7 #elif defined (CPU_ARM)
8 OUTPUT_FORMAT(elf32-littlearm)
11 INPUT(target/arm/crt0-pp-bl.o)
12 #elif defined(OLYMPUS_MROBE_500)
13 INPUT(target/arm/tms320dm320/crt0.o)
15 INPUT(target/arm/crt0.o)
18 OUTPUT_FORMAT(elf32-sh)
19 INPUT(target/sh/crt0.o)
22 #define DRAMSIZE (MEMORYSIZE * 0x100000)
24 #ifdef IRIVER_H100_SERIES
25 #define DRAMORIG 0x31000000
26 #define IRAMORIG 0x10000000
27 #define IRAMSIZE 0x18000
28 #define FLASHORIG 0x001f0000
30 #elif defined(IRIVER_H300_SERIES)
31 #define DRAMORIG 0x31000000
32 #define IRAMORIG 0x10000000
33 #define IRAMSIZE 0x18000
34 #define FLASHORIG 0x003f0000
36 #elif defined(IAUDIO_X5) || defined(IAUDIO_M5)
37 #define DRAMORIG 0x31000000
38 #define IRAMORIG 0x10000000
39 #define IRAMSIZE 0x20000
40 #define FLASHORIG 0x00010000
42 #elif CONFIG_CPU == PP5020
43 #define DRAMORIG 0x10000000
44 #define IRAMORIG 0x40000000
45 #define IRAMSIZE 0x18000
46 #define FLASHORIG 0x001f0000
48 #elif (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024)
49 #define DRAMORIG 0x10000000
51 #define IRAMORIG 0x40000000
53 #define IRAMSIZE 0x20000
54 #define FLASHORIG 0x001f0000
56 #elif CONFIG_CPU == S3C2440
57 #define DRAMORIG 0x30000000
58 #define IRAMORIG 0x40000000
60 #define FLASHORIG 0x0000000
62 #elif CONFIG_CPU == DM320
63 #define DRAMORIG 0x00900000
64 #define IRAMORIG 0x00000000
66 #define FLASHORIG 0x00100000
68 #elif CONFIG_CPU == PP5002
69 #define DRAMORIG 0x28000000
70 #define IRAMORIG 0x40000000
71 #define IRAMSIZE 0x18000
72 #define FLASHORIG 0x001f0000
74 #elif CONFIG_CPU == IMX31L
75 #define DRAMORIG 0x80000000
76 #define IRAMORIG 0x1FFFC000
78 #define FLASHORIG 0x0000000
81 #define DRAMORIG 0x09000000
82 #define IRAMORIG 0x0f000000
83 #define IRAMSIZE 0x1000
84 #define FLASHORIG 0x02000000 + ROM_START
85 #define FLASHSIZE 256K - ROM_START
88 #if !defined(CPU_PP) && (CONFIG_CPU!=S3C2440) && (CONFIG_CPU!=IMX31L)
91 DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
92 IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
93 FLASH : ORIGIN = FLASHORIG, LENGTH = FLASHSIZE
125 /* The bss section is too large for IRAM - we just move it 16MB into the
128 . = (DRAMORIG+16*1024*1024);
136 #elif (CONFIG_CPU==S3C2440)
138 . = DRAMORIG + 0x1000000;
171 #elif (CONFIG_CPU==DM320)
173 . = DRAMORIG + 0x1000000;
187 *(.rodata) /* problems without this, dunno why */
193 /* Pseudo-allocate the copies of the data sections */
228 KEEP(*(.resetvectors));
234 _vectorscopy = LOADADDR(.vectors);
236 #elif (CONFIG_CPU==IMX31L)
275 #if defined(IAUDIO_X5) || defined(IAUDIO_M5)
281 .data : AT ( _datacopy )
284 KEEP(*(.resetvectors));
295 . = ALIGN(0x10); /* Maintain proper alignment for .text section */
298 /* TRICK ALERT! Newer versions of the linker don't allow output sections
299 to overlap even if one of them is empty, so advance the location pointer
301 .text LOADADDR(.data) + SIZEOF(.data) :
325 #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) \
326 || defined(IAUDIO_X5) || defined(IAUDIO_M5)
327 .bss DRAMORIG+0x800000:
337 #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) \
338 || defined(IAUDIO_X5) || defined(IAUDIO_M5)