aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Kamensky <victor.kamensky@linaro.org>2013-11-02 11:52:50 -0700
committerAndrey Konovalov <andrey.konovalov@linaro.org>2014-02-28 17:31:06 +0400
commitf98a9df3b4fd6fc46e0f5f496bb94b996d804f56 (patch)
tree85346967f94c9035e6c31e1aeb84580f2caa2705
parent4c71512083e4ce6ae1ef07bf2db1aa697fbb801b (diff)
exynos: secondary_startup endian fix
If kernel operates in BE mode on board that has LE bootloader/rom code, we need to switch CPU to operate in BE mode as soon as possible. generic secondary_startup that is called from exynos specific secondary startup code will do the switch, but we need it to do earlier because exynos specific secondary_startup code works with BE data. Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
-rw-r--r--arch/arm/mach-exynos/headsmp.S5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos/headsmp.S b/arch/arm/mach-exynos/headsmp.S
index b56bb9c0be3e..08d3d3f53283 100644
--- a/arch/arm/mach-exynos/headsmp.S
+++ b/arch/arm/mach-exynos/headsmp.S
@@ -112,6 +112,11 @@ enter_hyp:
mov pc, r0
ENTRY(exynos4_secondary_startup)
+ /*
+ * ROM code operates in little endian mode, when we get control we
+ * need to switch it to big endian mode.
+ */
+ARM_BE8(setend be)
mrc p15, 0, r0, c0, c0, 5
and r0, r0, #0xffffff
adr r4, 1f