diff options
author | Rob Herring <rob.herring@calxeda.com> | 2012-12-21 16:42:40 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-01-02 05:35:05 -0500 |
commit | 62e4d357aae0c7438c537bdb1c86909d7cac2663 (patch) | |
tree | 90cdefe3e27d85bd21e11649f37c216a3f66dade /arch | |
parent | 74ddcdb868a84f4a9f65e33c1ca0d24e1134e53a (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/Kconfig | 6 | ||||
-rw-r--r-- | arch/arm/mach-vexpress/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mm/proc-v7.S | 3 |
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 | |||
1230 | config ARM_ERRATA_458693 | 1230 | config 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 | |||
1243 | config ARM_ERRATA_460075 | 1244 | config 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 | |||
1255 | config ARM_ERRATA_742230 | 1257 | config 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 | |||
1267 | config ARM_ERRATA_742231 | 1270 | config 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 | |||
1317 | config ARM_ERRATA_743622 | 1321 | config 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 | |||
1330 | config ARM_ERRATA_751472 | 1335 | config 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 |