]> git.kernelconcepts.de Git - karo-tx-uboot.git/commit
Exynos542x: Fix secondary core booting for thumb
authorAkshay Saraswat <akshay.s@samsung.com>
Fri, 20 Feb 2015 07:57:18 +0000 (13:27 +0530)
committerLothar Waßmann <LW@KARO-electronics.de>
Tue, 1 Sep 2015 12:05:53 +0000 (14:05 +0200)
commitec035076fe501fa60dbf5a69b9c5464453a03b4c
tree28dee95191f8dfb8d3d5669f9ad5d2ba16e563b3
parent077f4d27c469df45aaf0771bc49a57949972d173
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