linux/arch/arm/mach-vexpress
Russell King f6ac49ba29 ARM: vexpress: fix CPU hotplug with CT9x4 tile.
The Cortex A9 tile fails to unplug CPUs if errata 643719 is not enabled.
This leads to random weird behaviours, but ultimately seem to lock the
kernel one way or another when a CPU is hot unplugged.

Symptoms range from a spinlock lockup in the scheduler, the entire
system hanging, to dumping out the kernel printk buffer a few lines at
a time, and other weird behaviours.

This is caused by the outgoing CPU not having its inner caches properly
flushed before it exits coherency - flush_cache_louis() is used to
achieve this, but as a result of the hardware bug, this function ends
up doing nothing without the errata workaround enabled.

As the Versatile Express has an affected CPU, this errata must always
be enabled.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2015-04-07 15:40:21 +01:00
..
core.h ARM: vexpress: Remove non-DT code 2014-11-28 16:08:16 +01:00
dcscb_setup.S ARM: vexpress/dcscb: handle platform coherency exit/setup and CCI 2013-05-29 15:50:35 -04:00
dcscb.c arm/mach-vexpress: array accessed out of bounds 2014-04-24 11:41:12 +01:00
hotplug.c ARM: cpu hotplug: remove majority of cache flushing from platforms 2013-04-18 20:08:04 +01:00
Kconfig ARM: vexpress: fix CPU hotplug with CT9x4 tile. 2015-04-07 15:40:21 +01:00
Makefile ARM: vexpress: Remove non-DT code 2014-11-28 16:08:16 +01:00
platsmp.c ARM: vexpress: Remove non-DT code 2014-11-28 16:08:16 +01:00
spc.c vexpress/spc: fix a build warning on array bounds 2014-08-31 10:22:10 -07:00
spc.h ARM: vexpress/TC2: Implement MCPM power_down_finish() 2013-11-25 14:12:14 -08:00
tc2_pm.c ARM: make it easier to check the CPU part number correctly 2014-07-18 12:29:02 +01:00
v2m.c ARM: vexpress: Remove non-DT code 2014-11-28 16:08:16 +01:00