u-boot-brain/arch/arm/cpu/armv7
Ian Campbell e392b923ed arndale: Apply Cortex-A15 errata #773022 and #774769
We run 4 Arndale boards in our automated test framework, they have
been running quite happily for quite some time using a Debian Wheezy
userspace.

However when upgrading to a Debian Jessie we started seeing frequent
segmentation faults from gcc when building the kernel, to the extent
that it is unable to successfully build the kernel twice in a row, and
often fails on the first attempt.

Searching around I found https://bugs.launchpad.net/arndale/+bug/1081417
which pointed towards http://www.spinics.net/lists/kvm-arm/msg03723.html
and CPU Errata 773022 and 774769.

This errata needs to be applied to all processors in an SMP system,
meaning that the usual strategy of applying them in
arch/arm/cpu/armv7/start.S is not appropriate (since that applies to
the boot processor only). Instead we apply these errata in the secure
monitor which is code that is traversed by all processors as they are
brought up.

The net affect on Arndale is that ACTLR changes from 0x40 to
0x2000042. I ran 17 kernel compile iterations overnight with no
segfaults.

Runtime testing was done on our v2014.10 based branch and forward
ported (with only minimal and trivial contextual conflicts) to current
master, where it has been build tested only.

I suppose in theory these errata apply to any Exynos5250 based boards,
but Arndale is the only one I have access to and I have therefore
chosen to be conservative and only apply it there.

Also, reorder CONFIG_ARM_ERRATA_794072 in README to make the list
numerically sorted.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2015-10-11 17:12:11 -04:00
..
am33xx ARM: OMAP5/AM43xx: remove enabling USB clocks from enable_basic_clocks() 2015-08-28 12:33:22 -04:00
bcm281xx bcm281xx: add support for "USB OTG clock" 2014-12-29 16:31:23 -05:00
bcmcygnus arm: bcmcygnus: Add bcmcygnus u-architecture 2014-08-30 07:46:40 -04:00
bcmnsp arm: bcmnsp: Add bcmnsp u-architecture 2014-08-30 07:46:40 -04:00
iproc-common arm: iproc: Initial commit of iproc architecture code 2014-08-30 07:46:40 -04:00
kona-common bcm281xx: add support for "USB OTG clock" 2014-12-29 16:31:23 -05:00
ls102xa armv7/ls102xa: Fix non-boot cpus cannot correctly fall in spin table 2015-08-03 12:06:37 -07:00
mx5 arch: Make board selection choices optional 2015-05-12 18:10:02 -04:00
mx6 imx: mx6: correct enable_fec_anatop_clock 2015-10-02 10:42:31 +02:00
mx7 imx: fix coding style 2015-09-24 11:32:38 +02:00
omap3 arm: Remove omap3_sdp3430 board 2015-09-11 14:56:52 -04:00
omap4 gpio: omap: Drop 'method' parameter 2015-08-12 20:48:06 -04:00
omap5 ARM: OMAP5/AM43xx: remove enabling USB clocks from enable_basic_clocks() 2015-08-28 12:33:22 -04:00
omap-common ARM: DRA7: emif: Fix disabling/enabling of refreshes 2015-09-11 14:05:36 -04:00
rmobile arm: rmobile: Add Stout board support 2015-08-31 17:32:59 +09:00
s5p-common exynos: Tidy up CPU frequency display 2015-08-05 21:06:14 -06:00
s5pc1xx of: flip CONFIG_SPL_DISABLE_OF_CONTROL into CONFIG_SPL_OF_CONTROL 2015-08-18 13:46:04 -04:00
stv0991 stv0991: configure clock & pad muxing for qspi 2015-07-03 13:50:53 +05:30
sunxi sunxi: retrieve FEL-provided values to environment variables 2015-09-29 11:50:07 +02:00
vf610 imx: vf610 add get_cpu_rev 2015-09-02 15:39:51 +02:00
arch_timer.c arm: add support for arch timer 2014-04-17 17:24:38 -04:00
cache_v7.c ARM: cache: implement a default weak flush_cache() function 2015-08-12 20:47:48 -04:00
config.mk ARM: move -march=* and -mtune= options to arch/arm/Makefile 2015-03-27 16:55:22 +01:00
cp15.c ARM: Introduce erratum workaround for 454179 2015-03-13 09:28:48 -04:00
cpu.c arm: Turn of d-cache before i-cache 2015-09-02 21:28:25 -06:00
Kconfig tegra: Boot in non-secure mode by default 2015-05-13 09:24:16 -07:00
lowlevel_init.S ARM: SPL: Use CONFIG_SPL_DM not CONFIG_DM 2015-08-12 20:48:07 -04:00
Makefile arm: Remove unused ST-Ericsson u8500 arch 2015-09-15 15:05:21 -04:00
nonsec_virt.S arndale: Apply Cortex-A15 errata #773022 and #774769 2015-10-11 17:12:11 -04:00
psci.S ARM: Put target PC for PSCI CPU_ON on per-CPU stack 2015-05-13 09:24:14 -07:00
start.S ARM: Introduce erratum workaround for 801819 2015-08-12 20:47:49 -04:00
syslib.c ARM: OMAP: hide custom bit manipulation function sr32() 2014-04-17 14:39:54 -04:00
virt-dt.c virt-dt: Allow reservation of secure region when in a RAM carveout 2015-05-13 09:24:14 -07:00
virt-v7.c tegra124: Reserve secure RAM using MC_SECURITY_CFG{0, 1}_0 2015-05-13 09:24:15 -07:00