diff options
author | Victor Kamensky <victor.kamensky@linaro.org> | 2013-11-02 11:52:50 -0700 |
---|---|---|
committer | Gary S. Robertson <gary.robertson@linaro.org> | 2015-08-08 13:57:45 -0500 |
commit | a7a4a283dc96c668dad9842b914d0d718ffa496b (patch) | |
tree | 6eeefb635f10716695e3c780d868e57848f4575b | |
parent | eb280a0c490ade0b87482d01c3c555059b7187a6 (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 | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos/headsmp.S b/arch/arm/mach-exynos/headsmp.S index b54f9701e421..45b3006e4e58 100644 --- a/arch/arm/mach-exynos/headsmp.S +++ b/arch/arm/mach-exynos/headsmp.S @@ -11,6 +11,7 @@ */ #include <linux/linkage.h> #include <linux/init.h> +#include <asm/assembler.h> /* * exynos4 specific entry point for secondary CPUs. This provides @@ -18,6 +19,11 @@ * ready for them to initialise. */ 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, #15 adr r4, 1f |