u-boot-brain/arch/arm
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
..
cpu arndale: Apply Cortex-A15 errata #773022 and #774769 2015-10-11 17:12:11 -04:00
dts dm: dts: ls1021a-twr: Enable DSPI2 on LS1021ATWR 2015-10-11 16:43:06 +05:30
imx-common vf610: refactor DDRMC code 2015-10-02 10:42:31 +02:00
include Merge branch 'master' of git://www.denx.de/git/u-boot-imx 2015-10-02 09:38:44 -04:00
lib arm: Drop old non-generic-board code 2015-09-28 10:48:24 -04:00
mach-at91 arm: Remove vl_ma2sc board 2015-09-11 17:12:57 -04:00
mach-bcm283x arm/mach-bcm283x/mbox: Flush and invalidate dcache when using fw mailbox 2015-08-12 20:47:42 -04:00
mach-davinci arm: Remove da830evm board 2015-09-28 10:48:23 -04:00
mach-exynos mach-exynos: clock: restore calling dead exynos4_get_mmc_clk() 2015-10-03 14:39:19 +01:00
mach-highbank ARM: highbank: move SoC sources to mach-highbank 2015-02-21 08:23:51 -05:00
mach-integrator integrator: switch to DM serial port 2015-08-12 20:47:49 -04:00
mach-keystone bitops: introduce BIT() definition 2015-09-11 17:15:32 -04:00
mach-kirkwood arm: Remove wireless_space board 2015-09-28 10:48:24 -04:00
mach-mvebu arm: mvebu: timer.c: Explicitly move "init_done" var to data section 2015-10-01 02:00:02 +02:00
mach-orion5x arch: Make board selection choices optional 2015-05-12 18:10:02 -04:00
mach-rockchip rockchip: Reconfigure the malloc based to point to system memory 2015-10-03 10:24:33 -06:00
mach-socfpga arm: socfpga: rename socfpga_cyclone5 and socfpga_arria5 config files 2015-09-23 03:55:28 +02:00
mach-tegra ARM: tegra114: Clear IDDQ when enabling PLLC 2015-09-16 16:11:31 -07:00
mach-uniphier ARM: uniphier: fix init page table for ProXstream2/PH1-LD6b USB boot 2015-09-25 00:59:33 +09:00
mach-versatile arm: Remove versatileab board 2015-09-11 15:01:25 -04:00
mach-zynq bitops: introduce BIT() definition 2015-09-11 17:15:32 -04:00
mvebu-common arm: mvebu: Move mvebu-common into mach-mvebu 2015-05-05 14:28:29 +02:00
config.mk arm: Include the .got section in the binary 2015-05-14 18:49:34 -06:00
Kconfig vexpress64: fvp dram: add DRAM configuration 2015-10-11 17:11:47 -04:00
Kconfig.debug arm: debug: add Kconfig entries for lowlevel debug 2014-10-26 22:23:12 +01:00
Makefile arm: Remove unused reference to nomadik 2015-09-15 15:05:22 -04:00