diff options
Diffstat (limited to 'firmware/target/arm/imx31/app.lds')
-rw-r--r-- | firmware/target/arm/imx31/app.lds | 38 |
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 | |||
35 | MEMORY | 39 | MEMORY |
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 = .; |