xref: /linux/arch/arm/mm/Kconfig (revision 542f869f1826f092606efd0c4c771f070d1314f5)
11da177e4SLinus Torvaldscomment "Processor Type"
21da177e4SLinus Torvalds
31da177e4SLinus Torvaldsconfig CPU_32
41da177e4SLinus Torvalds	bool
51da177e4SLinus Torvalds	default y
61da177e4SLinus Torvalds
71da177e4SLinus Torvalds# Select CPU types depending on the architecture selected.  This selects
81da177e4SLinus Torvalds# which CPUs we support in the kernel image, and the compiler instruction
91da177e4SLinus Torvalds# optimiser behaviour.
101da177e4SLinus Torvalds
111da177e4SLinus Torvalds# ARM610
121da177e4SLinus Torvaldsconfig CPU_ARM610
13c750815eSRussell King	bool "Support ARM610 processor" if ARCH_RPC
141da177e4SLinus Torvalds	select CPU_32v3
151da177e4SLinus Torvalds	select CPU_CACHE_V3
161da177e4SLinus Torvalds	select CPU_CACHE_VIVT
17fefdaa06SHyok S. Choi	select CPU_CP15_MMU
18f9c21a6eSHyok S. Choi	select CPU_COPY_V3 if MMU
19f9c21a6eSHyok S. Choi	select CPU_TLB_V3 if MMU
2048d7927bSPaul Brook	select CPU_PABRT_NOIFAR
211da177e4SLinus Torvalds	help
221da177e4SLinus Torvalds	  The ARM610 is the successor to the ARM3 processor
231da177e4SLinus Torvalds	  and was produced by VLSI Technology Inc.
241da177e4SLinus Torvalds
251da177e4SLinus Torvalds	  Say Y if you want support for the ARM610 processor.
261da177e4SLinus Torvalds	  Otherwise, say N.
271da177e4SLinus Torvalds
2807e0da78SHyok S. Choi# ARM7TDMI
2907e0da78SHyok S. Choiconfig CPU_ARM7TDMI
3007e0da78SHyok S. Choi	bool "Support ARM7TDMI processor"
316b237a35SRussell King	depends on !MMU
3207e0da78SHyok S. Choi	select CPU_32v4T
3307e0da78SHyok S. Choi	select CPU_ABRT_LV4T
344a1fd556SCatalin Marinas	select CPU_PABRT_NOIFAR
3507e0da78SHyok S. Choi	select CPU_CACHE_V4
3607e0da78SHyok S. Choi	help
3707e0da78SHyok S. Choi	  A 32-bit RISC microprocessor based on the ARM7 processor core
3807e0da78SHyok S. Choi	  which has no memory control unit and cache.
3907e0da78SHyok S. Choi
4007e0da78SHyok S. Choi	  Say Y if you want support for the ARM7TDMI processor.
4107e0da78SHyok S. Choi	  Otherwise, say N.
4207e0da78SHyok S. Choi
431da177e4SLinus Torvalds# ARM710
441da177e4SLinus Torvaldsconfig CPU_ARM710
45c750815eSRussell King	bool "Support ARM710 processor" if ARCH_RPC
461da177e4SLinus Torvalds	select CPU_32v3
471da177e4SLinus Torvalds	select CPU_CACHE_V3
481da177e4SLinus Torvalds	select CPU_CACHE_VIVT
49fefdaa06SHyok S. Choi	select CPU_CP15_MMU
50f9c21a6eSHyok S. Choi	select CPU_COPY_V3 if MMU
51f9c21a6eSHyok S. Choi	select CPU_TLB_V3 if MMU
5248d7927bSPaul Brook	select CPU_PABRT_NOIFAR
531da177e4SLinus Torvalds	help
541da177e4SLinus Torvalds	  A 32-bit RISC microprocessor based on the ARM7 processor core
551da177e4SLinus Torvalds	  designed by Advanced RISC Machines Ltd. The ARM710 is the
561da177e4SLinus Torvalds	  successor to the ARM610 processor. It was released in
571da177e4SLinus Torvalds	  July 1994 by VLSI Technology Inc.
581da177e4SLinus Torvalds
591da177e4SLinus Torvalds	  Say Y if you want support for the ARM710 processor.
601da177e4SLinus Torvalds	  Otherwise, say N.
611da177e4SLinus Torvalds
621da177e4SLinus Torvalds# ARM720T
631da177e4SLinus Torvaldsconfig CPU_ARM720T
64c750815eSRussell King	bool "Support ARM720T processor" if ARCH_INTEGRATOR
65260e98edSLennert Buytenhek	select CPU_32v4T
661da177e4SLinus Torvalds	select CPU_ABRT_LV4T
6748d7927bSPaul Brook	select CPU_PABRT_NOIFAR
681da177e4SLinus Torvalds	select CPU_CACHE_V4
691da177e4SLinus Torvalds	select CPU_CACHE_VIVT
70fefdaa06SHyok S. Choi	select CPU_CP15_MMU
71f9c21a6eSHyok S. Choi	select CPU_COPY_V4WT if MMU
72f9c21a6eSHyok S. Choi	select CPU_TLB_V4WT if MMU
731da177e4SLinus Torvalds	help
741da177e4SLinus Torvalds	  A 32-bit RISC processor with 8kByte Cache, Write Buffer and
751da177e4SLinus Torvalds	  MMU built around an ARM7TDMI core.
761da177e4SLinus Torvalds
771da177e4SLinus Torvalds	  Say Y if you want support for the ARM720T processor.
781da177e4SLinus Torvalds	  Otherwise, say N.
791da177e4SLinus Torvalds
80b731c311SHyok S. Choi# ARM740T
81b731c311SHyok S. Choiconfig CPU_ARM740T
82b731c311SHyok S. Choi	bool "Support ARM740T processor" if ARCH_INTEGRATOR
836b237a35SRussell King	depends on !MMU
84b731c311SHyok S. Choi	select CPU_32v4T
85b731c311SHyok S. Choi	select CPU_ABRT_LV4T
864a1fd556SCatalin Marinas	select CPU_PABRT_NOIFAR
87b731c311SHyok S. Choi	select CPU_CACHE_V3	# although the core is v4t
88b731c311SHyok S. Choi	select CPU_CP15_MPU
89b731c311SHyok S. Choi	help
90b731c311SHyok S. Choi	  A 32-bit RISC processor with 8KB cache or 4KB variants,
91b731c311SHyok S. Choi	  write buffer and MPU(Protection Unit) built around
92b731c311SHyok S. Choi	  an ARM7TDMI core.
93b731c311SHyok S. Choi
94b731c311SHyok S. Choi	  Say Y if you want support for the ARM740T processor.
95b731c311SHyok S. Choi	  Otherwise, say N.
96b731c311SHyok S. Choi
9743f5f014SHyok S. Choi# ARM9TDMI
9843f5f014SHyok S. Choiconfig CPU_ARM9TDMI
9943f5f014SHyok S. Choi	bool "Support ARM9TDMI processor"
1006b237a35SRussell King	depends on !MMU
10143f5f014SHyok S. Choi	select CPU_32v4T
1020f45d7f3SHyok S. Choi	select CPU_ABRT_NOMMU
1034a1fd556SCatalin Marinas	select CPU_PABRT_NOIFAR
10443f5f014SHyok S. Choi	select CPU_CACHE_V4
10543f5f014SHyok S. Choi	help
10643f5f014SHyok S. Choi	  A 32-bit RISC microprocessor based on the ARM9 processor core
10743f5f014SHyok S. Choi	  which has no memory control unit and cache.
10843f5f014SHyok S. Choi
10943f5f014SHyok S. Choi	  Say Y if you want support for the ARM9TDMI processor.
11043f5f014SHyok S. Choi	  Otherwise, say N.
11143f5f014SHyok S. Choi
1121da177e4SLinus Torvalds# ARM920T
1131da177e4SLinus Torvaldsconfig CPU_ARM920T
114c750815eSRussell King	bool "Support ARM920T processor" if ARCH_INTEGRATOR
115260e98edSLennert Buytenhek	select CPU_32v4T
1161da177e4SLinus Torvalds	select CPU_ABRT_EV4T
11748d7927bSPaul Brook	select CPU_PABRT_NOIFAR
1181da177e4SLinus Torvalds	select CPU_CACHE_V4WT
1191da177e4SLinus Torvalds	select CPU_CACHE_VIVT
120fefdaa06SHyok S. Choi	select CPU_CP15_MMU
121f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU
122f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
1231da177e4SLinus Torvalds	help
1241da177e4SLinus Torvalds	  The ARM920T is licensed to be produced by numerous vendors,
1251da177e4SLinus Torvalds	  and is used in the Maverick EP9312 and the Samsung S3C2410.
1261da177e4SLinus Torvalds
1271da177e4SLinus Torvalds	  More information on the Maverick EP9312 at
1281da177e4SLinus Torvalds	  <http://linuxdevices.com/products/PD2382866068.html>.
1291da177e4SLinus Torvalds
1301da177e4SLinus Torvalds	  Say Y if you want support for the ARM920T processor.
1311da177e4SLinus Torvalds	  Otherwise, say N.
1321da177e4SLinus Torvalds
1331da177e4SLinus Torvalds# ARM922T
1341da177e4SLinus Torvaldsconfig CPU_ARM922T
1351da177e4SLinus Torvalds	bool "Support ARM922T processor" if ARCH_INTEGRATOR
136260e98edSLennert Buytenhek	select CPU_32v4T
1371da177e4SLinus Torvalds	select CPU_ABRT_EV4T
13848d7927bSPaul Brook	select CPU_PABRT_NOIFAR
1391da177e4SLinus Torvalds	select CPU_CACHE_V4WT
1401da177e4SLinus Torvalds	select CPU_CACHE_VIVT
141fefdaa06SHyok S. Choi	select CPU_CP15_MMU
142f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU
143f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
1441da177e4SLinus Torvalds	help
1451da177e4SLinus Torvalds	  The ARM922T is a version of the ARM920T, but with smaller
1461da177e4SLinus Torvalds	  instruction and data caches. It is used in Altera's
147c53c9cf6SAndrew Victor	  Excalibur XA device family and Micrel's KS8695 Centaur.
1481da177e4SLinus Torvalds
1491da177e4SLinus Torvalds	  Say Y if you want support for the ARM922T processor.
1501da177e4SLinus Torvalds	  Otherwise, say N.
1511da177e4SLinus Torvalds
1521da177e4SLinus Torvalds# ARM925T
1531da177e4SLinus Torvaldsconfig CPU_ARM925T
154b288f75fSTony Lindgren 	bool "Support ARM925T processor" if ARCH_OMAP1
155260e98edSLennert Buytenhek	select CPU_32v4T
1561da177e4SLinus Torvalds	select CPU_ABRT_EV4T
15748d7927bSPaul Brook	select CPU_PABRT_NOIFAR
1581da177e4SLinus Torvalds	select CPU_CACHE_V4WT
1591da177e4SLinus Torvalds	select CPU_CACHE_VIVT
160fefdaa06SHyok S. Choi	select CPU_CP15_MMU
161f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU
162f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
1631da177e4SLinus Torvalds 	help
1641da177e4SLinus Torvalds 	  The ARM925T is a mix between the ARM920T and ARM926T, but with
1651da177e4SLinus Torvalds	  different instruction and data caches. It is used in TI's OMAP
1661da177e4SLinus Torvalds 	  device family.
1671da177e4SLinus Torvalds
1681da177e4SLinus Torvalds 	  Say Y if you want support for the ARM925T processor.
1691da177e4SLinus Torvalds 	  Otherwise, say N.
1701da177e4SLinus Torvalds
1711da177e4SLinus Torvalds# ARM926T
1721da177e4SLinus Torvaldsconfig CPU_ARM926T
173c750815eSRussell King	bool "Support ARM926T processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB
1741da177e4SLinus Torvalds	select CPU_32v5
1751da177e4SLinus Torvalds	select CPU_ABRT_EV5TJ
17648d7927bSPaul Brook	select CPU_PABRT_NOIFAR
1771da177e4SLinus Torvalds	select CPU_CACHE_VIVT
178fefdaa06SHyok S. Choi	select CPU_CP15_MMU
179f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU
180f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
1811da177e4SLinus Torvalds	help
1821da177e4SLinus Torvalds	  This is a variant of the ARM920.  It has slightly different
1831da177e4SLinus Torvalds	  instruction sequences for cache and TLB operations.  Curiously,
1841da177e4SLinus Torvalds	  there is no documentation on it at the ARM corporate website.
1851da177e4SLinus Torvalds
1861da177e4SLinus Torvalds	  Say Y if you want support for the ARM926T processor.
1871da177e4SLinus Torvalds	  Otherwise, say N.
1881da177e4SLinus Torvalds
18928853ac8SPaulius Zaleckas# FA526
19028853ac8SPaulius Zaleckasconfig CPU_FA526
19128853ac8SPaulius Zaleckas	bool
19228853ac8SPaulius Zaleckas	select CPU_32v4
19328853ac8SPaulius Zaleckas	select CPU_ABRT_EV4
19428853ac8SPaulius Zaleckas	select CPU_PABRT_NOIFAR
19528853ac8SPaulius Zaleckas	select CPU_CACHE_VIVT
19628853ac8SPaulius Zaleckas	select CPU_CP15_MMU
19728853ac8SPaulius Zaleckas	select CPU_CACHE_FA
19828853ac8SPaulius Zaleckas	select CPU_COPY_FA if MMU
19928853ac8SPaulius Zaleckas	select CPU_TLB_FA if MMU
20028853ac8SPaulius Zaleckas	help
20128853ac8SPaulius Zaleckas	  The FA526 is a version of the ARMv4 compatible processor with
20228853ac8SPaulius Zaleckas	  Branch Target Buffer, Unified TLB and cache line size 16.
20328853ac8SPaulius Zaleckas
20428853ac8SPaulius Zaleckas	  Say Y if you want support for the FA526 processor.
20528853ac8SPaulius Zaleckas	  Otherwise, say N.
20628853ac8SPaulius Zaleckas
207d60674ebSHyok S. Choi# ARM940T
208d60674ebSHyok S. Choiconfig CPU_ARM940T
209d60674ebSHyok S. Choi	bool "Support ARM940T processor" if ARCH_INTEGRATOR
2106b237a35SRussell King	depends on !MMU
211d60674ebSHyok S. Choi	select CPU_32v4T
2120f45d7f3SHyok S. Choi	select CPU_ABRT_NOMMU
2134a1fd556SCatalin Marinas	select CPU_PABRT_NOIFAR
214d60674ebSHyok S. Choi	select CPU_CACHE_VIVT
215d60674ebSHyok S. Choi	select CPU_CP15_MPU
216d60674ebSHyok S. Choi	help
217d60674ebSHyok S. Choi	  ARM940T is a member of the ARM9TDMI family of general-
2183cb2fcccSMatt LaPlante	  purpose microprocessors with MPU and separate 4KB
219d60674ebSHyok S. Choi	  instruction and 4KB data cases, each with a 4-word line
220d60674ebSHyok S. Choi	  length.
221d60674ebSHyok S. Choi
222d60674ebSHyok S. Choi	  Say Y if you want support for the ARM940T processor.
223d60674ebSHyok S. Choi	  Otherwise, say N.
224d60674ebSHyok S. Choi
225f37f46ebSHyok S. Choi# ARM946E-S
226f37f46ebSHyok S. Choiconfig CPU_ARM946E
227f37f46ebSHyok S. Choi	bool "Support ARM946E-S processor" if ARCH_INTEGRATOR
2286b237a35SRussell King	depends on !MMU
229f37f46ebSHyok S. Choi	select CPU_32v5
2300f45d7f3SHyok S. Choi	select CPU_ABRT_NOMMU
2314a1fd556SCatalin Marinas	select CPU_PABRT_NOIFAR
232f37f46ebSHyok S. Choi	select CPU_CACHE_VIVT
233f37f46ebSHyok S. Choi	select CPU_CP15_MPU
234f37f46ebSHyok S. Choi	help
235f37f46ebSHyok S. Choi	  ARM946E-S is a member of the ARM9E-S family of high-
236f37f46ebSHyok S. Choi	  performance, 32-bit system-on-chip processor solutions.
237f37f46ebSHyok S. Choi	  The TCM and ARMv5TE 32-bit instruction set is supported.
238f37f46ebSHyok S. Choi
239f37f46ebSHyok S. Choi	  Say Y if you want support for the ARM946E-S processor.
240f37f46ebSHyok S. Choi	  Otherwise, say N.
241f37f46ebSHyok S. Choi
2421da177e4SLinus Torvalds# ARM1020 - needs validating
2431da177e4SLinus Torvaldsconfig CPU_ARM1020
244c750815eSRussell King	bool "Support ARM1020T (rev 0) processor" if ARCH_INTEGRATOR
2451da177e4SLinus Torvalds	select CPU_32v5
2461da177e4SLinus Torvalds	select CPU_ABRT_EV4T
24748d7927bSPaul Brook	select CPU_PABRT_NOIFAR
2481da177e4SLinus Torvalds	select CPU_CACHE_V4WT
2491da177e4SLinus Torvalds	select CPU_CACHE_VIVT
250fefdaa06SHyok S. Choi	select CPU_CP15_MMU
251f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU
252f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
2531da177e4SLinus Torvalds	help
2541da177e4SLinus Torvalds	  The ARM1020 is the 32K cached version of the ARM10 processor,
2551da177e4SLinus Torvalds	  with an addition of a floating-point unit.
2561da177e4SLinus Torvalds
2571da177e4SLinus Torvalds	  Say Y if you want support for the ARM1020 processor.
2581da177e4SLinus Torvalds	  Otherwise, say N.
2591da177e4SLinus Torvalds
2601da177e4SLinus Torvalds# ARM1020E - needs validating
2611da177e4SLinus Torvaldsconfig CPU_ARM1020E
262c750815eSRussell King	bool "Support ARM1020E processor" if ARCH_INTEGRATOR
2631da177e4SLinus Torvalds	select CPU_32v5
2641da177e4SLinus Torvalds	select CPU_ABRT_EV4T
26548d7927bSPaul Brook	select CPU_PABRT_NOIFAR
2661da177e4SLinus Torvalds	select CPU_CACHE_V4WT
2671da177e4SLinus Torvalds	select CPU_CACHE_VIVT
268fefdaa06SHyok S. Choi	select CPU_CP15_MMU
269f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU
270f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
2711da177e4SLinus Torvalds	depends on n
2721da177e4SLinus Torvalds
2731da177e4SLinus Torvalds# ARM1022E
2741da177e4SLinus Torvaldsconfig CPU_ARM1022
275c750815eSRussell King	bool "Support ARM1022E processor" if ARCH_INTEGRATOR
2761da177e4SLinus Torvalds	select CPU_32v5
2771da177e4SLinus Torvalds	select CPU_ABRT_EV4T
27848d7927bSPaul Brook	select CPU_PABRT_NOIFAR
2791da177e4SLinus Torvalds	select CPU_CACHE_VIVT
280fefdaa06SHyok S. Choi	select CPU_CP15_MMU
281f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU # can probably do better
282f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
2831da177e4SLinus Torvalds	help
2841da177e4SLinus Torvalds	  The ARM1022E is an implementation of the ARMv5TE architecture
2851da177e4SLinus Torvalds	  based upon the ARM10 integer core with a 16KiB L1 Harvard cache,
2861da177e4SLinus Torvalds	  embedded trace macrocell, and a floating-point unit.
2871da177e4SLinus Torvalds
2881da177e4SLinus Torvalds	  Say Y if you want support for the ARM1022E processor.
2891da177e4SLinus Torvalds	  Otherwise, say N.
2901da177e4SLinus Torvalds
2911da177e4SLinus Torvalds# ARM1026EJ-S
2921da177e4SLinus Torvaldsconfig CPU_ARM1026
293c750815eSRussell King	bool "Support ARM1026EJ-S processor" if ARCH_INTEGRATOR
2941da177e4SLinus Torvalds	select CPU_32v5
2951da177e4SLinus Torvalds	select CPU_ABRT_EV5T # But need Jazelle, but EV5TJ ignores bit 10
29648d7927bSPaul Brook	select CPU_PABRT_NOIFAR
2971da177e4SLinus Torvalds	select CPU_CACHE_VIVT
298fefdaa06SHyok S. Choi	select CPU_CP15_MMU
299f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU # can probably do better
300f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
3011da177e4SLinus Torvalds	help
3021da177e4SLinus Torvalds	  The ARM1026EJ-S is an implementation of the ARMv5TEJ architecture
3031da177e4SLinus Torvalds	  based upon the ARM10 integer core.
3041da177e4SLinus Torvalds
3051da177e4SLinus Torvalds	  Say Y if you want support for the ARM1026EJ-S processor.
3061da177e4SLinus Torvalds	  Otherwise, say N.
3071da177e4SLinus Torvalds
3081da177e4SLinus Torvalds# SA110
3091da177e4SLinus Torvaldsconfig CPU_SA110
310c750815eSRussell King	bool "Support StrongARM(R) SA-110 processor" if ARCH_RPC
3111da177e4SLinus Torvalds	select CPU_32v3 if ARCH_RPC
3121da177e4SLinus Torvalds	select CPU_32v4 if !ARCH_RPC
3131da177e4SLinus Torvalds	select CPU_ABRT_EV4
31448d7927bSPaul Brook	select CPU_PABRT_NOIFAR
3151da177e4SLinus Torvalds	select CPU_CACHE_V4WB
3161da177e4SLinus Torvalds	select CPU_CACHE_VIVT
317fefdaa06SHyok S. Choi	select CPU_CP15_MMU
318f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU
319f9c21a6eSHyok S. Choi	select CPU_TLB_V4WB if MMU
3201da177e4SLinus Torvalds	help
3211da177e4SLinus Torvalds	  The Intel StrongARM(R) SA-110 is a 32-bit microprocessor and
3221da177e4SLinus Torvalds	  is available at five speeds ranging from 100 MHz to 233 MHz.
3231da177e4SLinus Torvalds	  More information is available at
3241da177e4SLinus Torvalds	  <http://developer.intel.com/design/strong/sa110.htm>.
3251da177e4SLinus Torvalds
3261da177e4SLinus Torvalds	  Say Y if you want support for the SA-110 processor.
3271da177e4SLinus Torvalds	  Otherwise, say N.
3281da177e4SLinus Torvalds
3291da177e4SLinus Torvalds# SA1100
3301da177e4SLinus Torvaldsconfig CPU_SA1100
3311da177e4SLinus Torvalds	bool
3321da177e4SLinus Torvalds	select CPU_32v4
3331da177e4SLinus Torvalds	select CPU_ABRT_EV4
33448d7927bSPaul Brook	select CPU_PABRT_NOIFAR
3351da177e4SLinus Torvalds	select CPU_CACHE_V4WB
3361da177e4SLinus Torvalds	select CPU_CACHE_VIVT
337fefdaa06SHyok S. Choi	select CPU_CP15_MMU
338f9c21a6eSHyok S. Choi	select CPU_TLB_V4WB if MMU
3391da177e4SLinus Torvalds
3401da177e4SLinus Torvalds# XScale
3411da177e4SLinus Torvaldsconfig CPU_XSCALE
3421da177e4SLinus Torvalds	bool
3431da177e4SLinus Torvalds	select CPU_32v5
3441da177e4SLinus Torvalds	select CPU_ABRT_EV5T
34548d7927bSPaul Brook	select CPU_PABRT_NOIFAR
3461da177e4SLinus Torvalds	select CPU_CACHE_VIVT
347fefdaa06SHyok S. Choi	select CPU_CP15_MMU
348f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
3491da177e4SLinus Torvalds
35023bdf86aSLennert Buytenhek# XScale Core Version 3
35123bdf86aSLennert Buytenhekconfig CPU_XSC3
35223bdf86aSLennert Buytenhek	bool
35323bdf86aSLennert Buytenhek	select CPU_32v5
35423bdf86aSLennert Buytenhek	select CPU_ABRT_EV5T
3554a1fd556SCatalin Marinas	select CPU_PABRT_NOIFAR
35623bdf86aSLennert Buytenhek	select CPU_CACHE_VIVT
357fefdaa06SHyok S. Choi	select CPU_CP15_MMU
358f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
35923bdf86aSLennert Buytenhek	select IO_36
36023bdf86aSLennert Buytenhek
36149cbe786SEric Miao# Marvell PJ1 (Mohawk)
36249cbe786SEric Miaoconfig CPU_MOHAWK
36349cbe786SEric Miao	bool
36449cbe786SEric Miao	select CPU_32v5
36549cbe786SEric Miao	select CPU_ABRT_EV5T
36649cbe786SEric Miao	select CPU_PABRT_NOIFAR
36749cbe786SEric Miao	select CPU_CACHE_VIVT
36849cbe786SEric Miao	select CPU_CP15_MMU
36949cbe786SEric Miao	select CPU_TLB_V4WBI if MMU
37049cbe786SEric Miao	select CPU_COPY_V4WB if MMU
37149cbe786SEric Miao
372e50d6409SAssaf Hoffman# Feroceon
373e50d6409SAssaf Hoffmanconfig CPU_FEROCEON
374e50d6409SAssaf Hoffman	bool
375e50d6409SAssaf Hoffman	select CPU_32v5
376e50d6409SAssaf Hoffman	select CPU_ABRT_EV5T
37748d7927bSPaul Brook	select CPU_PABRT_NOIFAR
378e50d6409SAssaf Hoffman	select CPU_CACHE_VIVT
379e50d6409SAssaf Hoffman	select CPU_CP15_MMU
3800ed15071SLennert Buytenhek	select CPU_COPY_FEROCEON if MMU
38199c6dc11SLennert Buytenhek	select CPU_TLB_FEROCEON if MMU
382e50d6409SAssaf Hoffman
383d910a0aaSTzachi Perelsteinconfig CPU_FEROCEON_OLD_ID
384d910a0aaSTzachi Perelstein	bool "Accept early Feroceon cores with an ARM926 ID"
385d910a0aaSTzachi Perelstein	depends on CPU_FEROCEON && !CPU_ARM926T
386d910a0aaSTzachi Perelstein	default y
387d910a0aaSTzachi Perelstein	help
388d910a0aaSTzachi Perelstein	  This enables the usage of some old Feroceon cores
389d910a0aaSTzachi Perelstein	  for which the CPU ID is equal to the ARM926 ID.
390d910a0aaSTzachi Perelstein	  Relevant for Feroceon-1850 and early Feroceon-2850.
391d910a0aaSTzachi Perelstein
3921da177e4SLinus Torvalds# ARMv6
3931da177e4SLinus Torvaldsconfig CPU_V6
394c750815eSRussell King	bool "Support ARM V6 processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB
3951da177e4SLinus Torvalds	select CPU_32v6
3961da177e4SLinus Torvalds	select CPU_ABRT_EV6
39748d7927bSPaul Brook	select CPU_PABRT_NOIFAR
3981da177e4SLinus Torvalds	select CPU_CACHE_V6
3991da177e4SLinus Torvalds	select CPU_CACHE_VIPT
400fefdaa06SHyok S. Choi	select CPU_CP15_MMU
4017b4c965aSCatalin Marinas	select CPU_HAS_ASID if MMU
402f9c21a6eSHyok S. Choi	select CPU_COPY_V6 if MMU
403f9c21a6eSHyok S. Choi	select CPU_TLB_V6 if MMU
4041da177e4SLinus Torvalds
4054a5f79e7SRussell King# ARMv6k
4064a5f79e7SRussell Kingconfig CPU_32v6K
4074a5f79e7SRussell King	bool "Support ARM V6K processor extensions" if !SMP
4084a5f79e7SRussell King	depends on CPU_V6
40952c543f9SQuinn Jensen	default y if SMP && !ARCH_MX3
4104a5f79e7SRussell King	help
4114a5f79e7SRussell King	  Say Y here if your ARMv6 processor supports the 'K' extension.
4124a5f79e7SRussell King	  This enables the kernel to use some instructions not present
4134a5f79e7SRussell King	  on previous processors, and as such a kernel build with this
4144a5f79e7SRussell King	  enabled will not boot on processors with do not support these
4154a5f79e7SRussell King	  instructions.
4164a5f79e7SRussell King
41723688e99SCatalin Marinas# ARMv7
41823688e99SCatalin Marinasconfig CPU_V7
419c750815eSRussell King	bool "Support ARM V7 processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB
42023688e99SCatalin Marinas	select CPU_32v6K
42123688e99SCatalin Marinas	select CPU_32v7
42223688e99SCatalin Marinas	select CPU_ABRT_EV7
42348d7927bSPaul Brook	select CPU_PABRT_IFAR
42423688e99SCatalin Marinas	select CPU_CACHE_V7
42523688e99SCatalin Marinas	select CPU_CACHE_VIPT
42623688e99SCatalin Marinas	select CPU_CP15_MMU
4272eb8c82bSCatalin Marinas	select CPU_HAS_ASID if MMU
42823688e99SCatalin Marinas	select CPU_COPY_V6 if MMU
4292ccdd1e7SCatalin Marinas	select CPU_TLB_V7 if MMU
43023688e99SCatalin Marinas
4311da177e4SLinus Torvalds# Figure out what processor architecture version we should be using.
4321da177e4SLinus Torvalds# This defines the compiler instruction set which depends on the machine type.
4331da177e4SLinus Torvaldsconfig CPU_32v3
4341da177e4SLinus Torvalds	bool
43560b6cf68SRussell King	select TLS_REG_EMUL if SMP || !MMU
43648fa14f7SRussell King	select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
4371da177e4SLinus Torvalds
4381da177e4SLinus Torvaldsconfig CPU_32v4
4391da177e4SLinus Torvalds	bool
44060b6cf68SRussell King	select TLS_REG_EMUL if SMP || !MMU
44148fa14f7SRussell King	select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
4421da177e4SLinus Torvalds
443260e98edSLennert Buytenhekconfig CPU_32v4T
444260e98edSLennert Buytenhek	bool
445260e98edSLennert Buytenhek	select TLS_REG_EMUL if SMP || !MMU
446260e98edSLennert Buytenhek	select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
447260e98edSLennert Buytenhek
4481da177e4SLinus Torvaldsconfig CPU_32v5
4491da177e4SLinus Torvalds	bool
45060b6cf68SRussell King	select TLS_REG_EMUL if SMP || !MMU
45148fa14f7SRussell King	select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
4521da177e4SLinus Torvalds
4531da177e4SLinus Torvaldsconfig CPU_32v6
4541da177e4SLinus Torvalds	bool
455367afaf8SCatalin Marinas	select TLS_REG_EMUL if !CPU_32v6K && !MMU
4561da177e4SLinus Torvalds
45723688e99SCatalin Marinasconfig CPU_32v7
45823688e99SCatalin Marinas	bool
45923688e99SCatalin Marinas
4601da177e4SLinus Torvalds# The abort model
4610f45d7f3SHyok S. Choiconfig CPU_ABRT_NOMMU
4620f45d7f3SHyok S. Choi	bool
4630f45d7f3SHyok S. Choi
4641da177e4SLinus Torvaldsconfig CPU_ABRT_EV4
4651da177e4SLinus Torvalds	bool
4661da177e4SLinus Torvalds
4671da177e4SLinus Torvaldsconfig CPU_ABRT_EV4T
4681da177e4SLinus Torvalds	bool
4691da177e4SLinus Torvalds
4701da177e4SLinus Torvaldsconfig CPU_ABRT_LV4T
4711da177e4SLinus Torvalds	bool
4721da177e4SLinus Torvalds
4731da177e4SLinus Torvaldsconfig CPU_ABRT_EV5T
4741da177e4SLinus Torvalds	bool
4751da177e4SLinus Torvalds
4761da177e4SLinus Torvaldsconfig CPU_ABRT_EV5TJ
4771da177e4SLinus Torvalds	bool
4781da177e4SLinus Torvalds
4791da177e4SLinus Torvaldsconfig CPU_ABRT_EV6
4801da177e4SLinus Torvalds	bool
4811da177e4SLinus Torvalds
48223688e99SCatalin Marinasconfig CPU_ABRT_EV7
48323688e99SCatalin Marinas	bool
48423688e99SCatalin Marinas
48548d7927bSPaul Brookconfig CPU_PABRT_IFAR
48648d7927bSPaul Brook	bool
48748d7927bSPaul Brook
48848d7927bSPaul Brookconfig CPU_PABRT_NOIFAR
48948d7927bSPaul Brook	bool
49048d7927bSPaul Brook
4911da177e4SLinus Torvalds# The cache model
4921da177e4SLinus Torvaldsconfig CPU_CACHE_V3
4931da177e4SLinus Torvalds	bool
4941da177e4SLinus Torvalds
4951da177e4SLinus Torvaldsconfig CPU_CACHE_V4
4961da177e4SLinus Torvalds	bool
4971da177e4SLinus Torvalds
4981da177e4SLinus Torvaldsconfig CPU_CACHE_V4WT
4991da177e4SLinus Torvalds	bool
5001da177e4SLinus Torvalds
5011da177e4SLinus Torvaldsconfig CPU_CACHE_V4WB
5021da177e4SLinus Torvalds	bool
5031da177e4SLinus Torvalds
5041da177e4SLinus Torvaldsconfig CPU_CACHE_V6
5051da177e4SLinus Torvalds	bool
5061da177e4SLinus Torvalds
50723688e99SCatalin Marinasconfig CPU_CACHE_V7
50823688e99SCatalin Marinas	bool
50923688e99SCatalin Marinas
5101da177e4SLinus Torvaldsconfig CPU_CACHE_VIVT
5111da177e4SLinus Torvalds	bool
5121da177e4SLinus Torvalds
5131da177e4SLinus Torvaldsconfig CPU_CACHE_VIPT
5141da177e4SLinus Torvalds	bool
5151da177e4SLinus Torvalds
51628853ac8SPaulius Zaleckasconfig CPU_CACHE_FA
51728853ac8SPaulius Zaleckas	bool
51828853ac8SPaulius Zaleckas
519f9c21a6eSHyok S. Choiif MMU
5201da177e4SLinus Torvalds# The copy-page model
5211da177e4SLinus Torvaldsconfig CPU_COPY_V3
5221da177e4SLinus Torvalds	bool
5231da177e4SLinus Torvalds
5241da177e4SLinus Torvaldsconfig CPU_COPY_V4WT
5251da177e4SLinus Torvalds	bool
5261da177e4SLinus Torvalds
5271da177e4SLinus Torvaldsconfig CPU_COPY_V4WB
5281da177e4SLinus Torvalds	bool
5291da177e4SLinus Torvalds
5300ed15071SLennert Buytenhekconfig CPU_COPY_FEROCEON
5310ed15071SLennert Buytenhek	bool
5320ed15071SLennert Buytenhek
53328853ac8SPaulius Zaleckasconfig CPU_COPY_FA
53428853ac8SPaulius Zaleckas	bool
53528853ac8SPaulius Zaleckas
5361da177e4SLinus Torvaldsconfig CPU_COPY_V6
5371da177e4SLinus Torvalds	bool
5381da177e4SLinus Torvalds
5391da177e4SLinus Torvalds# This selects the TLB model
5401da177e4SLinus Torvaldsconfig CPU_TLB_V3
5411da177e4SLinus Torvalds	bool
5421da177e4SLinus Torvalds	help
5431da177e4SLinus Torvalds	  ARM Architecture Version 3 TLB.
5441da177e4SLinus Torvalds
5451da177e4SLinus Torvaldsconfig CPU_TLB_V4WT
5461da177e4SLinus Torvalds	bool
5471da177e4SLinus Torvalds	help
5481da177e4SLinus Torvalds	  ARM Architecture Version 4 TLB with writethrough cache.
5491da177e4SLinus Torvalds
5501da177e4SLinus Torvaldsconfig CPU_TLB_V4WB
5511da177e4SLinus Torvalds	bool
5521da177e4SLinus Torvalds	help
5531da177e4SLinus Torvalds	  ARM Architecture Version 4 TLB with writeback cache.
5541da177e4SLinus Torvalds
5551da177e4SLinus Torvaldsconfig CPU_TLB_V4WBI
5561da177e4SLinus Torvalds	bool
5571da177e4SLinus Torvalds	help
5581da177e4SLinus Torvalds	  ARM Architecture Version 4 TLB with writeback cache and invalidate
5591da177e4SLinus Torvalds	  instruction cache entry.
5601da177e4SLinus Torvalds
56199c6dc11SLennert Buytenhekconfig CPU_TLB_FEROCEON
56299c6dc11SLennert Buytenhek	bool
56399c6dc11SLennert Buytenhek	help
56499c6dc11SLennert Buytenhek	  Feroceon TLB (v4wbi with non-outer-cachable page table walks).
56599c6dc11SLennert Buytenhek
56628853ac8SPaulius Zaleckasconfig CPU_TLB_FA
56728853ac8SPaulius Zaleckas	bool
56828853ac8SPaulius Zaleckas	help
56928853ac8SPaulius Zaleckas	  Faraday ARM FA526 architecture, unified TLB with writeback cache
57028853ac8SPaulius Zaleckas	  and invalidate instruction cache entry. Branch target buffer is
57128853ac8SPaulius Zaleckas	  also supported.
57228853ac8SPaulius Zaleckas
5731da177e4SLinus Torvaldsconfig CPU_TLB_V6
5741da177e4SLinus Torvalds	bool
5751da177e4SLinus Torvalds
5762ccdd1e7SCatalin Marinasconfig CPU_TLB_V7
5772ccdd1e7SCatalin Marinas	bool
5782ccdd1e7SCatalin Marinas
579f9c21a6eSHyok S. Choiendif
580f9c21a6eSHyok S. Choi
581516793c6SRussell Kingconfig CPU_HAS_ASID
582516793c6SRussell King	bool
583516793c6SRussell King	help
584516793c6SRussell King	  This indicates whether the CPU has the ASID register; used to
585516793c6SRussell King	  tag TLB and possibly cache entries.
586516793c6SRussell King
587fefdaa06SHyok S. Choiconfig CPU_CP15
588fefdaa06SHyok S. Choi	bool
589fefdaa06SHyok S. Choi	help
590fefdaa06SHyok S. Choi	  Processor has the CP15 register.
591fefdaa06SHyok S. Choi
592fefdaa06SHyok S. Choiconfig CPU_CP15_MMU
593fefdaa06SHyok S. Choi	bool
594fefdaa06SHyok S. Choi	select CPU_CP15
595fefdaa06SHyok S. Choi	help
596fefdaa06SHyok S. Choi	  Processor has the CP15 register, which has MMU related registers.
597fefdaa06SHyok S. Choi
598fefdaa06SHyok S. Choiconfig CPU_CP15_MPU
599fefdaa06SHyok S. Choi	bool
600fefdaa06SHyok S. Choi	select CPU_CP15
601fefdaa06SHyok S. Choi	help
602fefdaa06SHyok S. Choi	  Processor has the CP15 register, which has MPU related registers.
603fefdaa06SHyok S. Choi
60423bdf86aSLennert Buytenhek#
60523bdf86aSLennert Buytenhek# CPU supports 36-bit I/O
60623bdf86aSLennert Buytenhek#
60723bdf86aSLennert Buytenhekconfig IO_36
60823bdf86aSLennert Buytenhek	bool
60923bdf86aSLennert Buytenhek
6101da177e4SLinus Torvaldscomment "Processor Features"
6111da177e4SLinus Torvalds
6121da177e4SLinus Torvaldsconfig ARM_THUMB
6131da177e4SLinus Torvalds	bool "Support Thumb user binaries"
61449cbe786SEric Miao	depends on CPU_ARM720T || CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_V6 || CPU_V7 || CPU_FEROCEON
6151da177e4SLinus Torvalds	default y
6161da177e4SLinus Torvalds	help
6171da177e4SLinus Torvalds	  Say Y if you want to include kernel support for running user space
6181da177e4SLinus Torvalds	  Thumb binaries.
6191da177e4SLinus Torvalds
6201da177e4SLinus Torvalds	  The Thumb instruction set is a compressed form of the standard ARM
6211da177e4SLinus Torvalds	  instruction set resulting in smaller binaries at the expense of
6221da177e4SLinus Torvalds	  slightly less efficient code.
6231da177e4SLinus Torvalds
6241da177e4SLinus Torvalds	  If you don't know what this all is, saying Y is a safe choice.
6251da177e4SLinus Torvalds
626d7f864beSCatalin Marinasconfig ARM_THUMBEE
627d7f864beSCatalin Marinas	bool "Enable ThumbEE CPU extension"
628d7f864beSCatalin Marinas	depends on CPU_V7
629d7f864beSCatalin Marinas	help
630d7f864beSCatalin Marinas	  Say Y here if you have a CPU with the ThumbEE extension and code to
631d7f864beSCatalin Marinas	  make use of it. Say N for code that can run on CPUs without ThumbEE.
632d7f864beSCatalin Marinas
6331da177e4SLinus Torvaldsconfig CPU_BIG_ENDIAN
6341da177e4SLinus Torvalds	bool "Build big-endian kernel"
6351da177e4SLinus Torvalds	depends on ARCH_SUPPORTS_BIG_ENDIAN
6361da177e4SLinus Torvalds	help
6371da177e4SLinus Torvalds	  Say Y if you plan on running a kernel in big-endian mode.
6381da177e4SLinus Torvalds	  Note that your board must be properly built and your board
6391da177e4SLinus Torvalds	  port must properly enable any big-endian related features
6401da177e4SLinus Torvalds	  of your chipset/board/processor.
6411da177e4SLinus Torvalds
6426afd6faeSHyok S. Choiconfig CPU_HIGH_VECTOR
6436340aa61SRobert P. J. Day	depends on !MMU && CPU_CP15 && !CPU_ARM740T
6446afd6faeSHyok S. Choi	bool "Select the High exception vector"
6456afd6faeSHyok S. Choi	default n
6466afd6faeSHyok S. Choi	help
6476afd6faeSHyok S. Choi	  Say Y here to select high exception vector(0xFFFF0000~).
6486afd6faeSHyok S. Choi	  The exception vector can be vary depending on the platform
6496afd6faeSHyok S. Choi	  design in nommu mode. If your platform needs to select
6506afd6faeSHyok S. Choi	  high exception vector, say Y.
6516afd6faeSHyok S. Choi	  Otherwise or if you are unsure, say N, and the low exception
6526afd6faeSHyok S. Choi	  vector (0x00000000~) will be used.
6536afd6faeSHyok S. Choi
6541da177e4SLinus Torvaldsconfig CPU_ICACHE_DISABLE
655f12d0d7cSHyok S. Choi	bool "Disable I-Cache (I-bit)"
656f12d0d7cSHyok S. Choi	depends on CPU_CP15 && !(CPU_ARM610 || CPU_ARM710 || CPU_ARM720T || CPU_ARM740T || CPU_XSCALE || CPU_XSC3)
6571da177e4SLinus Torvalds	help
6581da177e4SLinus Torvalds	  Say Y here to disable the processor instruction cache. Unless
6591da177e4SLinus Torvalds	  you have a reason not to or are unsure, say N.
6601da177e4SLinus Torvalds
6611da177e4SLinus Torvaldsconfig CPU_DCACHE_DISABLE
662f12d0d7cSHyok S. Choi	bool "Disable D-Cache (C-bit)"
663f12d0d7cSHyok S. Choi	depends on CPU_CP15
6641da177e4SLinus Torvalds	help
6651da177e4SLinus Torvalds	  Say Y here to disable the processor data cache. Unless
6661da177e4SLinus Torvalds	  you have a reason not to or are unsure, say N.
6671da177e4SLinus Torvalds
668f37f46ebSHyok S. Choiconfig CPU_DCACHE_SIZE
669f37f46ebSHyok S. Choi	hex
670f37f46ebSHyok S. Choi	depends on CPU_ARM740T || CPU_ARM946E
671f37f46ebSHyok S. Choi	default 0x00001000 if CPU_ARM740T
672f37f46ebSHyok S. Choi	default 0x00002000 # default size for ARM946E-S
673f37f46ebSHyok S. Choi	help
674f37f46ebSHyok S. Choi	  Some cores are synthesizable to have various sized cache. For
675f37f46ebSHyok S. Choi	  ARM946E-S case, it can vary from 0KB to 1MB.
676f37f46ebSHyok S. Choi	  To support such cache operations, it is efficient to know the size
677f37f46ebSHyok S. Choi	  before compile time.
678f37f46ebSHyok S. Choi	  If your SoC is configured to have a different size, define the value
679f37f46ebSHyok S. Choi	  here with proper conditions.
680f37f46ebSHyok S. Choi
6811da177e4SLinus Torvaldsconfig CPU_DCACHE_WRITETHROUGH
6821da177e4SLinus Torvalds	bool "Force write through D-cache"
68328853ac8SPaulius Zaleckas	depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_FA526) && !CPU_DCACHE_DISABLE
6841da177e4SLinus Torvalds	default y if CPU_ARM925T
6851da177e4SLinus Torvalds	help
6861da177e4SLinus Torvalds	  Say Y here to use the data cache in writethrough mode. Unless you
6871da177e4SLinus Torvalds	  specifically require this or are unsure, say N.
6881da177e4SLinus Torvalds
6891da177e4SLinus Torvaldsconfig CPU_CACHE_ROUND_ROBIN
6901da177e4SLinus Torvalds	bool "Round robin I and D cache replacement algorithm"
691f37f46ebSHyok S. Choi	depends on (CPU_ARM926T || CPU_ARM946E || CPU_ARM1020) && (!CPU_ICACHE_DISABLE || !CPU_DCACHE_DISABLE)
6921da177e4SLinus Torvalds	help
6931da177e4SLinus Torvalds	  Say Y here to use the predictable round-robin cache replacement
6941da177e4SLinus Torvalds	  policy.  Unless you specifically require this or are unsure, say N.
6951da177e4SLinus Torvalds
6961da177e4SLinus Torvaldsconfig CPU_BPREDICT_DISABLE
6971da177e4SLinus Torvalds	bool "Disable branch prediction"
698*542f869fSRussell King	depends on CPU_ARM1020 || CPU_V6 || CPU_MOHAWK || CPU_XSC3 || CPU_V7 || CPU_FA526
6991da177e4SLinus Torvalds	help
7001da177e4SLinus Torvalds	  Say Y here to disable branch prediction.  If unsure, say N.
7012d2669b6SNicolas Pitre
7024b0e07a5SNicolas Pitreconfig TLS_REG_EMUL
7034b0e07a5SNicolas Pitre	bool
7044b0e07a5SNicolas Pitre	help
70570489c88SNicolas Pitre	  An SMP system using a pre-ARMv6 processor (there are apparently
70670489c88SNicolas Pitre	  a few prototypes like that in existence) and therefore access to
70770489c88SNicolas Pitre	  that required register must be emulated.
7084b0e07a5SNicolas Pitre
7092d2669b6SNicolas Pitreconfig HAS_TLS_REG
7102d2669b6SNicolas Pitre	bool
71170489c88SNicolas Pitre	depends on !TLS_REG_EMUL
71270489c88SNicolas Pitre	default y if SMP || CPU_32v7
7132d2669b6SNicolas Pitre	help
7142d2669b6SNicolas Pitre	  This selects support for the CP15 thread register.
71570489c88SNicolas Pitre	  It is defined to be available on some ARMv6 processors (including
71670489c88SNicolas Pitre	  all SMP capable ARMv6's) or later processors.  User space may
71770489c88SNicolas Pitre	  assume directly accessing that register and always obtain the
71870489c88SNicolas Pitre	  expected value only on ARMv7 and above.
7192d2669b6SNicolas Pitre
720dcef1f63SNicolas Pitreconfig NEEDS_SYSCALL_FOR_CMPXCHG
721dcef1f63SNicolas Pitre	bool
722dcef1f63SNicolas Pitre	help
723dcef1f63SNicolas Pitre	  SMP on a pre-ARMv6 processor?  Well OK then.
724dcef1f63SNicolas Pitre	  Forget about fast user space cmpxchg support.
725dcef1f63SNicolas Pitre	  It is just not possible.
726dcef1f63SNicolas Pitre
727953233dcSCatalin Marinasconfig OUTER_CACHE
728953233dcSCatalin Marinas	bool
729953233dcSCatalin Marinas	default n
730382266adSCatalin Marinas
73199c6dc11SLennert Buytenhekconfig CACHE_FEROCEON_L2
73299c6dc11SLennert Buytenhek	bool "Enable the Feroceon L2 cache controller"
733794d15b2SStanislav Samsonov	depends on ARCH_KIRKWOOD || ARCH_MV78XX0
73499c6dc11SLennert Buytenhek	default y
735382266adSCatalin Marinas	select OUTER_CACHE
73699c6dc11SLennert Buytenhek	help
73799c6dc11SLennert Buytenhek	  This option enables the Feroceon L2 cache controller.
73899c6dc11SLennert Buytenhek
7394360bb41SRonen Shitritconfig CACHE_FEROCEON_L2_WRITETHROUGH
7404360bb41SRonen Shitrit	bool "Force Feroceon L2 cache write through"
7414360bb41SRonen Shitrit	depends on CACHE_FEROCEON_L2
7424360bb41SRonen Shitrit	default n
7434360bb41SRonen Shitrit	help
7444360bb41SRonen Shitrit	  Say Y here to use the Feroceon L2 cache in writethrough mode.
7454360bb41SRonen Shitrit	  Unless you specifically require this, say N for writeback mode.
7464360bb41SRonen Shitrit
7471da177e4SLinus Torvaldsconfig CACHE_L2X0
748ba927951SCatalin Marinas	bool "Enable the L2x0 outer cache controller"
749cb88214dSSascha Hauer	depends on REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || MACH_REALVIEW_PB1176 || \
750cb88214dSSascha Hauer		   REALVIEW_EB_A9MP || ARCH_MX35 || ARCH_MX31
751ba927951SCatalin Marinas	default y
7521da177e4SLinus Torvalds	select OUTER_CACHE
753ba927951SCatalin Marinas	help
754ba927951SCatalin Marinas	  This option enables the L2x0 PrimeCell.
755905a09d5SEric Miao
756905a09d5SEric Miaoconfig CACHE_XSC3L2
757905a09d5SEric Miao	bool "Enable the L2 cache on XScale3"
758905a09d5SEric Miao	depends on CPU_XSC3
759905a09d5SEric Miao	default y
760905a09d5SEric Miao	select OUTER_CACHE
761905a09d5SEric Miao	help
762905a09d5SEric Miao	  This option enables the L2 cache on XScale3.
763