xref: /linux/arch/arm/mm/Kconfig (revision edabd38e1a017e922e3e3b485ee3ddb4df433aa4)
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
204fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
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
344fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
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
524fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
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
674fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
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
864fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
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
1034fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
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
1174fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
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,
125c768e676SHartley Sweeten	  and is used in the Cirrus EP93xx and the Samsung S3C2410.
1261da177e4SLinus Torvalds
1271da177e4SLinus Torvalds	  Say Y if you want support for the ARM920T processor.
1281da177e4SLinus Torvalds	  Otherwise, say N.
1291da177e4SLinus Torvalds
1301da177e4SLinus Torvalds# ARM922T
1311da177e4SLinus Torvaldsconfig CPU_ARM922T
1321da177e4SLinus Torvalds	bool "Support ARM922T processor" if ARCH_INTEGRATOR
133260e98edSLennert Buytenhek	select CPU_32v4T
1341da177e4SLinus Torvalds	select CPU_ABRT_EV4T
1354fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
1361da177e4SLinus Torvalds	select CPU_CACHE_V4WT
1371da177e4SLinus Torvalds	select CPU_CACHE_VIVT
138fefdaa06SHyok S. Choi	select CPU_CP15_MMU
139f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU
140f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
1411da177e4SLinus Torvalds	help
1421da177e4SLinus Torvalds	  The ARM922T is a version of the ARM920T, but with smaller
1431da177e4SLinus Torvalds	  instruction and data caches. It is used in Altera's
144c53c9cf6SAndrew Victor	  Excalibur XA device family and Micrel's KS8695 Centaur.
1451da177e4SLinus Torvalds
1461da177e4SLinus Torvalds	  Say Y if you want support for the ARM922T processor.
1471da177e4SLinus Torvalds	  Otherwise, say N.
1481da177e4SLinus Torvalds
1491da177e4SLinus Torvalds# ARM925T
1501da177e4SLinus Torvaldsconfig CPU_ARM925T
151b288f75fSTony Lindgren 	bool "Support ARM925T processor" if ARCH_OMAP1
152260e98edSLennert Buytenhek	select CPU_32v4T
1531da177e4SLinus Torvalds	select CPU_ABRT_EV4T
1544fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
1551da177e4SLinus Torvalds	select CPU_CACHE_V4WT
1561da177e4SLinus Torvalds	select CPU_CACHE_VIVT
157fefdaa06SHyok S. Choi	select CPU_CP15_MMU
158f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU
159f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
1601da177e4SLinus Torvalds 	help
1611da177e4SLinus Torvalds 	  The ARM925T is a mix between the ARM920T and ARM926T, but with
1621da177e4SLinus Torvalds	  different instruction and data caches. It is used in TI's OMAP
1631da177e4SLinus Torvalds 	  device family.
1641da177e4SLinus Torvalds
1651da177e4SLinus Torvalds 	  Say Y if you want support for the ARM925T processor.
1661da177e4SLinus Torvalds 	  Otherwise, say N.
1671da177e4SLinus Torvalds
1681da177e4SLinus Torvalds# ARM926T
1691da177e4SLinus Torvaldsconfig CPU_ARM926T
170c750815eSRussell King	bool "Support ARM926T processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB
1711da177e4SLinus Torvalds	select CPU_32v5
1721da177e4SLinus Torvalds	select CPU_ABRT_EV5TJ
1734fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
1741da177e4SLinus Torvalds	select CPU_CACHE_VIVT
175fefdaa06SHyok S. Choi	select CPU_CP15_MMU
176f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU
177f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
1781da177e4SLinus Torvalds	help
1791da177e4SLinus Torvalds	  This is a variant of the ARM920.  It has slightly different
1801da177e4SLinus Torvalds	  instruction sequences for cache and TLB operations.  Curiously,
1811da177e4SLinus Torvalds	  there is no documentation on it at the ARM corporate website.
1821da177e4SLinus Torvalds
1831da177e4SLinus Torvalds	  Say Y if you want support for the ARM926T processor.
1841da177e4SLinus Torvalds	  Otherwise, say N.
1851da177e4SLinus Torvalds
18628853ac8SPaulius Zaleckas# FA526
18728853ac8SPaulius Zaleckasconfig CPU_FA526
18828853ac8SPaulius Zaleckas	bool
18928853ac8SPaulius Zaleckas	select CPU_32v4
19028853ac8SPaulius Zaleckas	select CPU_ABRT_EV4
1914fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
19228853ac8SPaulius Zaleckas	select CPU_CACHE_VIVT
19328853ac8SPaulius Zaleckas	select CPU_CP15_MMU
19428853ac8SPaulius Zaleckas	select CPU_CACHE_FA
19528853ac8SPaulius Zaleckas	select CPU_COPY_FA if MMU
19628853ac8SPaulius Zaleckas	select CPU_TLB_FA if MMU
19728853ac8SPaulius Zaleckas	help
19828853ac8SPaulius Zaleckas	  The FA526 is a version of the ARMv4 compatible processor with
19928853ac8SPaulius Zaleckas	  Branch Target Buffer, Unified TLB and cache line size 16.
20028853ac8SPaulius Zaleckas
20128853ac8SPaulius Zaleckas	  Say Y if you want support for the FA526 processor.
20228853ac8SPaulius Zaleckas	  Otherwise, say N.
20328853ac8SPaulius Zaleckas
204d60674ebSHyok S. Choi# ARM940T
205d60674ebSHyok S. Choiconfig CPU_ARM940T
206d60674ebSHyok S. Choi	bool "Support ARM940T processor" if ARCH_INTEGRATOR
2076b237a35SRussell King	depends on !MMU
208d60674ebSHyok S. Choi	select CPU_32v4T
2090f45d7f3SHyok S. Choi	select CPU_ABRT_NOMMU
2104fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
211d60674ebSHyok S. Choi	select CPU_CACHE_VIVT
212d60674ebSHyok S. Choi	select CPU_CP15_MPU
213d60674ebSHyok S. Choi	help
214d60674ebSHyok S. Choi	  ARM940T is a member of the ARM9TDMI family of general-
2153cb2fcccSMatt LaPlante	  purpose microprocessors with MPU and separate 4KB
216d60674ebSHyok S. Choi	  instruction and 4KB data cases, each with a 4-word line
217d60674ebSHyok S. Choi	  length.
218d60674ebSHyok S. Choi
219d60674ebSHyok S. Choi	  Say Y if you want support for the ARM940T processor.
220d60674ebSHyok S. Choi	  Otherwise, say N.
221d60674ebSHyok S. Choi
222f37f46ebSHyok S. Choi# ARM946E-S
223f37f46ebSHyok S. Choiconfig CPU_ARM946E
224f37f46ebSHyok S. Choi	bool "Support ARM946E-S processor" if ARCH_INTEGRATOR
2256b237a35SRussell King	depends on !MMU
226f37f46ebSHyok S. Choi	select CPU_32v5
2270f45d7f3SHyok S. Choi	select CPU_ABRT_NOMMU
2284fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
229f37f46ebSHyok S. Choi	select CPU_CACHE_VIVT
230f37f46ebSHyok S. Choi	select CPU_CP15_MPU
231f37f46ebSHyok S. Choi	help
232f37f46ebSHyok S. Choi	  ARM946E-S is a member of the ARM9E-S family of high-
233f37f46ebSHyok S. Choi	  performance, 32-bit system-on-chip processor solutions.
234f37f46ebSHyok S. Choi	  The TCM and ARMv5TE 32-bit instruction set is supported.
235f37f46ebSHyok S. Choi
236f37f46ebSHyok S. Choi	  Say Y if you want support for the ARM946E-S processor.
237f37f46ebSHyok S. Choi	  Otherwise, say N.
238f37f46ebSHyok S. Choi
2391da177e4SLinus Torvalds# ARM1020 - needs validating
2401da177e4SLinus Torvaldsconfig CPU_ARM1020
241c750815eSRussell King	bool "Support ARM1020T (rev 0) processor" if ARCH_INTEGRATOR
2421da177e4SLinus Torvalds	select CPU_32v5
2431da177e4SLinus Torvalds	select CPU_ABRT_EV4T
2444fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
2451da177e4SLinus Torvalds	select CPU_CACHE_V4WT
2461da177e4SLinus Torvalds	select CPU_CACHE_VIVT
247fefdaa06SHyok S. Choi	select CPU_CP15_MMU
248f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU
249f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
2501da177e4SLinus Torvalds	help
2511da177e4SLinus Torvalds	  The ARM1020 is the 32K cached version of the ARM10 processor,
2521da177e4SLinus Torvalds	  with an addition of a floating-point unit.
2531da177e4SLinus Torvalds
2541da177e4SLinus Torvalds	  Say Y if you want support for the ARM1020 processor.
2551da177e4SLinus Torvalds	  Otherwise, say N.
2561da177e4SLinus Torvalds
2571da177e4SLinus Torvalds# ARM1020E - needs validating
2581da177e4SLinus Torvaldsconfig CPU_ARM1020E
259c750815eSRussell King	bool "Support ARM1020E processor" if ARCH_INTEGRATOR
2601da177e4SLinus Torvalds	select CPU_32v5
2611da177e4SLinus Torvalds	select CPU_ABRT_EV4T
2624fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
2631da177e4SLinus Torvalds	select CPU_CACHE_V4WT
2641da177e4SLinus Torvalds	select CPU_CACHE_VIVT
265fefdaa06SHyok S. Choi	select CPU_CP15_MMU
266f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU
267f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
2681da177e4SLinus Torvalds	depends on n
2691da177e4SLinus Torvalds
2701da177e4SLinus Torvalds# ARM1022E
2711da177e4SLinus Torvaldsconfig CPU_ARM1022
272c750815eSRussell King	bool "Support ARM1022E processor" if ARCH_INTEGRATOR
2731da177e4SLinus Torvalds	select CPU_32v5
2741da177e4SLinus Torvalds	select CPU_ABRT_EV4T
2754fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
2761da177e4SLinus Torvalds	select CPU_CACHE_VIVT
277fefdaa06SHyok S. Choi	select CPU_CP15_MMU
278f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU # can probably do better
279f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
2801da177e4SLinus Torvalds	help
2811da177e4SLinus Torvalds	  The ARM1022E is an implementation of the ARMv5TE architecture
2821da177e4SLinus Torvalds	  based upon the ARM10 integer core with a 16KiB L1 Harvard cache,
2831da177e4SLinus Torvalds	  embedded trace macrocell, and a floating-point unit.
2841da177e4SLinus Torvalds
2851da177e4SLinus Torvalds	  Say Y if you want support for the ARM1022E processor.
2861da177e4SLinus Torvalds	  Otherwise, say N.
2871da177e4SLinus Torvalds
2881da177e4SLinus Torvalds# ARM1026EJ-S
2891da177e4SLinus Torvaldsconfig CPU_ARM1026
290c750815eSRussell King	bool "Support ARM1026EJ-S processor" if ARCH_INTEGRATOR
2911da177e4SLinus Torvalds	select CPU_32v5
2921da177e4SLinus Torvalds	select CPU_ABRT_EV5T # But need Jazelle, but EV5TJ ignores bit 10
2934fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
2941da177e4SLinus Torvalds	select CPU_CACHE_VIVT
295fefdaa06SHyok S. Choi	select CPU_CP15_MMU
296f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU # can probably do better
297f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
2981da177e4SLinus Torvalds	help
2991da177e4SLinus Torvalds	  The ARM1026EJ-S is an implementation of the ARMv5TEJ architecture
3001da177e4SLinus Torvalds	  based upon the ARM10 integer core.
3011da177e4SLinus Torvalds
3021da177e4SLinus Torvalds	  Say Y if you want support for the ARM1026EJ-S processor.
3031da177e4SLinus Torvalds	  Otherwise, say N.
3041da177e4SLinus Torvalds
3051da177e4SLinus Torvalds# SA110
3061da177e4SLinus Torvaldsconfig CPU_SA110
307c750815eSRussell King	bool "Support StrongARM(R) SA-110 processor" if ARCH_RPC
3081da177e4SLinus Torvalds	select CPU_32v3 if ARCH_RPC
3091da177e4SLinus Torvalds	select CPU_32v4 if !ARCH_RPC
3101da177e4SLinus Torvalds	select CPU_ABRT_EV4
3114fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
3121da177e4SLinus Torvalds	select CPU_CACHE_V4WB
3131da177e4SLinus Torvalds	select CPU_CACHE_VIVT
314fefdaa06SHyok S. Choi	select CPU_CP15_MMU
315f9c21a6eSHyok S. Choi	select CPU_COPY_V4WB if MMU
316f9c21a6eSHyok S. Choi	select CPU_TLB_V4WB if MMU
3171da177e4SLinus Torvalds	help
3181da177e4SLinus Torvalds	  The Intel StrongARM(R) SA-110 is a 32-bit microprocessor and
3191da177e4SLinus Torvalds	  is available at five speeds ranging from 100 MHz to 233 MHz.
3201da177e4SLinus Torvalds	  More information is available at
3211da177e4SLinus Torvalds	  <http://developer.intel.com/design/strong/sa110.htm>.
3221da177e4SLinus Torvalds
3231da177e4SLinus Torvalds	  Say Y if you want support for the SA-110 processor.
3241da177e4SLinus Torvalds	  Otherwise, say N.
3251da177e4SLinus Torvalds
3261da177e4SLinus Torvalds# SA1100
3271da177e4SLinus Torvaldsconfig CPU_SA1100
3281da177e4SLinus Torvalds	bool
3291da177e4SLinus Torvalds	select CPU_32v4
3301da177e4SLinus Torvalds	select CPU_ABRT_EV4
3314fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
3321da177e4SLinus Torvalds	select CPU_CACHE_V4WB
3331da177e4SLinus Torvalds	select CPU_CACHE_VIVT
334fefdaa06SHyok S. Choi	select CPU_CP15_MMU
335f9c21a6eSHyok S. Choi	select CPU_TLB_V4WB if MMU
3361da177e4SLinus Torvalds
3371da177e4SLinus Torvalds# XScale
3381da177e4SLinus Torvaldsconfig CPU_XSCALE
3391da177e4SLinus Torvalds	bool
3401da177e4SLinus Torvalds	select CPU_32v5
3411da177e4SLinus Torvalds	select CPU_ABRT_EV5T
3424fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
3431da177e4SLinus Torvalds	select CPU_CACHE_VIVT
344fefdaa06SHyok S. Choi	select CPU_CP15_MMU
345f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
3461da177e4SLinus Torvalds
34723bdf86aSLennert Buytenhek# XScale Core Version 3
34823bdf86aSLennert Buytenhekconfig CPU_XSC3
34923bdf86aSLennert Buytenhek	bool
35023bdf86aSLennert Buytenhek	select CPU_32v5
35123bdf86aSLennert Buytenhek	select CPU_ABRT_EV5T
3524fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
35323bdf86aSLennert Buytenhek	select CPU_CACHE_VIVT
354fefdaa06SHyok S. Choi	select CPU_CP15_MMU
355f9c21a6eSHyok S. Choi	select CPU_TLB_V4WBI if MMU
35623bdf86aSLennert Buytenhek	select IO_36
35723bdf86aSLennert Buytenhek
35849cbe786SEric Miao# Marvell PJ1 (Mohawk)
35949cbe786SEric Miaoconfig CPU_MOHAWK
36049cbe786SEric Miao	bool
36149cbe786SEric Miao	select CPU_32v5
36249cbe786SEric Miao	select CPU_ABRT_EV5T
3634fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
36449cbe786SEric Miao	select CPU_CACHE_VIVT
36549cbe786SEric Miao	select CPU_CP15_MMU
36649cbe786SEric Miao	select CPU_TLB_V4WBI if MMU
36749cbe786SEric Miao	select CPU_COPY_V4WB if MMU
36849cbe786SEric Miao
369e50d6409SAssaf Hoffman# Feroceon
370e50d6409SAssaf Hoffmanconfig CPU_FEROCEON
371e50d6409SAssaf Hoffman	bool
372e50d6409SAssaf Hoffman	select CPU_32v5
373e50d6409SAssaf Hoffman	select CPU_ABRT_EV5T
3744fb28474SKirill A. Shutemov	select CPU_PABRT_LEGACY
375e50d6409SAssaf Hoffman	select CPU_CACHE_VIVT
376e50d6409SAssaf Hoffman	select CPU_CP15_MMU
3770ed15071SLennert Buytenhek	select CPU_COPY_FEROCEON if MMU
37899c6dc11SLennert Buytenhek	select CPU_TLB_FEROCEON if MMU
379e50d6409SAssaf Hoffman
380d910a0aaSTzachi Perelsteinconfig CPU_FEROCEON_OLD_ID
381d910a0aaSTzachi Perelstein	bool "Accept early Feroceon cores with an ARM926 ID"
382d910a0aaSTzachi Perelstein	depends on CPU_FEROCEON && !CPU_ARM926T
383d910a0aaSTzachi Perelstein	default y
384d910a0aaSTzachi Perelstein	help
385d910a0aaSTzachi Perelstein	  This enables the usage of some old Feroceon cores
386d910a0aaSTzachi Perelstein	  for which the CPU ID is equal to the ARM926 ID.
387d910a0aaSTzachi Perelstein	  Relevant for Feroceon-1850 and early Feroceon-2850.
388d910a0aaSTzachi Perelstein
3891da177e4SLinus Torvalds# ARMv6
3901da177e4SLinus Torvaldsconfig CPU_V6
391*edabd38eSSaeed Bishara	bool "Support ARM V6 processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB || MACH_REALVIEW_PBX || ARCH_DOVE
3921da177e4SLinus Torvalds	select CPU_32v6
3931da177e4SLinus Torvalds	select CPU_ABRT_EV6
3944fb28474SKirill A. Shutemov	select CPU_PABRT_V6
3951da177e4SLinus Torvalds	select CPU_CACHE_V6
3961da177e4SLinus Torvalds	select CPU_CACHE_VIPT
397fefdaa06SHyok S. Choi	select CPU_CP15_MMU
3987b4c965aSCatalin Marinas	select CPU_HAS_ASID if MMU
399f9c21a6eSHyok S. Choi	select CPU_COPY_V6 if MMU
400f9c21a6eSHyok S. Choi	select CPU_TLB_V6 if MMU
4011da177e4SLinus Torvalds
4024a5f79e7SRussell King# ARMv6k
4034a5f79e7SRussell Kingconfig CPU_32v6K
4044a5f79e7SRussell King	bool "Support ARM V6K processor extensions" if !SMP
4054a5f79e7SRussell King	depends on CPU_V6
40652c543f9SQuinn Jensen	default y if SMP && !ARCH_MX3
4074a5f79e7SRussell King	help
4084a5f79e7SRussell King	  Say Y here if your ARMv6 processor supports the 'K' extension.
4094a5f79e7SRussell King	  This enables the kernel to use some instructions not present
4104a5f79e7SRussell King	  on previous processors, and as such a kernel build with this
4114a5f79e7SRussell King	  enabled will not boot on processors with do not support these
4124a5f79e7SRussell King	  instructions.
4134a5f79e7SRussell King
41423688e99SCatalin Marinas# ARMv7
41523688e99SCatalin Marinasconfig CPU_V7
4161b504bbeSColin Tuckley	bool "Support ARM V7 processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB || MACH_REALVIEW_PBX
41723688e99SCatalin Marinas	select CPU_32v6K
41823688e99SCatalin Marinas	select CPU_32v7
41923688e99SCatalin Marinas	select CPU_ABRT_EV7
4204fb28474SKirill A. Shutemov	select CPU_PABRT_V7
42123688e99SCatalin Marinas	select CPU_CACHE_V7
42223688e99SCatalin Marinas	select CPU_CACHE_VIPT
42323688e99SCatalin Marinas	select CPU_CP15_MMU
4242eb8c82bSCatalin Marinas	select CPU_HAS_ASID if MMU
42523688e99SCatalin Marinas	select CPU_COPY_V6 if MMU
4262ccdd1e7SCatalin Marinas	select CPU_TLB_V7 if MMU
42723688e99SCatalin Marinas
4281da177e4SLinus Torvalds# Figure out what processor architecture version we should be using.
4291da177e4SLinus Torvalds# This defines the compiler instruction set which depends on the machine type.
4301da177e4SLinus Torvaldsconfig CPU_32v3
4311da177e4SLinus Torvalds	bool
43260b6cf68SRussell King	select TLS_REG_EMUL if SMP || !MMU
43348fa14f7SRussell King	select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
4341da177e4SLinus Torvalds
4351da177e4SLinus Torvaldsconfig CPU_32v4
4361da177e4SLinus Torvalds	bool
43760b6cf68SRussell King	select TLS_REG_EMUL if SMP || !MMU
43848fa14f7SRussell King	select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
4391da177e4SLinus Torvalds
440260e98edSLennert Buytenhekconfig CPU_32v4T
441260e98edSLennert Buytenhek	bool
442260e98edSLennert Buytenhek	select TLS_REG_EMUL if SMP || !MMU
443260e98edSLennert Buytenhek	select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
444260e98edSLennert Buytenhek
4451da177e4SLinus Torvaldsconfig CPU_32v5
4461da177e4SLinus Torvalds	bool
44760b6cf68SRussell King	select TLS_REG_EMUL if SMP || !MMU
44848fa14f7SRussell King	select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
4491da177e4SLinus Torvalds
4501da177e4SLinus Torvaldsconfig CPU_32v6
4511da177e4SLinus Torvalds	bool
452367afaf8SCatalin Marinas	select TLS_REG_EMUL if !CPU_32v6K && !MMU
4531da177e4SLinus Torvalds
45423688e99SCatalin Marinasconfig CPU_32v7
45523688e99SCatalin Marinas	bool
45623688e99SCatalin Marinas
4571da177e4SLinus Torvalds# The abort model
4580f45d7f3SHyok S. Choiconfig CPU_ABRT_NOMMU
4590f45d7f3SHyok S. Choi	bool
4600f45d7f3SHyok S. Choi
4611da177e4SLinus Torvaldsconfig CPU_ABRT_EV4
4621da177e4SLinus Torvalds	bool
4631da177e4SLinus Torvalds
4641da177e4SLinus Torvaldsconfig CPU_ABRT_EV4T
4651da177e4SLinus Torvalds	bool
4661da177e4SLinus Torvalds
4671da177e4SLinus Torvaldsconfig CPU_ABRT_LV4T
4681da177e4SLinus Torvalds	bool
4691da177e4SLinus Torvalds
4701da177e4SLinus Torvaldsconfig CPU_ABRT_EV5T
4711da177e4SLinus Torvalds	bool
4721da177e4SLinus Torvalds
4731da177e4SLinus Torvaldsconfig CPU_ABRT_EV5TJ
4741da177e4SLinus Torvalds	bool
4751da177e4SLinus Torvalds
4761da177e4SLinus Torvaldsconfig CPU_ABRT_EV6
4771da177e4SLinus Torvalds	bool
4781da177e4SLinus Torvalds
47923688e99SCatalin Marinasconfig CPU_ABRT_EV7
48023688e99SCatalin Marinas	bool
48123688e99SCatalin Marinas
4824fb28474SKirill A. Shutemovconfig CPU_PABRT_LEGACY
48348d7927bSPaul Brook	bool
48448d7927bSPaul Brook
4854fb28474SKirill A. Shutemovconfig CPU_PABRT_V6
4864fb28474SKirill A. Shutemov	bool
4874fb28474SKirill A. Shutemov
4884fb28474SKirill A. Shutemovconfig CPU_PABRT_V7
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
64226584853SCatalin Marinasconfig CPU_ENDIAN_BE8
64326584853SCatalin Marinas	bool
64426584853SCatalin Marinas	depends on CPU_BIG_ENDIAN
64526584853SCatalin Marinas	default CPU_V6 || CPU_V7
64626584853SCatalin Marinas	help
64726584853SCatalin Marinas	  Support for the BE-8 (big-endian) mode on ARMv6 and ARMv7 processors.
64826584853SCatalin Marinas
64926584853SCatalin Marinasconfig CPU_ENDIAN_BE32
65026584853SCatalin Marinas	bool
65126584853SCatalin Marinas	depends on CPU_BIG_ENDIAN
65226584853SCatalin Marinas	default !CPU_ENDIAN_BE8
65326584853SCatalin Marinas	help
65426584853SCatalin Marinas	  Support for the BE-32 (big-endian) mode on pre-ARMv6 processors.
65526584853SCatalin Marinas
6566afd6faeSHyok S. Choiconfig CPU_HIGH_VECTOR
6576340aa61SRobert P. J. Day	depends on !MMU && CPU_CP15 && !CPU_ARM740T
6586afd6faeSHyok S. Choi	bool "Select the High exception vector"
6596afd6faeSHyok S. Choi	help
6606afd6faeSHyok S. Choi	  Say Y here to select high exception vector(0xFFFF0000~).
6616afd6faeSHyok S. Choi	  The exception vector can be vary depending on the platform
6626afd6faeSHyok S. Choi	  design in nommu mode. If your platform needs to select
6636afd6faeSHyok S. Choi	  high exception vector, say Y.
6646afd6faeSHyok S. Choi	  Otherwise or if you are unsure, say N, and the low exception
6656afd6faeSHyok S. Choi	  vector (0x00000000~) will be used.
6666afd6faeSHyok S. Choi
6671da177e4SLinus Torvaldsconfig CPU_ICACHE_DISABLE
668f12d0d7cSHyok S. Choi	bool "Disable I-Cache (I-bit)"
669f12d0d7cSHyok S. Choi	depends on CPU_CP15 && !(CPU_ARM610 || CPU_ARM710 || CPU_ARM720T || CPU_ARM740T || CPU_XSCALE || CPU_XSC3)
6701da177e4SLinus Torvalds	help
6711da177e4SLinus Torvalds	  Say Y here to disable the processor instruction cache. Unless
6721da177e4SLinus Torvalds	  you have a reason not to or are unsure, say N.
6731da177e4SLinus Torvalds
6741da177e4SLinus Torvaldsconfig CPU_DCACHE_DISABLE
675f12d0d7cSHyok S. Choi	bool "Disable D-Cache (C-bit)"
676f12d0d7cSHyok S. Choi	depends on CPU_CP15
6771da177e4SLinus Torvalds	help
6781da177e4SLinus Torvalds	  Say Y here to disable the processor data cache. Unless
6791da177e4SLinus Torvalds	  you have a reason not to or are unsure, say N.
6801da177e4SLinus Torvalds
681f37f46ebSHyok S. Choiconfig CPU_DCACHE_SIZE
682f37f46ebSHyok S. Choi	hex
683f37f46ebSHyok S. Choi	depends on CPU_ARM740T || CPU_ARM946E
684f37f46ebSHyok S. Choi	default 0x00001000 if CPU_ARM740T
685f37f46ebSHyok S. Choi	default 0x00002000 # default size for ARM946E-S
686f37f46ebSHyok S. Choi	help
687f37f46ebSHyok S. Choi	  Some cores are synthesizable to have various sized cache. For
688f37f46ebSHyok S. Choi	  ARM946E-S case, it can vary from 0KB to 1MB.
689f37f46ebSHyok S. Choi	  To support such cache operations, it is efficient to know the size
690f37f46ebSHyok S. Choi	  before compile time.
691f37f46ebSHyok S. Choi	  If your SoC is configured to have a different size, define the value
692f37f46ebSHyok S. Choi	  here with proper conditions.
693f37f46ebSHyok S. Choi
6941da177e4SLinus Torvaldsconfig CPU_DCACHE_WRITETHROUGH
6951da177e4SLinus Torvalds	bool "Force write through D-cache"
69628853ac8SPaulius Zaleckas	depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_FA526) && !CPU_DCACHE_DISABLE
6971da177e4SLinus Torvalds	default y if CPU_ARM925T
6981da177e4SLinus Torvalds	help
6991da177e4SLinus Torvalds	  Say Y here to use the data cache in writethrough mode. Unless you
7001da177e4SLinus Torvalds	  specifically require this or are unsure, say N.
7011da177e4SLinus Torvalds
7021da177e4SLinus Torvaldsconfig CPU_CACHE_ROUND_ROBIN
7031da177e4SLinus Torvalds	bool "Round robin I and D cache replacement algorithm"
704f37f46ebSHyok S. Choi	depends on (CPU_ARM926T || CPU_ARM946E || CPU_ARM1020) && (!CPU_ICACHE_DISABLE || !CPU_DCACHE_DISABLE)
7051da177e4SLinus Torvalds	help
7061da177e4SLinus Torvalds	  Say Y here to use the predictable round-robin cache replacement
7071da177e4SLinus Torvalds	  policy.  Unless you specifically require this or are unsure, say N.
7081da177e4SLinus Torvalds
7091da177e4SLinus Torvaldsconfig CPU_BPREDICT_DISABLE
7101da177e4SLinus Torvalds	bool "Disable branch prediction"
711542f869fSRussell King	depends on CPU_ARM1020 || CPU_V6 || CPU_MOHAWK || CPU_XSC3 || CPU_V7 || CPU_FA526
7121da177e4SLinus Torvalds	help
7131da177e4SLinus Torvalds	  Say Y here to disable branch prediction.  If unsure, say N.
7142d2669b6SNicolas Pitre
7154b0e07a5SNicolas Pitreconfig TLS_REG_EMUL
7164b0e07a5SNicolas Pitre	bool
7174b0e07a5SNicolas Pitre	help
71870489c88SNicolas Pitre	  An SMP system using a pre-ARMv6 processor (there are apparently
71970489c88SNicolas Pitre	  a few prototypes like that in existence) and therefore access to
72070489c88SNicolas Pitre	  that required register must be emulated.
7214b0e07a5SNicolas Pitre
7222d2669b6SNicolas Pitreconfig HAS_TLS_REG
7232d2669b6SNicolas Pitre	bool
72470489c88SNicolas Pitre	depends on !TLS_REG_EMUL
72570489c88SNicolas Pitre	default y if SMP || CPU_32v7
7262d2669b6SNicolas Pitre	help
7272d2669b6SNicolas Pitre	  This selects support for the CP15 thread register.
72870489c88SNicolas Pitre	  It is defined to be available on some ARMv6 processors (including
72970489c88SNicolas Pitre	  all SMP capable ARMv6's) or later processors.  User space may
73070489c88SNicolas Pitre	  assume directly accessing that register and always obtain the
73170489c88SNicolas Pitre	  expected value only on ARMv7 and above.
7322d2669b6SNicolas Pitre
733dcef1f63SNicolas Pitreconfig NEEDS_SYSCALL_FOR_CMPXCHG
734dcef1f63SNicolas Pitre	bool
735dcef1f63SNicolas Pitre	help
736dcef1f63SNicolas Pitre	  SMP on a pre-ARMv6 processor?  Well OK then.
737dcef1f63SNicolas Pitre	  Forget about fast user space cmpxchg support.
738dcef1f63SNicolas Pitre	  It is just not possible.
739dcef1f63SNicolas Pitre
740953233dcSCatalin Marinasconfig OUTER_CACHE
741953233dcSCatalin Marinas	bool
742382266adSCatalin Marinas
74399c6dc11SLennert Buytenhekconfig CACHE_FEROCEON_L2
74499c6dc11SLennert Buytenhek	bool "Enable the Feroceon L2 cache controller"
745794d15b2SStanislav Samsonov	depends on ARCH_KIRKWOOD || ARCH_MV78XX0
74699c6dc11SLennert Buytenhek	default y
747382266adSCatalin Marinas	select OUTER_CACHE
74899c6dc11SLennert Buytenhek	help
74999c6dc11SLennert Buytenhek	  This option enables the Feroceon L2 cache controller.
75099c6dc11SLennert Buytenhek
7514360bb41SRonen Shitritconfig CACHE_FEROCEON_L2_WRITETHROUGH
7524360bb41SRonen Shitrit	bool "Force Feroceon L2 cache write through"
7534360bb41SRonen Shitrit	depends on CACHE_FEROCEON_L2
7544360bb41SRonen Shitrit	help
7554360bb41SRonen Shitrit	  Say Y here to use the Feroceon L2 cache in writethrough mode.
7564360bb41SRonen Shitrit	  Unless you specifically require this, say N for writeback mode.
7574360bb41SRonen Shitrit
7581da177e4SLinus Torvaldsconfig CACHE_L2X0
759ba927951SCatalin Marinas	bool "Enable the L2x0 outer cache controller"
760cb88214dSSascha Hauer	depends on REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || MACH_REALVIEW_PB1176 || \
7610b260fd4SAlessandro Rubini		   REALVIEW_EB_A9MP || ARCH_MX35 || ARCH_MX31 || MACH_REALVIEW_PBX || ARCH_NOMADIK
762ba927951SCatalin Marinas	default y
7631da177e4SLinus Torvalds	select OUTER_CACHE
764ba927951SCatalin Marinas	help
765ba927951SCatalin Marinas	  This option enables the L2x0 PrimeCell.
766905a09d5SEric Miao
767905a09d5SEric Miaoconfig CACHE_XSC3L2
768905a09d5SEric Miao	bool "Enable the L2 cache on XScale3"
769905a09d5SEric Miao	depends on CPU_XSC3
770905a09d5SEric Miao	default y
771905a09d5SEric Miao	select OUTER_CACHE
772905a09d5SEric Miao	help
773905a09d5SEric Miao	  This option enables the L2 cache on XScale3.
774910a17e5SKirill A. Shutemov
775910a17e5SKirill A. Shutemovconfig ARM_L1_CACHE_SHIFT
776910a17e5SKirill A. Shutemov	int
777910a17e5SKirill A. Shutemov	default 6 if ARCH_OMAP3
778910a17e5SKirill A. Shutemov	default 5
779