Kconfig (6ec9dc323b0fd4b83e6da64acc871f74508c0077) Kconfig (ba364fc752daeded072a5ef31e43b84cb1f9e5fd)
1comment "Processor Type"
2
3# Select CPU types depending on the architecture selected. This selects
4# which CPUs we support in the kernel image, and the compiler instruction
5# optimiser behaviour.
6
7# ARM7TDMI
8config CPU_ARM7TDMI

--- 840 unchanged lines hidden (view full) ---

849config OUTER_CACHE_SYNC
850 bool
851 help
852 The outer cache has a outer_cache_fns.sync function pointer
853 that can be used to drain the write buffer of the outer cache.
854
855config CACHE_FEROCEON_L2
856 bool "Enable the Feroceon L2 cache controller"
1comment "Processor Type"
2
3# Select CPU types depending on the architecture selected. This selects
4# which CPUs we support in the kernel image, and the compiler instruction
5# optimiser behaviour.
6
7# ARM7TDMI
8config CPU_ARM7TDMI

--- 840 unchanged lines hidden (view full) ---

849config OUTER_CACHE_SYNC
850 bool
851 help
852 The outer cache has a outer_cache_fns.sync function pointer
853 that can be used to drain the write buffer of the outer cache.
854
855config CACHE_FEROCEON_L2
856 bool "Enable the Feroceon L2 cache controller"
857 depends on ARCH_KIRKWOOD || ARCH_MV78XX0 || ARCH_MVEBU
857 depends on ARCH_MV78XX0 || ARCH_MVEBU
858 default y
859 select OUTER_CACHE
860 help
861 This option enables the Feroceon L2 cache controller.
862
863config CACHE_FEROCEON_L2_WRITETHROUGH
864 bool "Force Feroceon L2 cache write through"
865 depends on CACHE_FEROCEON_L2

--- 18 unchanged lines hidden (view full) ---

884config CACHE_L2X0
885 bool "Enable the L2x0 outer cache controller" if MIGHT_HAVE_CACHE_L2X0
886 default MIGHT_HAVE_CACHE_L2X0
887 select OUTER_CACHE
888 select OUTER_CACHE_SYNC
889 help
890 This option enables the L2x0 PrimeCell.
891
858 default y
859 select OUTER_CACHE
860 help
861 This option enables the Feroceon L2 cache controller.
862
863config CACHE_FEROCEON_L2_WRITETHROUGH
864 bool "Force Feroceon L2 cache write through"
865 depends on CACHE_FEROCEON_L2

--- 18 unchanged lines hidden (view full) ---

884config CACHE_L2X0
885 bool "Enable the L2x0 outer cache controller" if MIGHT_HAVE_CACHE_L2X0
886 default MIGHT_HAVE_CACHE_L2X0
887 select OUTER_CACHE
888 select OUTER_CACHE_SYNC
889 help
890 This option enables the L2x0 PrimeCell.
891
892if CACHE_L2X0
893
894config CACHE_PL310
895 bool
892config CACHE_PL310
893 bool
894 depends on CACHE_L2X0
896 default y if CPU_V7 && !(CPU_V6 || CPU_V6K)
897 help
898 This option enables optimisations for the PL310 cache
899 controller.
900
901config PL310_ERRATA_588369
902 bool "PL310 errata: Clean & Invalidate maintenance operations do not invalidate clean lines"
895 default y if CPU_V7 && !(CPU_V6 || CPU_V6K)
896 help
897 This option enables optimisations for the PL310 cache
898 controller.
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"
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
915 help
916 PL310 implements the Clean & Invalidate by Way L2 cache maintenance
917 operation (offset 0x7FC). This operation runs in background so that
918 PL310 can handle normal accesses while it is in progress. Under very
919 rare circumstances, due to this erratum, write data can be lost when
920 PL310 treats a cacheable write transaction during a Clean &
921 Invalidate by Way operation.
922
923config PL310_ERRATA_753970
924 bool "PL310 errata: cache sync operation may be faulty"
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
925 help
926 This option enables the workaround for the 753970 PL310 (r3p0) erratum.
927
928 Under some condition the effect of cache sync operation on
929 the store buffer still remains when the operation completes.
930 This means that the store buffer is always asked to drain and
931 this prevents it from merging any further writes. The workaround
932 is to replace the normal offset of cache sync operation (0x730)
933 by another offset targeting an unmapped PL310 register 0x740.
934 This has the same effect as the cache sync operation: store buffer
935 drain and waiting for all buffers empty.
936
937config PL310_ERRATA_769419
938 bool "PL310 errata: no automatic Store Buffer drain"
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
939 help
940 On revisions of the PL310 prior to r3p2, the Store Buffer does
941 not automatically drain. This can cause normal, non-cacheable
942 writes to be retained when the memory system is idle, leading
943 to suboptimal I/O performance for drivers using coherent DMA.
944 This option adds a write barrier to the cpu_idle loop so that,
945 on systems with an outer cache, the store buffer is drained
946 explicitly.
947
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
948endif
949
950config CACHE_TAUROS2
951 bool "Enable the Tauros2 L2 cache controller"
952 depends on (ARCH_DOVE || ARCH_MMP || CPU_PJ4)
953 default y
954 select OUTER_CACHE
955 help
956 This option enables the Tauros2 L2 cache controller (as
957 found on PJ1/PJ4).

--- 52 unchanged lines hidden ---
951config CACHE_TAUROS2
952 bool "Enable the Tauros2 L2 cache controller"
953 depends on (ARCH_DOVE || ARCH_MMP || CPU_PJ4)
954 default y
955 select OUTER_CACHE
956 help
957 This option enables the Tauros2 L2 cache controller (as
958 found on PJ1/PJ4).

--- 52 unchanged lines hidden ---