u-boot/arch/arm/cpu/armv7/exynos
Akshay Saraswat 67a0652c47 Exynos542x: Add workaround for exynos iROM errata
iROM logic provides undesired jump address for CPU2.
This patch adds a programmable susbstitute for a part of
iROM logic which wakes up cores and provides jump addresses.
This patch creates a logic to make all secondary cores jump
to a particular address which evades the possibility of CPU2
jumping to wrong address and create undesired results.

Logic of the workaround:

Step-1: iROM code checks value at address 0x2020028.
Step-2: If value is 0xc9cfcfcf, it jumps to the address (0x202000+CPUid*4),
	else, it continues executing normally.
Step-3: Primary core puts secondary cores in WFE and store 0xc9cfcfcf in
	0x2020028 and jump address (pointer to function low_power_start)
	in (0x202000+CPUid*4).
Step-4: When secondary cores recieve event signal they jump to this address
	and continue execution.

Signed-off-by: Kimoon Kim <kimoon.kim@samsung.com>
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.c Exynos: Clock: Cleanup soc_get_periph_rate 2015-02-13 17:23:06 +09:00
clock_init.h arm: exynos: Add RPLL for Exynos5420 2014-09-05 20:37:07 +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
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: Add workaround for exynos iROM errata 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 Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04: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