[PATCHv2] fix Thumb-2 decompressor broken by "Auto calculate ZRELADDR"

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Tue Aug 3 03:36:27 EDT 2010


Hello Rabin,

On Tue, Aug 03, 2010 at 06:10:06AM +0530, Rabin Vincent wrote:
> "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.
> 
> Signed-off-by: Rabin Vincent <rabin at rab.in>
Acked-and-regretted-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>

Thanks
Uwe

> ---
> v2: don't need separate code for ARM and THUMB since they're now
>     the same.
> 
>  arch/arm/boot/compressed/head.S |    5 ++---
>  1 files changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
> index abf4d65..6af9907 100644
> --- a/arch/arm/boot/compressed/head.S
> +++ b/arch/arm/boot/compressed/head.S
> @@ -170,9 +170,8 @@ not_angel:
>  
>  		.text
>  		adr	r0, LC0
> - ARM(		ldmia	r0, {r1, r2, r3, r5, r6, r11, ip, sp})
> - THUMB(		ldmia	r0, {r1, r2, r3, r5, r6, r11, ip}	)
> - THUMB(		ldr	sp, [r0, #32]				)
> +		ldmia	r0, {r1, r2, r3, r5, r6, r11, ip}
> +		ldr	sp, [r0, #28]
>  #ifdef CONFIG_AUTO_ZRELADDR
>  		@ determine final kernel image address
>  		and	r4, pc, #0xf8000000
> -- 
> 1.7.1
> 
> 

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |



More information about the linux-arm-kernel mailing list