Exynos542x: Fix secondary core booting for thumb
authorAkshay Saraswat <akshay.s@samsung.com>
Fri, 20 Feb 2015 07:57:18 +0000 (13:27 +0530)
committerMinkyu Kang <mk7.kang@samsung.com>
Sat, 28 Feb 2015 09:03:46 +0000 (18:03 +0900)
commitcecf2db23b256d84ed54e1442b646f07373e5caa
tree15aae28b64d6ad4da8a80dc5b195bb8264ae3321
parent7e514eef02d2508a19be13d3efdf747c4e7ef5c5
Exynos542x: Fix secondary core booting for thumb

When compiled SPL for Thumb secondary cores failed to boot
at the kernel boot up. Only one core came up out of 4.
This was happening because the code relocated to the
address 0x02073000 by the primary core was an ARM asm
code which was executed by the secondary cores as if it
was a thumb code.
This patch fixes the issue of secondary cores considering
relocated code as Thumb instructions and not ARM instructions
by jumping to the relocated with the help of "bx" ARM instruction.
"bx" instruction changes the 5th bit of CPSR which allows
execution unit to consider the following instructions as ARM
instructions.

Signed-off-by: Akshay Saraswat <akshay.s@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
arch/arm/cpu/armv7/exynos/lowlevel_init.c
arch/arm/include/asm/arch-exynos/system.h