aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2022-03-01 12:21:58 +0000
committerAndre Przywara <andre.przywara@arm.com>2022-03-03 01:24:06 +0000
commitc21f3d45711135179b4abbdc9462109a41060df6 (patch)
tree0361e690e3bfb5c18b15a57f2600d99ab70431ca
parent640f2f3bf1d6320274b17192a1ab9d8030211302 (diff)
downloadu-boot-c21f3d45711135179b4abbdc9462109a41060df6.zip
u-boot-c21f3d45711135179b4abbdc9462109a41060df6.tar.gz
u-boot-c21f3d45711135179b4abbdc9462109a41060df6.tar.bz2
sunxi: f1c100s: Fix FEL registers restore
Commit 88998f777531 ("arm: arm926ej-s: Add sunxi code") introduced the ARM926 version of the code to save and restore some FEL state, to be able to return to the BROM FEL code after the SPL has run. However during review a change was made, that happened to mess up the register restore part, so SCTLR and CPSR ended up with the wrong values, breaking return to FEL. Use the same offset that we actually save those registers to, to make FEL booting actually work on the Lichee Pi Nano. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-rw-r--r--arch/arm/cpu/arm926ejs/sunxi/fel_utils.S4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/cpu/arm926ejs/sunxi/fel_utils.S b/arch/arm/cpu/arm926ejs/sunxi/fel_utils.S
index 08be7ed..2592403 100644
--- a/arch/arm/cpu/arm926ejs/sunxi/fel_utils.S
+++ b/arch/arm/cpu/arm926ejs/sunxi/fel_utils.S
@@ -25,9 +25,9 @@ ENTRY(return_to_fel)
mov sp, r0
mov lr, r1
ldr r0, =fel_stash
- ldr r1, [r0, #16]
- mcr p15, 0, r1, c1, c0, 0 @ Write CP15 Control Register
ldr r1, [r0, #12]
+ mcr p15, 0, r1, c1, c0, 0 @ Write CP15 SCTLR register
+ ldr r1, [r0, #8]
msr cpsr, r1 @ Write CPSR
bx lr
ENDPROC(return_to_fel)