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 CONFIG_CPU==DM320
13 INPUT(target/arm/tms320dm320/crt0.o)
14 #elif CONFIG_CPU==S3C2440
15 INPUT(target/arm/s3c2440/crt0.o)
16 #elif defined(CPU_TCC77X)
17 INPUT(target/arm/tcc77x/crt0.o)
19 INPUT(target/arm/crt0.o)
22 OUTPUT_FORMAT(elf32-sh)
23 INPUT(target/sh/crt0.o)
26 #define DRAMSIZE (MEMORYSIZE * 0x100000)
28 #ifdef IRIVER_H100_SERIES
29 #define DRAMORIG 0x31000000
30 #define IRAMORIG 0x10000000
31 #define IRAMSIZE 0x18000
32 #define FLASHORIG 0x001f0000
34 #elif defined(IRIVER_H300_SERIES)
35 #define DRAMORIG 0x31000000
36 #define IRAMORIG 0x10000000
37 #define IRAMSIZE 0x18000
38 #define FLASHORIG 0x003f0000
40 #elif defined(IAUDIO_X5) || defined(IAUDIO_M5)
41 #define DRAMORIG 0x31000000
42 #define IRAMORIG 0x10000000
43 #define IRAMSIZE 0x20000
44 #define FLASHORIG 0x00010000
46 #elif CONFIG_CPU == PP5020
47 #define DRAMORIG 0x10000000
48 #define IRAMORIG 0x40000000
49 #define IRAMSIZE 0x18000
50 #define FLASHORIG 0x001f0000
52 #elif (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024)
53 #define DRAMORIG 0x10000000
55 #define IRAMORIG 0x40000000
57 #define IRAMSIZE 0x20000
58 #define FLASHORIG 0x001f0000
60 #elif CONFIG_CPU == S3C2440
61 #define DRAMORIG 0x30000000
62 #define IRAMORIG 0x40000000
64 #define FLASHORIG 0x0000000
66 #elif CONFIG_CPU == DM320
67 #define DRAMORIG 0x00900000
68 #define IRAMORIG 0x00000000
70 #define FLASHORIG 0x00100000
72 #elif CONFIG_CPU == PP5002
73 #define DRAMORIG 0x28000000
74 #define IRAMORIG 0x40000000
75 #define IRAMSIZE 0x18000
76 #define FLASHORIG 0x001f0000
78 #elif CONFIG_CPU == IMX31L
79 #define DRAMORIG 0x80000000
80 #define IRAMORIG 0x1FFFC000
82 #define FLASHORIG 0x0000000
84 #elif defined(CPU_TCC77X)
85 #define DRAMORIG 0x20000000
86 #define IRAMORIG 0x00000000
88 #define FLASHORIG 0x0000000
91 #define DRAMORIG 0x09000000
92 #define IRAMORIG 0x0f000000
93 #define IRAMSIZE 0x1000
94 #define FLASHORIG 0x02000000 + ROM_START
95 #define FLASHSIZE 256K - ROM_START
98 #if defined(CPU_TCC77X)
102 DRAM : ORIGIN = DRAMORIG + DRAMSIZE - 0x100000, LENGTH = 0x100000
104 DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
106 IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
108 #elif !defined(CPU_PP) && (CONFIG_CPU!=S3C2440) && (CONFIG_CPU!=IMX31L)
111 DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
112 IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
113 FLASH : ORIGIN = FLASHORIG, LENGTH = FLASHSIZE
145 /* The bss section is too large for IRAM - we just move it 16MB into the
148 . = (DRAMORIG+16*1024*1024);
156 #elif (CONFIG_CPU==S3C2440)
158 . = DRAMORIG + 0x1000000;
191 #elif defined(CPU_TCC77X)
228 #elif (CONFIG_CPU==DM320)
230 . = DRAMORIG + 0x1000000;
244 *(.rodata) /* problems without this, dunno why */
250 /* Pseudo-allocate the copies of the data sections */
285 KEEP(*(.resetvectors));
291 _vectorscopy = LOADADDR(.vectors);
293 #elif (CONFIG_CPU==IMX31L)
332 #if defined(IAUDIO_X5) || defined(IAUDIO_M5)
338 .data : AT ( _datacopy )
341 KEEP(*(.resetvectors));
352 . = ALIGN(0x10); /* Maintain proper alignment for .text section */
355 /* TRICK ALERT! Newer versions of the linker don't allow output sections
356 to overlap even if one of them is empty, so advance the location pointer
358 .text LOADADDR(.data) + SIZEOF(.data) :
382 #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) \
383 || defined(IAUDIO_X5) || defined(IAUDIO_M5)
384 .bss DRAMORIG+0x800000:
394 #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) \
395 || defined(IAUDIO_X5) || defined(IAUDIO_M5)