u-boot-brain/arch/arm/cpu/armv7/exynos
Akshay Saraswat c8fd8e66cd 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>
2015-02-28 18:03:46 +09:00
..
clock_init_exynos4.c EXYNOS: Move files from board/samsung to arch/arm 2013-07-05 17:06:55 +09:00
clock_init_exynos5.c Exynos5800: Introduce new proid for Exynos5800 2014-11-17 19:03:38 +09:00
clock_init.h arm: exynos: Add RPLL for Exynos5420 2014-09-05 20:37:07 +09:00
clock.c Exynos: Clock: Cleanup soc_get_periph_rate 2015-02-13 17:23:06 +09:00
common_setup.h EXYNOS: Move files from board/samsung to arch/arm 2013-07-05 17:06:55 +09:00
config.mk arm: put .hash, .got.plt and .machine_param back in binaries 2014-01-14 11:43:10 +01:00
dmc_common.c Exynos5: DMC: Modify the definition of ddr3_mem_ctrl_init 2014-06-13 17:05:13 +09:00
dmc_init_ddr3.c Exynos5: ddr3: Choose between single or double channel config 2014-11-17 19:03:38 +09:00
dmc_init_exynos4.c EXYNOS: Move files from board/samsung to arch/arm 2013-07-05 17:06:55 +09:00
exynos4_setup.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
exynos5_setup.h Exynos542x: CPU: Power down all secondary cores 2015-02-28 18:03:46 +09:00
Kconfig kconfig: remove unneeded dependency on !SPL_BUILD 2015-02-24 17:06:27 -05:00
lowlevel_init.c Exynos542x: Make A7s boot with thumb-mode U-Boot on warm reset 2015-02-28 18:03:46 +09:00
Makefile Exynos542x: Add workaround for exynos iROM errata 2015-02-28 18:03:46 +09:00
pinmux.c exynos5: pinmux: check flag for i2c config 2015-01-29 17:10:00 -07:00
power.c EXYNOS5: Add function to enable exynos5420 usbdev phy ctrl 2015-02-13 17:19:55 +09:00
sec_boot.S Exynos542x: Add workaround for exynos iROM errata 2015-02-28 18:03:46 +09:00
soc.c Exynos542x: add L2 control register configuration 2015-02-28 18:03:46 +09:00
spl_boot.c arm: Allow lr to be saved by board code 2015-02-16 20:14:54 +01:00
system.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
tzpc.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00