aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/cpu/pxa
diff options
context:
space:
mode:
authorŁukasz Dałek2013-01-12 11:39:27 +0000
committerTom Rini2013-01-14 16:22:00 -0700
commitdf3ad6c81d3c0095879359778a7532160a4a0a30 (patch)
tree04de02bc4ce2d005c52830a62b7e4bddadb98b9c /arch/arm/cpu/pxa
parent981481958f98f17089bd3d776f71599756d9b9bd (diff)
pxa: Save lr register in relocate_code function
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>
Diffstat (limited to 'arch/arm/cpu/pxa')
-rw-r--r--arch/arm/cpu/pxa/start.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/cpu/pxa/start.S b/arch/arm/cpu/pxa/start.S
index 72af8697040..e71803eb2e5 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