summaryrefslogtreecommitdiff
path: root/firmware/target/arm/rk27xx/crt0.S
diff options
context:
space:
mode:
authorMarcin Bukat <marcin.bukat@gmail.com>2014-01-10 08:56:40 +0100
committerMarcin Bukat <marcin.bukat@gmail.com>2014-01-10 09:01:08 +0100
commit9cd3444e272bbffc5ca6dcf172577b0e7885a3d2 (patch)
treee606ccba81fa96bbe21abc5e78ba688566fd762d /firmware/target/arm/rk27xx/crt0.S
parent837cad0d382e5600e68bb4ed6d499e6053fa50e5 (diff)
downloadrockbox-9cd3444e272bbffc5ca6dcf172577b0e7885a3d2.tar.gz
rockbox-9cd3444e272bbffc5ca6dcf172577b0e7885a3d2.zip
rk27xx: Implement HAVE_INIT_ATTR magic
This reclaims over 7kB of ram. Change-Id: I4a89c9a673ada7959311f320900060f6db303c07
Diffstat (limited to 'firmware/target/arm/rk27xx/crt0.S')
-rw-r--r--firmware/target/arm/rk27xx/crt0.S14
1 files changed, 14 insertions, 0 deletions
diff --git a/firmware/target/arm/rk27xx/crt0.S b/firmware/target/arm/rk27xx/crt0.S
index 2a6b2cc329..fb5f02dbdc 100644
--- a/firmware/target/arm/rk27xx/crt0.S
+++ b/firmware/target/arm/rk27xx/crt0.S
@@ -149,6 +149,20 @@ entry_point:
149 strhi r1, [r2], #4 149 strhi r1, [r2], #4
150 bhi 1b 150 bhi 1b
151 151
152#ifdef HAVE_INIT_ATTR
153 /* Copy init section to the codec buffer
154 * before .bss zeroing
155 */
156 ldr r2, =_initstart
157 ldr r3, =_initend
158 ldr r4, =_initcopy
1591:
160 cmp r3, r2
161 ldrhi r1, [r4], #4
162 strhi r1, [r2], #4
163 bhi 1b
164#endif
165
152 /* Initialise bss, ibss section to zero */ 166 /* Initialise bss, ibss section to zero */
153 ldr r2, =_edata 167 ldr r2, =_edata
154 ldr r3, =_end 168 ldr r3, =_end