Dear Lukasz Dalek,

> When u-boot is compiled for PXA25x processor, pxa/start.S is calling
> cpu_init_crit by BL instruction. BL is overwriting lr register so
> relocate_code is going into infinite loop. This patch preservs lr
> register in r12 before calling cpu_init_crit and after function returns
> restores it.
> 
> Signed-off-by: Lukasz Dalek <[email protected]>

Acked-by: Marek Vasut <[email protected]>

Tom/Albert, can you please apply this for .01, seems critical to me ?

> ---
>  arch/arm/cpu/pxa/start.S |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/cpu/pxa/start.S b/arch/arm/cpu/pxa/start.S
> index 72af869..e71803e 100644
> --- a/arch/arm/cpu/pxa/start.S
> +++ b/arch/arm/cpu/pxa/start.S
> @@ -183,7 +183,9 @@ relocate_code:
> 
>  /* Disable the Dcache RAM lock for stack now */
>  #ifdef       CONFIG_CPU_PXA25X
> +     mov     r12, lr
>       bl      cpu_init_crit
> +     mov     lr, r12
>  #endif
> 
>       adr     r0, _start

Best regards,
Marek Vasut
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to