diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-03-16 08:12:11 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-05-29 19:48:37 -0400 |
commit | c0fe18ba30a62854490b1ac0f7a02145d84153f5 (patch) | |
tree | 1bb2230d168490b0bffa1970e6ee211325397ed0 /arch/arm/mm | |
parent | 0493aef4da8231b4b2f2da8dc1784c265e610a7d (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>
Diffstat (limited to 'arch/arm/mm')
-rw-r--r-- | arch/arm/mm/Kconfig | 51 |
1 files changed, 51 insertions, 0 deletions
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 | ||
900 | config 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 | |||
913 | config 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 | |||
924 | config 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 | |||
939 | config 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 | |||
900 | config CACHE_TAUROS2 | 951 | config 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) |