summaryrefslogtreecommitdiff
path: root/firmware/target/arm/ipod/boot.lds
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/ipod/boot.lds')
-rw-r--r--firmware/target/arm/ipod/boot.lds69
1 files changed, 69 insertions, 0 deletions
diff --git a/firmware/target/arm/ipod/boot.lds b/firmware/target/arm/ipod/boot.lds
new file mode 100644
index 0000000000..2f2f4f91a1
--- /dev/null
+++ b/firmware/target/arm/ipod/boot.lds
@@ -0,0 +1,69 @@
1#include "config.h"
2
3ENTRY(start)
4OUTPUT_FORMAT(elf32-littlearm)
5OUTPUT_ARCH(arm)
6INPUT(target/arm/crt0-pp-bl.o)
7
8#define DRAMSIZE (MEMORYSIZE * 0x100000)
9
10#if CONFIG_CPU == PP5020
11#define DRAMORIG 0x10000000
12#define IRAMORIG 0x40000000
13#define IRAMSIZE 0x18000
14#define FLASHORIG 0x001f0000
15#define FLASHSIZE 2M
16#elif (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024)
17#define DRAMORIG 0x10000000
18#ifndef IRAMORIG
19#define IRAMORIG 0x40000000
20#endif
21#define IRAMSIZE 0x20000
22#define FLASHORIG 0x001f0000
23#define FLASHSIZE 2M
24#elif CONFIG_CPU == PP5002
25#define DRAMORIG 0x28000000
26#define IRAMORIG 0x40000000
27#define IRAMSIZE 0x18000
28#define FLASHORIG 0x001f0000
29#define FLASHSIZE 2M
30#endif
31
32SECTIONS
33{
34 . = IRAMORIG;
35
36 .text : {
37 *(.init.text)
38 *(.text*)
39 }
40
41 .data : {
42 *(.icode)
43 *(.irodata)
44 *(.idata)
45 *(.data*)
46 _dataend = . ;
47 }
48
49 .stack :
50 {
51 *(.stack)
52 _stackbegin = .;
53 stackbegin = .;
54 . += 0x2000;
55 _stackend = .;
56 stackend = .;
57 }
58
59 /* The bss section is too large for IRAM - we just move it 16MB into the
60 DRAM */
61
62 . = (DRAMORIG+16*1024*1024);
63 .bss : {
64 _edata = .;
65 *(.bss*);
66 *(.ibss);
67 _end = .;
68 }
69}