aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/Kconfig
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2010-09-14 04:53:02 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-09-17 05:16:52 -0400
commita672e99b129e286df2e2697a1b603d82321117f3 (patch)
tree3307cdb68df62a67d78309ecdf6c35cab7321892 /arch/arm/Kconfig
parent9f05027c7cb3cfe56a31892bd83391138d41a667 (diff)
ARM: 6389/1: errata: incorrect hazard handling in the SCU may lead to data corruption
On the r2p0, r2p1 and r2p2 versions of the Cortex-A9, data corruption can occur if a shared cache line is replaced on one CPU as another CPU is accessing it. This workaround sets two bits in the diagnostic register of the Cortex-A9, reducing the linefill issuing capabilities of the processor and avoiding the erroneous behaviour. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/Kconfig')
-rw-r--r--arch/arm/Kconfig14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index ab14c0a5d21e..0f89335b84c2 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1063,6 +1063,20 @@ config ARM_ERRATA_742230
1063 instruction to behave as a DSB, ensuring the correct behaviour of 1063 instruction to behave as a DSB, ensuring the correct behaviour of
1064 the two writes. 1064 the two writes.
1065 1065
1066config ARM_ERRATA_742231
1067 bool "ARM errata: Incorrect hazard handling in the SCU may lead to data corruption"
1068 depends on CPU_V7 && SMP
1069 help
1070 This option enables the workaround for the 742231 Cortex-A9
1071 (r2p0..r2p2) erratum. Under certain conditions, specific to the
1072 Cortex-A9 MPCore micro-architecture, two CPUs working in SMP mode,
1073 accessing some data located in the same cache line, may get corrupted
1074 data due to bad handling of the address hazard when the line gets
1075 replaced from one of the CPUs at the same time as another CPU is
1076 accessing it. This workaround sets specific bits in the diagnostic
1077 register of the Cortex-A9 which reduces the linefill issuing
1078 capabilities of the processor.
1079
1066config PL310_ERRATA_588369 1080config PL310_ERRATA_588369
1067 bool "Clean & Invalidate maintenance operations do not invalidate clean lines" 1081 bool "Clean & Invalidate maintenance operations do not invalidate clean lines"
1068 depends on CACHE_L2X0 && ARCH_OMAP4 1082 depends on CACHE_L2X0 && ARCH_OMAP4