u-boot-brain/arch/arm/cpu
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
..
arm11 ARM: cache: implement a default weak flush_cache() function 2015-08-12 20:47:48 -04:00
arm720t ARM: ARM720t: remove empty asm/arch/hardware.h 2015-04-23 08:52:27 -04:00
arm920t ARM: move -march=* and -mtune= options to arch/arm/Makefile 2015-03-27 16:55:22 +01:00
arm926ejs arm: spear: Add command to switch between 1-bit HW ECC and SW BCH4 2015-09-11 17:15:14 -04:00
arm946es ARM: integrator: abolish CONFIG_INTEGRATOR 2015-04-23 08:52:27 -04:00
arm1136 imx: mx31 use new formula for get_cpu_rev 2015-09-02 15:29:14 +02:00
arm1176 arm1136/arm1176: Merge cache handling code 2015-08-12 20:47:41 -04:00
armv7 arndale: Apply Cortex-A15 errata #773022 and #774769 2015-10-11 17:12:11 -04:00
armv7m stm32f4: add cpu clock option for 180 MHz 2015-07-27 15:02:14 -04:00
armv8 armv8: Make COUNTER_FREQUENCY optional 2015-09-16 16:10:22 -07:00
pxa arm: pxa: clean-up include file order 2015-08-24 20:30:37 +02:00
sa1100 ARM: move -march=* and -mtune= options to arch/arm/Makefile 2015-03-27 16:55:22 +01:00
Makefile ARM: tegra: collect SoC sources into mach-tegra 2015-02-21 08:23:51 -05:00
u-boot-spl.lds dm: arm: Put driver model I2C drivers before legacy ones 2015-07-21 17:39:21 -06:00
u-boot.lds ARM: Clean up CONFIG_ARMV7_NONSEC/VIRT/PSCI conditions 2015-05-13 09:24:13 -07:00