ARM: Introduce erratum workaround for 798870
authorNishanth Menon <nm@ti.com>
Mon, 9 Mar 2015 22:11:59 +0000 (17:11 -0500)
committerTom Rini <trini@konsulko.com>
Fri, 13 Mar 2015 13:28:29 +0000 (09:28 -0400)
commitc616a0df297e886f09bf88523bcd03a86bdf8704
tree3b6620ec15ed38f382061a5b04b9412e78fd0e12
parentfb1bf40838477537fb77bb591335c7aa7f90e8d5
ARM: Introduce erratum workaround for 798870

Add workaround for Cortex-A15 ARM erratum 798870 which says
"If back-to-back speculative cache line fills (fill A and fill B) are
issued from the L1 data cache of a CPU to the L2 cache, the second
request (fill B) is then cancelled, and the second request would have
detected a hazard against a recent write or eviction (write B) to the
same cache line as fill B then the L2 logic might deadlock."

Implementations for SoC families such as Exynos, OMAP5/DRA7 etc
will be widely different.

Every SoC has slightly different manner of setting up access to L2ACLR
and similar registers since the Secure Monitor handling of Secure
Monitor Call(smc) is diverse. Hence an weak function is introduced
which may be overriden to implement SoC specific accessor implementation.

Based on ARM errata Document revision 18.0 (22 Nov 2013)

Signed-off-by: Nishanth Menon <nm@ti.com>
Tested-by: Matt Porter <mporter@konsulko.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
README
arch/arm/cpu/armv7/Makefile
arch/arm/cpu/armv7/cp15.c [new file with mode: 0644]
arch/arm/cpu/armv7/start.S
arch/arm/include/asm/armv7.h