aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2014-03-16 08:12:11 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2014-05-29 19:48:37 -0400
commitc0fe18ba30a62854490b1ac0f7a02145d84153f5 (patch)
tree1bb2230d168490b0bffa1970e6ee211325397ed0
parent0493aef4da8231b4b2f2da8dc1784c265e610a7d (diff)
ARM: l2c: move errata configuration options to arch/arm/mm/Kconfig
Move the L2C-310 errata configuration options to arch/arm/mm/Kconfig along side the option which enables support for this device. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--arch/arm/Kconfig51
-rw-r--r--arch/arm/mm/Kconfig51
2 files changed, 51 insertions, 51 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index db3c5414223e..c9d7196fd0bd 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1230,19 +1230,6 @@ config ARM_ERRATA_742231
1230 register of the Cortex-A9 which reduces the linefill issuing 1230 register of the Cortex-A9 which reduces the linefill issuing
1231 capabilities of the processor. 1231 capabilities of the processor.
1232 1232
1233config PL310_ERRATA_588369
1234 bool "PL310 errata: Clean & Invalidate maintenance operations do not invalidate clean lines"
1235 depends on CACHE_L2X0
1236 help
1237 The PL310 L2 cache controller implements three types of Clean &
1238 Invalidate maintenance operations: by Physical Address
1239 (offset 0x7F0), by Index/Way (0x7F8) and by Way (0x7FC).
1240 They are architecturally defined to behave as the execution of a
1241 clean operation followed immediately by an invalidate operation,
1242 both performing to the same memory location. This functionality
1243 is not correctly implemented in PL310 as clean lines are not
1244 invalidated as a result of these operations.
1245
1246config ARM_ERRATA_643719 1233config ARM_ERRATA_643719
1247 bool "ARM errata: LoUIS bit field in CLIDR register is incorrect" 1234 bool "ARM errata: LoUIS bit field in CLIDR register is incorrect"
1248 depends on CPU_V7 && SMP 1235 depends on CPU_V7 && SMP
@@ -1265,17 +1252,6 @@ config ARM_ERRATA_720789
1265 tables. The workaround changes the TLB flushing routines to invalidate 1252 tables. The workaround changes the TLB flushing routines to invalidate
1266 entries regardless of the ASID. 1253 entries regardless of the ASID.
1267 1254
1268config PL310_ERRATA_727915
1269 bool "PL310 errata: Background Clean & Invalidate by Way operation can cause data corruption"
1270 depends on CACHE_L2X0
1271 help
1272 PL310 implements the Clean & Invalidate by Way L2 cache maintenance
1273 operation (offset 0x7FC). This operation runs in background so that
1274 PL310 can handle normal accesses while it is in progress. Under very
1275 rare circumstances, due to this erratum, write data can be lost when
1276 PL310 treats a cacheable write transaction during a Clean &
1277 Invalidate by Way operation.
1278
1279config ARM_ERRATA_743622 1255config ARM_ERRATA_743622
1280 bool "ARM errata: Faulty hazard checking in the Store Buffer may lead to data corruption" 1256 bool "ARM errata: Faulty hazard checking in the Store Buffer may lead to data corruption"
1281 depends on CPU_V7 1257 depends on CPU_V7
@@ -1301,21 +1277,6 @@ config ARM_ERRATA_751472
1301 operation is received by a CPU before the ICIALLUIS has completed, 1277 operation is received by a CPU before the ICIALLUIS has completed,
1302 potentially leading to corrupted entries in the cache or TLB. 1278 potentially leading to corrupted entries in the cache or TLB.
1303 1279
1304config PL310_ERRATA_753970
1305 bool "PL310 errata: cache sync operation may be faulty"
1306 depends on CACHE_PL310
1307 help
1308 This option enables the workaround for the 753970 PL310 (r3p0) erratum.
1309
1310 Under some condition the effect of cache sync operation on
1311 the store buffer still remains when the operation completes.
1312 This means that the store buffer is always asked to drain and
1313 this prevents it from merging any further writes. The workaround
1314 is to replace the normal offset of cache sync operation (0x730)
1315 by another offset targeting an unmapped PL310 register 0x740.
1316 This has the same effect as the cache sync operation: store buffer
1317 drain and waiting for all buffers empty.
1318
1319config ARM_ERRATA_754322 1280config ARM_ERRATA_754322
1320 bool "ARM errata: possible faulty MMU translations following an ASID switch" 1281 bool "ARM errata: possible faulty MMU translations following an ASID switch"
1321 depends on CPU_V7 1282 depends on CPU_V7
@@ -1364,18 +1325,6 @@ config ARM_ERRATA_764369
1364 relevant cache maintenance functions and sets a specific bit 1325 relevant cache maintenance functions and sets a specific bit
1365 in the diagnostic control register of the SCU. 1326 in the diagnostic control register of the SCU.
1366 1327
1367config PL310_ERRATA_769419
1368 bool "PL310 errata: no automatic Store Buffer drain"
1369 depends on CACHE_L2X0
1370 help
1371 On revisions of the PL310 prior to r3p2, the Store Buffer does
1372 not automatically drain. This can cause normal, non-cacheable
1373 writes to be retained when the memory system is idle, leading
1374 to suboptimal I/O performance for drivers using coherent DMA.
1375 This option adds a write barrier to the cpu_idle loop so that,
1376 on systems with an outer cache, the store buffer is drained
1377 explicitly.
1378
1379config ARM_ERRATA_775420 1328config ARM_ERRATA_775420
1380 bool "ARM errata: A data cache maintenance operation which aborts, might lead to deadlock" 1329 bool "ARM errata: A data cache maintenance operation which aborts, might lead to deadlock"
1381 depends on CPU_V7 1330 depends on CPU_V7
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index 5bf7c3c3b301..eda0dd0ab97b 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -897,6 +897,57 @@ config CACHE_PL310
897 This option enables optimisations for the PL310 cache 897 This option enables optimisations for the PL310 cache
898 controller. 898 controller.
899 899
900config PL310_ERRATA_588369
901 bool "PL310 errata: Clean & Invalidate maintenance operations do not invalidate clean lines"
902 depends on CACHE_L2X0
903 help
904 The PL310 L2 cache controller implements three types of Clean &
905 Invalidate maintenance operations: by Physical Address
906 (offset 0x7F0), by Index/Way (0x7F8) and by Way (0x7FC).
907 They are architecturally defined to behave as the execution of a
908 clean operation followed immediately by an invalidate operation,
909 both performing to the same memory location. This functionality
910 is not correctly implemented in PL310 as clean lines are not
911 invalidated as a result of these operations.
912
913config PL310_ERRATA_727915
914 bool "PL310 errata: Background Clean & Invalidate by Way operation can cause data corruption"
915 depends on CACHE_L2X0
916 help
917 PL310 implements the Clean & Invalidate by Way L2 cache maintenance
918 operation (offset 0x7FC). This operation runs in background so that
919 PL310 can handle normal accesses while it is in progress. Under very
920 rare circumstances, due to this erratum, write data can be lost when
921 PL310 treats a cacheable write transaction during a Clean &
922 Invalidate by Way operation.
923
924config PL310_ERRATA_753970
925 bool "PL310 errata: cache sync operation may be faulty"
926 depends on CACHE_PL310
927 help
928 This option enables the workaround for the 753970 PL310 (r3p0) erratum.
929
930 Under some condition the effect of cache sync operation on
931 the store buffer still remains when the operation completes.
932 This means that the store buffer is always asked to drain and
933 this prevents it from merging any further writes. The workaround
934 is to replace the normal offset of cache sync operation (0x730)
935 by another offset targeting an unmapped PL310 register 0x740.
936 This has the same effect as the cache sync operation: store buffer
937 drain and waiting for all buffers empty.
938
939config PL310_ERRATA_769419
940 bool "PL310 errata: no automatic Store Buffer drain"
941 depends on CACHE_L2X0
942 help
943 On revisions of the PL310 prior to r3p2, the Store Buffer does
944 not automatically drain. This can cause normal, non-cacheable
945 writes to be retained when the memory system is idle, leading
946 to suboptimal I/O performance for drivers using coherent DMA.
947 This option adds a write barrier to the cpu_idle loop so that,
948 on systems with an outer cache, the store buffer is drained
949 explicitly.
950
900config CACHE_TAUROS2 951config CACHE_TAUROS2
901 bool "Enable the Tauros2 L2 cache controller" 952 bool "Enable the Tauros2 L2 cache controller"
902 depends on (ARCH_DOVE || ARCH_MMP || CPU_PJ4) 953 depends on (ARCH_DOVE || ARCH_MMP || CPU_PJ4)