aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRob Herring <rob.herring@calxeda.com>2012-12-21 16:42:40 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2013-01-02 05:35:05 -0500
commit62e4d357aae0c7438c537bdb1c86909d7cac2663 (patch)
tree90cdefe3e27d85bd21e11649f37c216a3f66dade /arch
parent74ddcdb868a84f4a9f65e33c1ca0d24e1134e53a (diff)
ARM: 7609/1: disable errata work-arounds which access secure registers
In order to support secure and non-secure platforms in multi-platform kernels, errata work-arounds that access secure only registers need to be disabled. Make all the errata options that fit in this category depend on !CONFIG_ARCH_MULTIPLATFORM. This will effectively remove the errata options as platforms are converted over to multi-platform. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Kconfig6
-rw-r--r--arch/arm/mach-vexpress/Kconfig1
-rw-r--r--arch/arm/mm/proc-v7.S3
3 files changed, 8 insertions, 2 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index f95ba14ae3d0..432921ecfec8 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1230,6 +1230,7 @@ config ARM_ERRATA_430973
1230config ARM_ERRATA_458693 1230config ARM_ERRATA_458693
1231 bool "ARM errata: Processor deadlock when a false hazard is created" 1231 bool "ARM errata: Processor deadlock when a false hazard is created"
1232 depends on CPU_V7 1232 depends on CPU_V7
1233 depends on !ARCH_MULTIPLATFORM
1233 help 1234 help
1234 This option enables the workaround for the 458693 Cortex-A8 (r2p0) 1235 This option enables the workaround for the 458693 Cortex-A8 (r2p0)
1235 erratum. For very specific sequences of memory operations, it is 1236 erratum. For very specific sequences of memory operations, it is
@@ -1243,6 +1244,7 @@ config ARM_ERRATA_458693
1243config ARM_ERRATA_460075 1244config ARM_ERRATA_460075
1244 bool "ARM errata: Data written to the L2 cache can be overwritten with stale data" 1245 bool "ARM errata: Data written to the L2 cache can be overwritten with stale data"
1245 depends on CPU_V7 1246 depends on CPU_V7
1247 depends on !ARCH_MULTIPLATFORM
1246 help 1248 help
1247 This option enables the workaround for the 460075 Cortex-A8 (r2p0) 1249 This option enables the workaround for the 460075 Cortex-A8 (r2p0)
1248 erratum. Any asynchronous access to the L2 cache may encounter a 1250 erratum. Any asynchronous access to the L2 cache may encounter a
@@ -1255,6 +1257,7 @@ config ARM_ERRATA_460075
1255config ARM_ERRATA_742230 1257config ARM_ERRATA_742230
1256 bool "ARM errata: DMB operation may be faulty" 1258 bool "ARM errata: DMB operation may be faulty"
1257 depends on CPU_V7 && SMP 1259 depends on CPU_V7 && SMP
1260 depends on !ARCH_MULTIPLATFORM
1258 help 1261 help
1259 This option enables the workaround for the 742230 Cortex-A9 1262 This option enables the workaround for the 742230 Cortex-A9
1260 (r1p0..r2p2) erratum. Under rare circumstances, a DMB instruction 1263 (r1p0..r2p2) erratum. Under rare circumstances, a DMB instruction
@@ -1267,6 +1270,7 @@ config ARM_ERRATA_742230
1267config ARM_ERRATA_742231 1270config ARM_ERRATA_742231
1268 bool "ARM errata: Incorrect hazard handling in the SCU may lead to data corruption" 1271 bool "ARM errata: Incorrect hazard handling in the SCU may lead to data corruption"
1269 depends on CPU_V7 && SMP 1272 depends on CPU_V7 && SMP
1273 depends on !ARCH_MULTIPLATFORM
1270 help 1274 help
1271 This option enables the workaround for the 742231 Cortex-A9 1275 This option enables the workaround for the 742231 Cortex-A9
1272 (r2p0..r2p2) erratum. Under certain conditions, specific to the 1276 (r2p0..r2p2) erratum. Under certain conditions, specific to the
@@ -1317,6 +1321,7 @@ config PL310_ERRATA_727915
1317config ARM_ERRATA_743622 1321config ARM_ERRATA_743622
1318 bool "ARM errata: Faulty hazard checking in the Store Buffer may lead to data corruption" 1322 bool "ARM errata: Faulty hazard checking in the Store Buffer may lead to data corruption"
1319 depends on CPU_V7 1323 depends on CPU_V7
1324 depends on !ARCH_MULTIPLATFORM
1320 help 1325 help
1321 This option enables the workaround for the 743622 Cortex-A9 1326 This option enables the workaround for the 743622 Cortex-A9
1322 (r2p*) erratum. Under very rare conditions, a faulty 1327 (r2p*) erratum. Under very rare conditions, a faulty
@@ -1330,6 +1335,7 @@ config ARM_ERRATA_743622
1330config ARM_ERRATA_751472 1335config ARM_ERRATA_751472
1331 bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation" 1336 bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation"
1332 depends on CPU_V7 1337 depends on CPU_V7
1338 depends on !ARCH_MULTIPLATFORM
1333 help 1339 help
1334 This option enables the workaround for the 751472 Cortex-A9 (prior 1340 This option enables the workaround for the 751472 Cortex-A9 (prior
1335 to r3p0) erratum. An interrupted ICIALLUIS operation may prevent the 1341 to r3p0) erratum. An interrupted ICIALLUIS operation may prevent the
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig
index 99e63f5f99d1..52d315b792c8 100644
--- a/arch/arm/mach-vexpress/Kconfig
+++ b/arch/arm/mach-vexpress/Kconfig
@@ -42,7 +42,6 @@ config ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA
42 bool "Enable A5 and A9 only errata work-arounds" 42 bool "Enable A5 and A9 only errata work-arounds"
43 default y 43 default y
44 select ARM_ERRATA_720789 44 select ARM_ERRATA_720789
45 select ARM_ERRATA_751472
46 select PL310_ERRATA_753970 if CACHE_PL310 45 select PL310_ERRATA_753970 if CACHE_PL310
47 help 46 help
48 Provides common dependencies for Versatile Express platforms 47 Provides common dependencies for Versatile Express platforms
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
index 350f6a74992b..26a62054f0c3 100644
--- a/arch/arm/mm/proc-v7.S
+++ b/arch/arm/mm/proc-v7.S
@@ -245,7 +245,8 @@ __v7_setup:
245 ldr r10, =0x00000c08 @ Cortex-A8 primary part number 245 ldr r10, =0x00000c08 @ Cortex-A8 primary part number
246 teq r0, r10 246 teq r0, r10
247 bne 2f 247 bne 2f
248#ifdef CONFIG_ARM_ERRATA_430973 248#if defined(CONFIG_ARM_ERRATA_430973) && !defined(CONFIG_ARCH_MULTIPLATFORM)
249
249 teq r5, #0x00100000 @ only present in r1p* 250 teq r5, #0x00100000 @ only present in r1p*
250 mrceq p15, 0, r10, c1, c0, 1 @ read aux control register 251 mrceq p15, 0, r10, c1, c0, 1 @ read aux control register
251 orreq r10, r10, #(1 << 6) @ set IBE to 1 252 orreq r10, r10, #(1 << 6) @ set IBE to 1