1 comment "Processor Type"
7 # Select CPU types depending on the architecture selected. This selects
8 # which CPUs we support in the kernel image, and the compiler instruction
13 bool "Support ARM610 processor"
19 select CPU_COPY_V3 if MMU
20 select CPU_TLB_V3 if MMU
22 The ARM610 is the successor to the ARM3 processor
23 and was produced by VLSI Technology Inc.
25 Say Y if you want support for the ARM610 processor.
30 bool "Support ARM710 processor" if !ARCH_CLPS7500 && ARCH_RPC
31 default y if ARCH_CLPS7500
36 select CPU_COPY_V3 if MMU
37 select CPU_TLB_V3 if MMU
39 A 32-bit RISC microprocessor based on the ARM7 processor core
40 designed by Advanced RISC Machines Ltd. The ARM710 is the
41 successor to the ARM610 processor. It was released in
42 July 1994 by VLSI Technology Inc.
44 Say Y if you want support for the ARM710 processor.
49 bool "Support ARM720T processor" if !ARCH_CLPS711X && !ARCH_L7200 && !ARCH_CDB89712 && ARCH_INTEGRATOR
50 default y if ARCH_CLPS711X || ARCH_L7200 || ARCH_CDB89712 || ARCH_H720X
56 select CPU_COPY_V4WT if MMU
57 select CPU_TLB_V4WT if MMU
59 A 32-bit RISC processor with 8kByte Cache, Write Buffer and
60 MMU built around an ARM7TDMI core.
62 Say Y if you want support for the ARM720T processor.
67 bool "Support ARM920T processor"
68 depends on ARCH_EP93XX || ARCH_INTEGRATOR || CPU_S3C2410 || CPU_S3C2440 || CPU_S3C2442 || ARCH_IMX || ARCH_AAEC2000 || ARCH_AT91RM9200
69 default y if CPU_S3C2410 || CPU_S3C2440 || CPU_S3C2442 || ARCH_AT91RM9200
75 select CPU_COPY_V4WB if MMU
76 select CPU_TLB_V4WBI if MMU
78 The ARM920T is licensed to be produced by numerous vendors,
79 and is used in the Maverick EP9312 and the Samsung S3C2410.
81 More information on the Maverick EP9312 at
82 <http://linuxdevices.com/products/PD2382866068.html>.
84 Say Y if you want support for the ARM920T processor.
89 bool "Support ARM922T processor" if ARCH_INTEGRATOR
90 depends on ARCH_LH7A40X || ARCH_INTEGRATOR
91 default y if ARCH_LH7A40X
97 select CPU_COPY_V4WB if MMU
98 select CPU_TLB_V4WBI if MMU
100 The ARM922T is a version of the ARM920T, but with smaller
101 instruction and data caches. It is used in Altera's
102 Excalibur XA device family.
104 Say Y if you want support for the ARM922T processor.
109 bool "Support ARM925T processor" if ARCH_OMAP1
110 depends on ARCH_OMAP15XX
111 default y if ARCH_OMAP15XX
114 select CPU_CACHE_V4WT
115 select CPU_CACHE_VIVT
117 select CPU_COPY_V4WB if MMU
118 select CPU_TLB_V4WBI if MMU
120 The ARM925T is a mix between the ARM920T and ARM926T, but with
121 different instruction and data caches. It is used in TI's OMAP
124 Say Y if you want support for the ARM925T processor.
129 bool "Support ARM926T processor"
130 depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || MACH_REALVIEW_EB || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261
131 default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261
133 select CPU_ABRT_EV5TJ
134 select CPU_CACHE_VIVT
136 select CPU_COPY_V4WB if MMU
137 select CPU_TLB_V4WBI if MMU
139 This is a variant of the ARM920. It has slightly different
140 instruction sequences for cache and TLB operations. Curiously,
141 there is no documentation on it at the ARM corporate website.
143 Say Y if you want support for the ARM926T processor.
146 # ARM1020 - needs validating
148 bool "Support ARM1020T (rev 0) processor"
149 depends on ARCH_INTEGRATOR
152 select CPU_CACHE_V4WT
153 select CPU_CACHE_VIVT
155 select CPU_COPY_V4WB if MMU
156 select CPU_TLB_V4WBI if MMU
158 The ARM1020 is the 32K cached version of the ARM10 processor,
159 with an addition of a floating-point unit.
161 Say Y if you want support for the ARM1020 processor.
164 # ARM1020E - needs validating
166 bool "Support ARM1020E processor"
167 depends on ARCH_INTEGRATOR
170 select CPU_CACHE_V4WT
171 select CPU_CACHE_VIVT
173 select CPU_COPY_V4WB if MMU
174 select CPU_TLB_V4WBI if MMU
179 bool "Support ARM1022E processor"
180 depends on ARCH_INTEGRATOR
183 select CPU_CACHE_VIVT
185 select CPU_COPY_V4WB if MMU # can probably do better
186 select CPU_TLB_V4WBI if MMU
188 The ARM1022E is an implementation of the ARMv5TE architecture
189 based upon the ARM10 integer core with a 16KiB L1 Harvard cache,
190 embedded trace macrocell, and a floating-point unit.
192 Say Y if you want support for the ARM1022E processor.
197 bool "Support ARM1026EJ-S processor"
198 depends on ARCH_INTEGRATOR
200 select CPU_ABRT_EV5T # But need Jazelle, but EV5TJ ignores bit 10
201 select CPU_CACHE_VIVT
203 select CPU_COPY_V4WB if MMU # can probably do better
204 select CPU_TLB_V4WBI if MMU
206 The ARM1026EJ-S is an implementation of the ARMv5TEJ architecture
207 based upon the ARM10 integer core.
209 Say Y if you want support for the ARM1026EJ-S processor.
214 bool "Support StrongARM(R) SA-110 processor" if !ARCH_EBSA110 && !FOOTBRIDGE && !ARCH_TBOX && !ARCH_SHARK && !ARCH_NEXUSPCI && ARCH_RPC
215 default y if ARCH_EBSA110 || FOOTBRIDGE || ARCH_TBOX || ARCH_SHARK || ARCH_NEXUSPCI
216 select CPU_32v3 if ARCH_RPC
217 select CPU_32v4 if !ARCH_RPC
219 select CPU_CACHE_V4WB
220 select CPU_CACHE_VIVT
222 select CPU_COPY_V4WB if MMU
223 select CPU_TLB_V4WB if MMU
225 The Intel StrongARM(R) SA-110 is a 32-bit microprocessor and
226 is available at five speeds ranging from 100 MHz to 233 MHz.
227 More information is available at
228 <http://developer.intel.com/design/strong/sa110.htm>.
230 Say Y if you want support for the SA-110 processor.
236 depends on ARCH_SA1100
240 select CPU_CACHE_V4WB
241 select CPU_CACHE_VIVT
243 select CPU_TLB_V4WB if MMU
248 depends on ARCH_IOP32X || ARCH_IOP33X || ARCH_PXA || ARCH_IXP4XX || ARCH_IXP2000
252 select CPU_CACHE_VIVT
254 select CPU_TLB_V4WBI if MMU
256 # XScale Core Version 3
259 depends on ARCH_IXP23XX
263 select CPU_CACHE_VIVT
265 select CPU_TLB_V4WBI if MMU
270 bool "Support ARM V6 processor"
271 depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2
275 select CPU_CACHE_VIPT
277 select CPU_COPY_V6 if MMU
278 select CPU_TLB_V6 if MMU
282 bool "Support ARM V6K processor extensions" if !SMP
286 Say Y here if your ARMv6 processor supports the 'K' extension.
287 This enables the kernel to use some instructions not present
288 on previous processors, and as such a kernel build with this
289 enabled will not boot on processors with do not support these
292 # Figure out what processor architecture version we should be using.
293 # This defines the compiler instruction set which depends on the machine type.
296 select TLS_REG_EMUL if SMP || !MMU
297 select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
301 select TLS_REG_EMUL if SMP || !MMU
302 select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
306 select TLS_REG_EMUL if SMP || !MMU
307 select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
311 select TLS_REG_EMUL if SMP || !MMU
312 select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
330 config CPU_ABRT_EV5TJ
343 config CPU_CACHE_V4WT
346 config CPU_CACHE_V4WB
352 config CPU_CACHE_VIVT
355 config CPU_CACHE_VIPT
359 # The copy-page model
372 # This selects the TLB model
376 ARM Architecture Version 3 TLB.
381 ARM Architecture Version 4 TLB with writethrough cache.
386 ARM Architecture Version 4 TLB with writeback cache.
391 ARM Architecture Version 4 TLB with writeback cache and invalidate
392 instruction cache entry.
402 Processor has the CP15 register.
408 Processor has the CP15 register, which has MMU related registers.
414 Processor has the CP15 register, which has MPU related registers.
417 # CPU supports 36-bit I/O
422 comment "Processor Features"
425 bool "Support Thumb user binaries"
426 depends on CPU_ARM720T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || CPU_XSCALE || CPU_XSC3 || CPU_V6
429 Say Y if you want to include kernel support for running user space
432 The Thumb instruction set is a compressed form of the standard ARM
433 instruction set resulting in smaller binaries at the expense of
434 slightly less efficient code.
436 If you don't know what this all is, saying Y is a safe choice.
438 config CPU_BIG_ENDIAN
439 bool "Build big-endian kernel"
440 depends on ARCH_SUPPORTS_BIG_ENDIAN
442 Say Y if you plan on running a kernel in big-endian mode.
443 Note that your board must be properly built and your board
444 port must properly enable any big-endian related features
445 of your chipset/board/processor.
447 config CPU_ICACHE_DISABLE
448 bool "Disable I-Cache"
449 depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6
451 Say Y here to disable the processor instruction cache. Unless
452 you have a reason not to or are unsure, say N.
454 config CPU_DCACHE_DISABLE
455 bool "Disable D-Cache"
456 depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6
458 Say Y here to disable the processor data cache. Unless
459 you have a reason not to or are unsure, say N.
461 config CPU_DCACHE_WRITETHROUGH
462 bool "Force write through D-cache"
463 depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE
464 default y if CPU_ARM925T
466 Say Y here to use the data cache in writethrough mode. Unless you
467 specifically require this or are unsure, say N.
469 config CPU_CACHE_ROUND_ROBIN
470 bool "Round robin I and D cache replacement algorithm"
471 depends on (CPU_ARM926T || CPU_ARM1020) && (!CPU_ICACHE_DISABLE || !CPU_DCACHE_DISABLE)
473 Say Y here to use the predictable round-robin cache replacement
474 policy. Unless you specifically require this or are unsure, say N.
476 config CPU_BPREDICT_DISABLE
477 bool "Disable branch prediction"
478 depends on CPU_ARM1020 || CPU_V6
480 Say Y here to disable branch prediction. If unsure, say N.
485 An SMP system using a pre-ARMv6 processor (there are apparently
486 a few prototypes like that in existence) and therefore access to
487 that required register must be emulated.
491 depends on !TLS_REG_EMUL
492 default y if SMP || CPU_32v7
494 This selects support for the CP15 thread register.
495 It is defined to be available on some ARMv6 processors (including
496 all SMP capable ARMv6's) or later processors. User space may
497 assume directly accessing that register and always obtain the
498 expected value only on ARMv7 and above.
500 config NEEDS_SYSCALL_FOR_CMPXCHG
503 SMP on a pre-ARMv6 processor? Well OK then.
504 Forget about fast user space cmpxchg support.
505 It is just not possible.