
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 luk0104@gmail.com
Acked-by: Marek Vasut marex@denx.de
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