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)
13 INPUT(target/arm/crt0.o)
16 OUTPUT_FORMAT(elf32-sh)
17 INPUT(target/sh/crt0.o)
20 #define DRAMSIZE (MEMORYSIZE * 0x100000)
22 #ifdef IRIVER_H100_SERIES
23 #define DRAMORIG 0x31000000
24 #define IRAMORIG 0x10000000
25 #define IRAMSIZE 0x18000
26 #define FLASHORIG 0x001f0000
28 #elif defined(IRIVER_H300_SERIES)
29 #define DRAMORIG 0x31000000
30 #define IRAMORIG 0x10000000
31 #define IRAMSIZE 0x18000
32 #define FLASHORIG 0x003f0000
34 #elif defined(IAUDIO_X5) || defined(IAUDIO_M5)
35 #define DRAMORIG 0x31000000
36 #define IRAMORIG 0x10000000
37 #define IRAMSIZE 0x20000
38 #define FLASHORIG 0x00010000
40 #elif CONFIG_CPU == PP5020
41 #define DRAMORIG 0x10000000
42 #define IRAMORIG 0x40000000
43 #define IRAMSIZE 0x18000
44 #define FLASHORIG 0x001f0000
46 #elif (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024)
47 #define DRAMORIG 0x10000000
48 #define IRAMORIG 0x40000000
49 #define IRAMSIZE 0x20000
50 #define FLASHORIG 0x001f0000
52 #elif CONFIG_CPU == S3C2440
53 #define DRAMORIG 0x30000000
54 #define IRAMORIG 0x40000000
56 #define FLASHORIG 0x0000000
58 #elif CONFIG_CPU == PP5002
59 #define DRAMORIG 0x28000000
60 #define IRAMORIG 0x40000000
61 #define IRAMSIZE 0x18000
62 #define FLASHORIG 0x001f0000
65 #define DRAMORIG 0x09000000
66 #define IRAMORIG 0x0f000000
67 #define IRAMSIZE 0x1000
68 #define FLASHORIG 0x02000000 + ROM_START
69 #define FLASHSIZE 256K - ROM_START
72 #if !defined(CPU_PP) && (CONFIG_CPU!=S3C2440)
75 DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
76 IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
77 FLASH : ORIGIN = FLASHORIG, LENGTH = FLASHSIZE
109 /* The bss section is too large for IRAM - we just move it 16MB into the
112 . = (DRAMORIG+16*1024*1024);
120 #elif (CONFIG_CPU==S3C2440)
122 . = DRAMORIG + 0x1000000;
154 #if defined(IAUDIO_X5) || defined(IAUDIO_M5)
160 .data : AT ( _datacopy )
163 KEEP(*(.resetvectors));
174 . = ALIGN(0x10); /* Maintain proper alignment for .text section */
177 /* TRICK ALERT! Newer versions of the linker don't allow output sections
178 to overlap even if one of them is empty, so advance the location pointer
180 .text LOADADDR(.data) + SIZEOF(.data) :
204 #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) \
205 || defined(IAUDIO_X5) || defined(IAUDIO_M5)
206 .bss DRAMORIG+0x800000:
216 #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) \
217 || defined(IAUDIO_X5) || defined(IAUDIO_M5)