summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx31/app.lds
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2010-06-11 14:39:35 +0000
committerMichael Sevakis <jethead71@rockbox.org>2010-06-11 14:39:35 +0000
commit60f843bf181fba3fc509955195ecea786cc002b2 (patch)
tree31399c08bb3ec25dd98318e6f23bcd2f4a0191d0 /firmware/target/arm/imx31/app.lds
parentd5a27c2fb1d653bb133a57acacc06b9efdc3ce4c (diff)
downloadrockbox-60f843bf181fba3fc509955195ecea786cc002b2.tar.gz
rockbox-60f843bf181fba3fc509955195ecea786cc002b2.zip
Configure Gigabeat S with EABI compiler by default. Implement the INIT section that this enables (due to selective need for long calls). Remove pcm_postinit from INIT section since it's asynchronous. Disable strict aliasing on SPC codec for now just to shut it up.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26779 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/imx31/app.lds')
-rw-r--r--firmware/target/arm/imx31/app.lds38
1 files changed, 23 insertions, 15 deletions
diff --git a/firmware/target/arm/imx31/app.lds b/firmware/target/arm/imx31/app.lds
index 7043a55526..24b9f27d5d 100644
--- a/firmware/target/arm/imx31/app.lds
+++ b/firmware/target/arm/imx31/app.lds
@@ -32,9 +32,14 @@ STARTUP(target/arm/imx31/crt0.o)
32/* Where the codec buffer ends, and the plugin buffer starts */ 32/* Where the codec buffer ends, and the plugin buffer starts */
33#define ENDADDR (ENDAUDIOADDR + CODECSIZE) 33#define ENDADDR (ENDAUDIOADDR + CODECSIZE)
34 34
35/* INIT section is the codec buffer */
36#define INITSIZE CODECSIZE
37#define INITSTART ENDAUDIOADDR
38
35MEMORY 39MEMORY
36{ 40{
37 DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE 41 DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
42 INIT : ORIGIN = INITSTART, LENGTH = INITSIZE
38 QHARRAY : ORIGIN = QHARRAY_PHYS_ADDR, LENGTH = QHARRAY_SIZE 43 QHARRAY : ORIGIN = QHARRAY_PHYS_ADDR, LENGTH = QHARRAY_SIZE
39} 44}
40 45
@@ -97,25 +102,35 @@ SECTIONS
97 .vectors 0x0 : 102 .vectors 0x0 :
98 { 103 {
99 _vectorsstart = .; 104 _vectorsstart = .;
100 *(.vectors); 105 *(.vectors)
101 _vectorsend = .; 106 _vectorsend = .;
102 } AT> DRAM 107 } AT> DRAM
103 108
104 _vectorscopy = LOADADDR(.vectors); 109 _vectorscopy = LOADADDR(.vectors);
105 110
111 .init :
112 {
113 . = ALIGN(4);
114 _initstart = .;
115 *(.init)
116 *(.sdmacode)
117 _initend = .;
118 } > INIT AT> DRAM
119
120 _initcopy = LOADADDR(.init);
121
106 .stack (NOLOAD) : 122 .stack (NOLOAD) :
107 { 123 {
108 *(.stack) 124 . = ALIGN(4);
109 stackbegin = .; 125 *(.stack)
110 . += 0x2000; 126 stackbegin = .;
111 stackend = .; 127 . += 0x2000;
128 stackend = .;
112 } > DRAM 129 } > DRAM
113 130
114 _sdmacodecopy = stackbegin;
115
116 .bss (NOLOAD) : 131 .bss (NOLOAD) :
117 { 132 {
118 _edata = .; 133 _edata = .;
119 *(.bss*) 134 *(.bss*)
120 *(.ibss) 135 *(.ibss)
121 *(COMMON) 136 *(COMMON)
@@ -158,13 +173,6 @@ SECTIONS
158 pluginbuf = .; 173 pluginbuf = .;
159 } 174 }
160 175
161 .sdma _pluginbuf : AT( _sdmacodecopy )
162 {
163 _sdmacodestart = .;
164 *(.sdmacode);
165 _sdmacodeend = .;
166 }
167
168 .qharray (NOLOAD) : 176 .qharray (NOLOAD) :
169 { 177 {
170 _qharray = .; 178 _qharray = .;