diff options
author | Victor Kamensky <victor.kamensky@linaro.org> | 2013-11-02 11:52:50 -0700 |
---|---|---|
committer | Andrey Konovalov <andrey.konovalov@linaro.org> | 2014-02-28 17:31:06 +0400 |
commit | f98a9df3b4fd6fc46e0f5f496bb94b996d804f56 (patch) | |
tree | 85346967f94c9035e6c31e1aeb84580f2caa2705 | |
parent | 4c71512083e4ce6ae1ef07bf2db1aa697fbb801b (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.S | 5 |
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 |