blob: 34d00738293f84bfe8d509bb06efbcce44c44e1f [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001comment "Processor Type"
2
3config CPU_32
4 bool
5 default y
6
7# Select CPU types depending on the architecture selected. This selects
8# which CPUs we support in the kernel image, and the compiler instruction
9# optimiser behaviour.
10
11# ARM610
12config CPU_ARM610
13 bool "Support ARM610 processor"
14 depends on ARCH_RPC
15 select CPU_32v3
16 select CPU_CACHE_V3
17 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +090018 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +010019 select CPU_COPY_V3 if MMU
20 select CPU_TLB_V3 if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -070021 help
22 The ARM610 is the successor to the ARM3 processor
23 and was produced by VLSI Technology Inc.
24
25 Say Y if you want support for the ARM610 processor.
26 Otherwise, say N.
27
Hyok S. Choi07e0da72006-09-26 17:37:36 +090028# ARM7TDMI
29config CPU_ARM7TDMI
30 bool "Support ARM7TDMI processor"
31 select CPU_32v4T
32 select CPU_ABRT_LV4T
33 select CPU_CACHE_V4
34 help
35 A 32-bit RISC microprocessor based on the ARM7 processor core
36 which has no memory control unit and cache.
37
38 Say Y if you want support for the ARM7TDMI processor.
39 Otherwise, say N.
40
Linus Torvalds1da177e2005-04-16 15:20:36 -070041# ARM710
42config CPU_ARM710
43 bool "Support ARM710 processor" if !ARCH_CLPS7500 && ARCH_RPC
44 default y if ARCH_CLPS7500
45 select CPU_32v3
46 select CPU_CACHE_V3
47 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +090048 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +010049 select CPU_COPY_V3 if MMU
50 select CPU_TLB_V3 if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -070051 help
52 A 32-bit RISC microprocessor based on the ARM7 processor core
53 designed by Advanced RISC Machines Ltd. The ARM710 is the
54 successor to the ARM610 processor. It was released in
55 July 1994 by VLSI Technology Inc.
56
57 Say Y if you want support for the ARM710 processor.
58 Otherwise, say N.
59
60# ARM720T
61config CPU_ARM720T
62 bool "Support ARM720T processor" if !ARCH_CLPS711X && !ARCH_L7200 && !ARCH_CDB89712 && ARCH_INTEGRATOR
63 default y if ARCH_CLPS711X || ARCH_L7200 || ARCH_CDB89712 || ARCH_H720X
Lennert Buytenhek260e98e2006-08-28 12:51:20 +010064 select CPU_32v4T
Linus Torvalds1da177e2005-04-16 15:20:36 -070065 select CPU_ABRT_LV4T
66 select CPU_CACHE_V4
67 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +090068 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +010069 select CPU_COPY_V4WT if MMU
70 select CPU_TLB_V4WT if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -070071 help
72 A 32-bit RISC processor with 8kByte Cache, Write Buffer and
73 MMU built around an ARM7TDMI core.
74
75 Say Y if you want support for the ARM720T processor.
76 Otherwise, say N.
77
Hyok S. Choib731c312006-09-26 17:37:50 +090078# ARM740T
79config CPU_ARM740T
80 bool "Support ARM740T processor" if ARCH_INTEGRATOR
81 select CPU_32v4T
82 select CPU_ABRT_LV4T
83 select CPU_CACHE_V3 # although the core is v4t
84 select CPU_CP15_MPU
85 help
86 A 32-bit RISC processor with 8KB cache or 4KB variants,
87 write buffer and MPU(Protection Unit) built around
88 an ARM7TDMI core.
89
90 Say Y if you want support for the ARM740T processor.
91 Otherwise, say N.
92
Hyok S. Choi43f5f012006-09-26 17:38:05 +090093# ARM9TDMI
94config CPU_ARM9TDMI
95 bool "Support ARM9TDMI processor"
96 select CPU_32v4T
97 select CPU_ABRT_EV4T
98 select CPU_CACHE_V4
99 help
100 A 32-bit RISC microprocessor based on the ARM9 processor core
101 which has no memory control unit and cache.
102
103 Say Y if you want support for the ARM9TDMI processor.
104 Otherwise, say N.
105
Linus Torvalds1da177e2005-04-16 15:20:36 -0700106# ARM920T
107config CPU_ARM920T
Ben Dooks3434d9d2006-06-24 21:21:28 +0100108 bool "Support ARM920T processor"
109 depends on ARCH_EP93XX || ARCH_INTEGRATOR || CPU_S3C2410 || CPU_S3C2440 || CPU_S3C2442 || ARCH_IMX || ARCH_AAEC2000 || ARCH_AT91RM9200
110 default y if CPU_S3C2410 || CPU_S3C2440 || CPU_S3C2442 || ARCH_AT91RM9200
Lennert Buytenhek260e98e2006-08-28 12:51:20 +0100111 select CPU_32v4T
Linus Torvalds1da177e2005-04-16 15:20:36 -0700112 select CPU_ABRT_EV4T
113 select CPU_CACHE_V4WT
114 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900115 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100116 select CPU_COPY_V4WB if MMU
117 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700118 help
119 The ARM920T is licensed to be produced by numerous vendors,
120 and is used in the Maverick EP9312 and the Samsung S3C2410.
121
122 More information on the Maverick EP9312 at
123 <http://linuxdevices.com/products/PD2382866068.html>.
124
125 Say Y if you want support for the ARM920T processor.
126 Otherwise, say N.
127
128# ARM922T
129config CPU_ARM922T
130 bool "Support ARM922T processor" if ARCH_INTEGRATOR
Russell King0fec53a2006-01-08 22:37:46 +0000131 depends on ARCH_LH7A40X || ARCH_INTEGRATOR
132 default y if ARCH_LH7A40X
Lennert Buytenhek260e98e2006-08-28 12:51:20 +0100133 select CPU_32v4T
Linus Torvalds1da177e2005-04-16 15:20:36 -0700134 select CPU_ABRT_EV4T
135 select CPU_CACHE_V4WT
136 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900137 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100138 select CPU_COPY_V4WB if MMU
139 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700140 help
141 The ARM922T is a version of the ARM920T, but with smaller
142 instruction and data caches. It is used in Altera's
143 Excalibur XA device family.
144
145 Say Y if you want support for the ARM922T processor.
146 Otherwise, say N.
147
148# ARM925T
149config CPU_ARM925T
Tony Lindgrenb288f752005-07-10 19:58:08 +0100150 bool "Support ARM925T processor" if ARCH_OMAP1
Tony Lindgren3179a012005-11-10 14:26:48 +0000151 depends on ARCH_OMAP15XX
152 default y if ARCH_OMAP15XX
Lennert Buytenhek260e98e2006-08-28 12:51:20 +0100153 select CPU_32v4T
Linus Torvalds1da177e2005-04-16 15:20:36 -0700154 select CPU_ABRT_EV4T
155 select CPU_CACHE_V4WT
156 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900157 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100158 select CPU_COPY_V4WB if MMU
159 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700160 help
161 The ARM925T is a mix between the ARM920T and ARM926T, but with
162 different instruction and data caches. It is used in TI's OMAP
163 device family.
164
165 Say Y if you want support for the ARM925T processor.
166 Otherwise, say N.
167
168# ARM926T
169config CPU_ARM926T
Catalin Marinas8ad68bb2005-10-31 14:25:02 +0000170 bool "Support ARM926T processor"
Andrew Victor8fc5ffa2006-06-29 16:06:33 +0100171 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
172 default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261
Linus Torvalds1da177e2005-04-16 15:20:36 -0700173 select CPU_32v5
174 select CPU_ABRT_EV5TJ
175 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900176 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100177 select CPU_COPY_V4WB if MMU
178 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700179 help
180 This is a variant of the ARM920. It has slightly different
181 instruction sequences for cache and TLB operations. Curiously,
182 there is no documentation on it at the ARM corporate website.
183
184 Say Y if you want support for the ARM926T processor.
185 Otherwise, say N.
186
Hyok S. Choid60674e2006-09-26 17:38:18 +0900187# ARM940T
188config CPU_ARM940T
189 bool "Support ARM940T processor" if ARCH_INTEGRATOR
190 select CPU_32v4T
191 select CPU_ABRT_EV4T
192 select CPU_CACHE_VIVT
193 select CPU_CP15_MPU
194 help
195 ARM940T is a member of the ARM9TDMI family of general-
196 purpose microprocessors with MPU and seperate 4KB
197 instruction and 4KB data cases, each with a 4-word line
198 length.
199
200 Say Y if you want support for the ARM940T processor.
201 Otherwise, say N.
202
Linus Torvalds1da177e2005-04-16 15:20:36 -0700203# ARM1020 - needs validating
204config CPU_ARM1020
205 bool "Support ARM1020T (rev 0) processor"
206 depends on ARCH_INTEGRATOR
207 select CPU_32v5
208 select CPU_ABRT_EV4T
209 select CPU_CACHE_V4WT
210 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900211 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100212 select CPU_COPY_V4WB if MMU
213 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700214 help
215 The ARM1020 is the 32K cached version of the ARM10 processor,
216 with an addition of a floating-point unit.
217
218 Say Y if you want support for the ARM1020 processor.
219 Otherwise, say N.
220
221# ARM1020E - needs validating
222config CPU_ARM1020E
223 bool "Support ARM1020E processor"
224 depends on ARCH_INTEGRATOR
225 select CPU_32v5
226 select CPU_ABRT_EV4T
227 select CPU_CACHE_V4WT
228 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900229 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100230 select CPU_COPY_V4WB if MMU
231 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700232 depends on n
233
234# ARM1022E
235config CPU_ARM1022
236 bool "Support ARM1022E processor"
237 depends on ARCH_INTEGRATOR
238 select CPU_32v5
239 select CPU_ABRT_EV4T
240 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900241 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100242 select CPU_COPY_V4WB if MMU # can probably do better
243 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700244 help
245 The ARM1022E is an implementation of the ARMv5TE architecture
246 based upon the ARM10 integer core with a 16KiB L1 Harvard cache,
247 embedded trace macrocell, and a floating-point unit.
248
249 Say Y if you want support for the ARM1022E processor.
250 Otherwise, say N.
251
252# ARM1026EJ-S
253config CPU_ARM1026
254 bool "Support ARM1026EJ-S processor"
255 depends on ARCH_INTEGRATOR
256 select CPU_32v5
257 select CPU_ABRT_EV5T # But need Jazelle, but EV5TJ ignores bit 10
258 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900259 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100260 select CPU_COPY_V4WB if MMU # can probably do better
261 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700262 help
263 The ARM1026EJ-S is an implementation of the ARMv5TEJ architecture
264 based upon the ARM10 integer core.
265
266 Say Y if you want support for the ARM1026EJ-S processor.
267 Otherwise, say N.
268
269# SA110
270config CPU_SA110
271 bool "Support StrongARM(R) SA-110 processor" if !ARCH_EBSA110 && !FOOTBRIDGE && !ARCH_TBOX && !ARCH_SHARK && !ARCH_NEXUSPCI && ARCH_RPC
272 default y if ARCH_EBSA110 || FOOTBRIDGE || ARCH_TBOX || ARCH_SHARK || ARCH_NEXUSPCI
273 select CPU_32v3 if ARCH_RPC
274 select CPU_32v4 if !ARCH_RPC
275 select CPU_ABRT_EV4
276 select CPU_CACHE_V4WB
277 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900278 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100279 select CPU_COPY_V4WB if MMU
280 select CPU_TLB_V4WB if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700281 help
282 The Intel StrongARM(R) SA-110 is a 32-bit microprocessor and
283 is available at five speeds ranging from 100 MHz to 233 MHz.
284 More information is available at
285 <http://developer.intel.com/design/strong/sa110.htm>.
286
287 Say Y if you want support for the SA-110 processor.
288 Otherwise, say N.
289
290# SA1100
291config CPU_SA1100
292 bool
293 depends on ARCH_SA1100
294 default y
295 select CPU_32v4
296 select CPU_ABRT_EV4
297 select CPU_CACHE_V4WB
298 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900299 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100300 select CPU_TLB_V4WB if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700301
302# XScale
303config CPU_XSCALE
304 bool
Lennert Buytenhek3f7e5812006-09-18 23:10:26 +0100305 depends on ARCH_IOP32X || ARCH_IOP33X || ARCH_PXA || ARCH_IXP4XX || ARCH_IXP2000
Linus Torvalds1da177e2005-04-16 15:20:36 -0700306 default y
307 select CPU_32v5
308 select CPU_ABRT_EV5T
309 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900310 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100311 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700312
Lennert Buytenhek23bdf862006-03-28 21:00:40 +0100313# XScale Core Version 3
314config CPU_XSC3
315 bool
316 depends on ARCH_IXP23XX
317 default y
318 select CPU_32v5
319 select CPU_ABRT_EV5T
320 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900321 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100322 select CPU_TLB_V4WBI if MMU
Lennert Buytenhek23bdf862006-03-28 21:00:40 +0100323 select IO_36
324
Linus Torvalds1da177e2005-04-16 15:20:36 -0700325# ARMv6
326config CPU_V6
327 bool "Support ARM V6 processor"
Tony Lindgren1dbae812005-11-10 14:26:51 +0000328 depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2
Linus Torvalds1da177e2005-04-16 15:20:36 -0700329 select CPU_32v6
330 select CPU_ABRT_EV6
331 select CPU_CACHE_V6
332 select CPU_CACHE_VIPT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900333 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100334 select CPU_COPY_V6 if MMU
335 select CPU_TLB_V6 if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700336
Russell King4a5f79e2005-11-03 15:48:21 +0000337# ARMv6k
338config CPU_32v6K
339 bool "Support ARM V6K processor extensions" if !SMP
340 depends on CPU_V6
341 default y if SMP
342 help
343 Say Y here if your ARMv6 processor supports the 'K' extension.
344 This enables the kernel to use some instructions not present
345 on previous processors, and as such a kernel build with this
346 enabled will not boot on processors with do not support these
347 instructions.
348
Linus Torvalds1da177e2005-04-16 15:20:36 -0700349# Figure out what processor architecture version we should be using.
350# This defines the compiler instruction set which depends on the machine type.
351config CPU_32v3
352 bool
Russell King60b6cf62006-06-19 17:36:43 +0100353 select TLS_REG_EMUL if SMP || !MMU
Russell King48fa14f2006-03-16 14:52:33 +0000354 select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700355
356config CPU_32v4
357 bool
Russell King60b6cf62006-06-19 17:36:43 +0100358 select TLS_REG_EMUL if SMP || !MMU
Russell King48fa14f2006-03-16 14:52:33 +0000359 select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700360
Lennert Buytenhek260e98e2006-08-28 12:51:20 +0100361config CPU_32v4T
362 bool
363 select TLS_REG_EMUL if SMP || !MMU
364 select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
365
Linus Torvalds1da177e2005-04-16 15:20:36 -0700366config CPU_32v5
367 bool
Russell King60b6cf62006-06-19 17:36:43 +0100368 select TLS_REG_EMUL if SMP || !MMU
Russell King48fa14f2006-03-16 14:52:33 +0000369 select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700370
371config CPU_32v6
372 bool
373
374# The abort model
375config CPU_ABRT_EV4
376 bool
377
378config CPU_ABRT_EV4T
379 bool
380
381config CPU_ABRT_LV4T
382 bool
383
384config CPU_ABRT_EV5T
385 bool
386
387config CPU_ABRT_EV5TJ
388 bool
389
390config CPU_ABRT_EV6
391 bool
392
393# The cache model
394config CPU_CACHE_V3
395 bool
396
397config CPU_CACHE_V4
398 bool
399
400config CPU_CACHE_V4WT
401 bool
402
403config CPU_CACHE_V4WB
404 bool
405
406config CPU_CACHE_V6
407 bool
408
409config CPU_CACHE_VIVT
410 bool
411
412config CPU_CACHE_VIPT
413 bool
414
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100415if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700416# The copy-page model
417config CPU_COPY_V3
418 bool
419
420config CPU_COPY_V4WT
421 bool
422
423config CPU_COPY_V4WB
424 bool
425
426config CPU_COPY_V6
427 bool
428
429# This selects the TLB model
430config CPU_TLB_V3
431 bool
432 help
433 ARM Architecture Version 3 TLB.
434
435config CPU_TLB_V4WT
436 bool
437 help
438 ARM Architecture Version 4 TLB with writethrough cache.
439
440config CPU_TLB_V4WB
441 bool
442 help
443 ARM Architecture Version 4 TLB with writeback cache.
444
445config CPU_TLB_V4WBI
446 bool
447 help
448 ARM Architecture Version 4 TLB with writeback cache and invalidate
449 instruction cache entry.
450
451config CPU_TLB_V6
452 bool
453
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100454endif
455
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900456config CPU_CP15
457 bool
458 help
459 Processor has the CP15 register.
460
461config CPU_CP15_MMU
462 bool
463 select CPU_CP15
464 help
465 Processor has the CP15 register, which has MMU related registers.
466
467config CPU_CP15_MPU
468 bool
469 select CPU_CP15
470 help
471 Processor has the CP15 register, which has MPU related registers.
472
Lennert Buytenhek23bdf862006-03-28 21:00:40 +0100473#
474# CPU supports 36-bit I/O
475#
476config IO_36
477 bool
478
Linus Torvalds1da177e2005-04-16 15:20:36 -0700479comment "Processor Features"
480
481config ARM_THUMB
482 bool "Support Thumb user binaries"
Hyok S. Choid60674e2006-09-26 17:38:18 +0900483 depends on CPU_ARM720T || CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || CPU_XSCALE || CPU_XSC3 || CPU_V6
Linus Torvalds1da177e2005-04-16 15:20:36 -0700484 default y
485 help
486 Say Y if you want to include kernel support for running user space
487 Thumb binaries.
488
489 The Thumb instruction set is a compressed form of the standard ARM
490 instruction set resulting in smaller binaries at the expense of
491 slightly less efficient code.
492
493 If you don't know what this all is, saying Y is a safe choice.
494
495config CPU_BIG_ENDIAN
496 bool "Build big-endian kernel"
497 depends on ARCH_SUPPORTS_BIG_ENDIAN
498 help
499 Say Y if you plan on running a kernel in big-endian mode.
500 Note that your board must be properly built and your board
501 port must properly enable any big-endian related features
502 of your chipset/board/processor.
503
504config CPU_ICACHE_DISABLE
Hyok S. Choif12d0d72006-09-26 17:36:37 +0900505 bool "Disable I-Cache (I-bit)"
506 depends on CPU_CP15 && !(CPU_ARM610 || CPU_ARM710 || CPU_ARM720T || CPU_ARM740T || CPU_XSCALE || CPU_XSC3)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700507 help
508 Say Y here to disable the processor instruction cache. Unless
509 you have a reason not to or are unsure, say N.
510
511config CPU_DCACHE_DISABLE
Hyok S. Choif12d0d72006-09-26 17:36:37 +0900512 bool "Disable D-Cache (C-bit)"
513 depends on CPU_CP15
Linus Torvalds1da177e2005-04-16 15:20:36 -0700514 help
515 Say Y here to disable the processor data cache. Unless
516 you have a reason not to or are unsure, say N.
517
518config CPU_DCACHE_WRITETHROUGH
519 bool "Force write through D-cache"
Hyok S. Choid60674e2006-09-26 17:38:18 +0900520 depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700521 default y if CPU_ARM925T
522 help
523 Say Y here to use the data cache in writethrough mode. Unless you
524 specifically require this or are unsure, say N.
525
526config CPU_CACHE_ROUND_ROBIN
527 bool "Round robin I and D cache replacement algorithm"
528 depends on (CPU_ARM926T || CPU_ARM1020) && (!CPU_ICACHE_DISABLE || !CPU_DCACHE_DISABLE)
529 help
530 Say Y here to use the predictable round-robin cache replacement
531 policy. Unless you specifically require this or are unsure, say N.
532
533config CPU_BPREDICT_DISABLE
534 bool "Disable branch prediction"
Catalin Marinase03eb522005-10-05 23:06:36 +0100535 depends on CPU_ARM1020 || CPU_V6
Linus Torvalds1da177e2005-04-16 15:20:36 -0700536 help
537 Say Y here to disable branch prediction. If unsure, say N.
Nicolas Pitre2d2669b2005-04-29 22:08:33 +0100538
Nicolas Pitre4b0e07a2005-05-05 23:24:45 +0100539config TLS_REG_EMUL
540 bool
Nicolas Pitre4b0e07a2005-05-05 23:24:45 +0100541 help
Nicolas Pitre70489c82005-05-12 19:27:12 +0100542 An SMP system using a pre-ARMv6 processor (there are apparently
543 a few prototypes like that in existence) and therefore access to
544 that required register must be emulated.
Nicolas Pitre4b0e07a2005-05-05 23:24:45 +0100545
Nicolas Pitre2d2669b2005-04-29 22:08:33 +0100546config HAS_TLS_REG
547 bool
Nicolas Pitre70489c82005-05-12 19:27:12 +0100548 depends on !TLS_REG_EMUL
549 default y if SMP || CPU_32v7
Nicolas Pitre2d2669b2005-04-29 22:08:33 +0100550 help
551 This selects support for the CP15 thread register.
Nicolas Pitre70489c82005-05-12 19:27:12 +0100552 It is defined to be available on some ARMv6 processors (including
553 all SMP capable ARMv6's) or later processors. User space may
554 assume directly accessing that register and always obtain the
555 expected value only on ARMv7 and above.
Nicolas Pitre2d2669b2005-04-29 22:08:33 +0100556
Nicolas Pitredcef1f62005-06-08 19:00:47 +0100557config NEEDS_SYSCALL_FOR_CMPXCHG
558 bool
Nicolas Pitredcef1f62005-06-08 19:00:47 +0100559 help
560 SMP on a pre-ARMv6 processor? Well OK then.
561 Forget about fast user space cmpxchg support.
562 It is just not possible.
563