]> git.kernelconcepts.de Git - karo-tx-uboot.git/commit
Exynos542x: Make A7s boot with thumb-mode U-Boot on warm reset
authorAkshay Saraswat <akshay.s@samsung.com>
Fri, 20 Feb 2015 07:57:19 +0000 (13:27 +0530)
committerLothar Waßmann <LW@KARO-electronics.de>
Tue, 1 Sep 2015 12:05:53 +0000 (14:05 +0200)
commitf50b2decf727c980bf891e42ad7fa38df22f1871
treeac770ac7e2fba8a6532d2b5a8707d588b28a3444
parentec035076fe501fa60dbf5a69b9c5464453a03b4c
Exynos542x: Make A7s boot with thumb-mode U-Boot on warm reset

On warm reset, all cores jump to the low_power_start function because iRAM
data is retained and because while executing iROM code all cores find
the jump flag 0x02020028 set. In low_power_start, cores check the reset
status and if true they clear the jump flag and jump back to 0x0.

The A7 cores do jump to 0x0 but consider following instructions as a Thumb
instructions which in turn makes them loop inside the iROM code instead of
jumping to power_down_core.

This issue is fixed by replacing the "mov pc" instruction with a "bx"
instruction which switches state along with the jump to make the execution
unit consider the branch target as an ARM instruction.

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