summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525/app.lds
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2008-11-09 06:17:21 +0000
committerRafaël Carré <rafael.carre@gmail.com>2008-11-09 06:17:21 +0000
commitaef27e1f0c69516bbcf13d7986e204502d708ec4 (patch)
tree127bc7a9a71e8856247a6ea52805c1666a92c26c /firmware/target/arm/as3525/app.lds
parent308f21dc68ca1387c7003e9d185b717af7d575bf (diff)
downloadrockbox-aef27e1f0c69516bbcf13d7986e204502d708ec4.tar.gz
rockbox-aef27e1f0c69516bbcf13d7986e204502d708ec4.zip
Sansav2 Bootloader
Adds read-only SD driver, largely copied from ata-sd-pp.c Only tested on the embedded SD, on the Clip First steps to build a Normal firmware git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19045 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/as3525/app.lds')
-rw-r--r--firmware/target/arm/as3525/app.lds126
1 files changed, 126 insertions, 0 deletions
diff --git a/firmware/target/arm/as3525/app.lds b/firmware/target/arm/as3525/app.lds
new file mode 100644
index 0000000000..08b119eb3f
--- /dev/null
+++ b/firmware/target/arm/as3525/app.lds
@@ -0,0 +1,126 @@
1#include "config.h"
2
3ENTRY(start)
4
5OUTPUT_FORMAT(elf32-littlearm)
6OUTPUT_ARCH(arm)
7STARTUP(target/arm/crt0.o)
8
9#define PLUGINSIZE PLUGIN_BUFFER_SIZE
10#define CODECSIZE CODEC_SIZE
11
12#ifdef DEBUG
13#define STUBOFFSET 0x10000
14#else
15#define STUBOFFSET 0
16#endif
17
18#include "cpu.h"
19#define IRAMSIZE 0x50000
20#define DRAMSIZE (MEMORYSIZE * 0x100000) - STUBOFFSET - PLUGINSIZE - CODECSIZE
21
22#define IRAMORIG 0x0
23#define DRAMORIG 0x30000000 + STUBOFFSET
24
25/* End of the audio buffer, where the codec buffer starts */
26#define ENDAUDIOADDR (DRAMORIG + DRAMSIZE)
27
28/* Where the codec buffer ends, and the plugin buffer starts */
29#define ENDADDR (ENDAUDIOADDR + CODECSIZE)
30
31MEMORY
32{
33 IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
34 DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
35}
36
37SECTIONS
38{
39 loadaddress = 0x30000000;
40
41 .vectors DRAMORIG :
42 {
43 _vectorstart = .;
44 *(.vectors*);
45 *(.init.text)
46 . = ALIGN(0x4);
47 } > DRAM
48
49 .text :
50 {
51 _textstart = .;
52 *(.text)
53 *(.text*)
54 *(.icode)
55 *(.glue_7)
56 *(.glue_7t)
57 . = ALIGN(0x4);
58 } > DRAM
59
60 .rodata :
61 {
62 *(.rodata) /* problems without this, dunno why */
63 *(.rodata*)
64 *(.rodata.str1.1)
65 *(.rodata.str1.4)
66 *(.irodata*)
67 . = ALIGN(0x4);
68 } > DRAM
69
70 .data :
71 {
72 *(.data*)
73 *(.idata*)
74 . = ALIGN(0x4);
75 } > DRAM
76
77 /DISCARD/ :
78 {
79 *(.eh_frame)
80 }
81
82 _initdata_end =.;
83
84 .stack (NOLOAD) :
85 {
86 *(.stack)
87 stackbegin = .;
88 . += 0x2000;
89 stackend = .;
90 } > DRAM
91
92 .bss (NOLOAD) :
93 {
94 _edata = .;
95 *(.bss*)
96 *(.ibss*)
97 *(COMMON)
98 . = ALIGN(0x4);
99 _end = .;
100 } > DRAM
101
102 .audiobuf (NOLOAD) :
103 {
104 . = ALIGN(4);
105 _audiobuffer = .;
106 audiobuffer = .;
107 } > DRAM
108
109 .audiobufend ENDAUDIOADDR (NOLOAD) :
110 {
111 audiobufend = .;
112 _audiobufend = .;
113 } > DRAM
114
115 .codec ENDAUDIOADDR (NOLOAD) :
116 {
117 codecbuf = .;
118 _codecbuf = .;
119 }
120
121 .plugin ENDADDR (NOLOAD) :
122 {
123 _pluginbuf = .;
124 pluginbuf = .;
125 }
126}