aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/boot/compressed
diff options
context:
space:
mode:
authorRabin Vincent <rabin@rab.in>2010-08-03 11:47:03 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-08-10 17:10:51 -0400
commit77754410fb8ecd7cf307bcd75d60f3b22b8c3cd2 (patch)
tree649c8306543df05b56ae4d220982dfce4725c85c /arch/arm/boot/compressed
parent81ef806163ebfd4775fc3154e031aad6feaaa192 (diff)
ARM: 6286/1: fix Thumb-2 decompressor broken by "Auto calculate ZRELADDR"
"ARM: Auto calculate ZRELADDR and provide option for exceptions" broke the Thumb-2 decompressor because it removed an entry in the LC0 table but didn't adjust the offset the Thumb-2 code uses to load the SP from that table. Fix it, and also change the ARM code to use the separate SP-load since ARM instructions that include the SP in the LDM register list are deprecated. Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Rabin Vincent <rabin@rab.in> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/boot/compressed')
-rw-r--r--arch/arm/boot/compressed/head.S5
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index abf4d65acf62..6af9907c3b5c 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -170,9 +170,8 @@ not_angel:
170 170
171 .text 171 .text
172 adr r0, LC0 172 adr r0, LC0
173 ARM( ldmia r0, {r1, r2, r3, r5, r6, r11, ip, sp}) 173 ldmia r0, {r1, r2, r3, r5, r6, r11, ip}
174 THUMB( ldmia r0, {r1, r2, r3, r5, r6, r11, ip} ) 174 ldr sp, [r0, #28]
175 THUMB( ldr sp, [r0, #32] )
176#ifdef CONFIG_AUTO_ZRELADDR 175#ifdef CONFIG_AUTO_ZRELADDR
177 @ determine final kernel image address 176 @ determine final kernel image address
178 and r4, pc, #0xf8000000 177 and r4, pc, #0xf8000000