blob: 893d3fc8078f7ecba929b8e493173ad7553ea6ac [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
Hyok S. Choif37f46e2006-09-26 17:38:32 +0900203# ARM946E-S
204config CPU_ARM946E
205 bool "Support ARM946E-S processor" if ARCH_INTEGRATOR
206 select CPU_32v5
207 select CPU_ABRT_EV5T
208 select CPU_CACHE_VIVT
209 select CPU_CP15_MPU
210 help
211 ARM946E-S is a member of the ARM9E-S family of high-
212 performance, 32-bit system-on-chip processor solutions.
213 The TCM and ARMv5TE 32-bit instruction set is supported.
214
215 Say Y if you want support for the ARM946E-S processor.
216 Otherwise, say N.
217
Linus Torvalds1da177e2005-04-16 15:20:36 -0700218# ARM1020 - needs validating
219config CPU_ARM1020
220 bool "Support ARM1020T (rev 0) processor"
221 depends on ARCH_INTEGRATOR
222 select CPU_32v5
223 select CPU_ABRT_EV4T
224 select CPU_CACHE_V4WT
225 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900226 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100227 select CPU_COPY_V4WB if MMU
228 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700229 help
230 The ARM1020 is the 32K cached version of the ARM10 processor,
231 with an addition of a floating-point unit.
232
233 Say Y if you want support for the ARM1020 processor.
234 Otherwise, say N.
235
236# ARM1020E - needs validating
237config CPU_ARM1020E
238 bool "Support ARM1020E processor"
239 depends on ARCH_INTEGRATOR
240 select CPU_32v5
241 select CPU_ABRT_EV4T
242 select CPU_CACHE_V4WT
243 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900244 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100245 select CPU_COPY_V4WB if MMU
246 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700247 depends on n
248
249# ARM1022E
250config CPU_ARM1022
251 bool "Support ARM1022E processor"
252 depends on ARCH_INTEGRATOR
253 select CPU_32v5
254 select CPU_ABRT_EV4T
255 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900256 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100257 select CPU_COPY_V4WB if MMU # can probably do better
258 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700259 help
260 The ARM1022E is an implementation of the ARMv5TE architecture
261 based upon the ARM10 integer core with a 16KiB L1 Harvard cache,
262 embedded trace macrocell, and a floating-point unit.
263
264 Say Y if you want support for the ARM1022E processor.
265 Otherwise, say N.
266
267# ARM1026EJ-S
268config CPU_ARM1026
269 bool "Support ARM1026EJ-S processor"
270 depends on ARCH_INTEGRATOR
271 select CPU_32v5
272 select CPU_ABRT_EV5T # But need Jazelle, but EV5TJ ignores bit 10
273 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900274 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100275 select CPU_COPY_V4WB if MMU # can probably do better
276 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700277 help
278 The ARM1026EJ-S is an implementation of the ARMv5TEJ architecture
279 based upon the ARM10 integer core.
280
281 Say Y if you want support for the ARM1026EJ-S processor.
282 Otherwise, say N.
283
284# SA110
285config CPU_SA110
286 bool "Support StrongARM(R) SA-110 processor" if !ARCH_EBSA110 && !FOOTBRIDGE && !ARCH_TBOX && !ARCH_SHARK && !ARCH_NEXUSPCI && ARCH_RPC
287 default y if ARCH_EBSA110 || FOOTBRIDGE || ARCH_TBOX || ARCH_SHARK || ARCH_NEXUSPCI
288 select CPU_32v3 if ARCH_RPC
289 select CPU_32v4 if !ARCH_RPC
290 select CPU_ABRT_EV4
291 select CPU_CACHE_V4WB
292 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900293 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100294 select CPU_COPY_V4WB if MMU
295 select CPU_TLB_V4WB if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700296 help
297 The Intel StrongARM(R) SA-110 is a 32-bit microprocessor and
298 is available at five speeds ranging from 100 MHz to 233 MHz.
299 More information is available at
300 <http://developer.intel.com/design/strong/sa110.htm>.
301
302 Say Y if you want support for the SA-110 processor.
303 Otherwise, say N.
304
305# SA1100
306config CPU_SA1100
307 bool
308 depends on ARCH_SA1100
309 default y
310 select CPU_32v4
311 select CPU_ABRT_EV4
312 select CPU_CACHE_V4WB
313 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900314 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100315 select CPU_TLB_V4WB if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700316
317# XScale
318config CPU_XSCALE
319 bool
Lennert Buytenhek3f7e5812006-09-18 23:10:26 +0100320 depends on ARCH_IOP32X || ARCH_IOP33X || ARCH_PXA || ARCH_IXP4XX || ARCH_IXP2000
Linus Torvalds1da177e2005-04-16 15:20:36 -0700321 default y
322 select CPU_32v5
323 select CPU_ABRT_EV5T
324 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900325 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100326 select CPU_TLB_V4WBI if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700327
Lennert Buytenhek23bdf862006-03-28 21:00:40 +0100328# XScale Core Version 3
329config CPU_XSC3
330 bool
331 depends on ARCH_IXP23XX
332 default y
333 select CPU_32v5
334 select CPU_ABRT_EV5T
335 select CPU_CACHE_VIVT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900336 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100337 select CPU_TLB_V4WBI if MMU
Lennert Buytenhek23bdf862006-03-28 21:00:40 +0100338 select IO_36
339
Linus Torvalds1da177e2005-04-16 15:20:36 -0700340# ARMv6
341config CPU_V6
342 bool "Support ARM V6 processor"
Tony Lindgren1dbae812005-11-10 14:26:51 +0000343 depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2
Linus Torvalds1da177e2005-04-16 15:20:36 -0700344 select CPU_32v6
345 select CPU_ABRT_EV6
346 select CPU_CACHE_V6
347 select CPU_CACHE_VIPT
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900348 select CPU_CP15_MMU
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100349 select CPU_COPY_V6 if MMU
350 select CPU_TLB_V6 if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700351
Russell King4a5f79e2005-11-03 15:48:21 +0000352# ARMv6k
353config CPU_32v6K
354 bool "Support ARM V6K processor extensions" if !SMP
355 depends on CPU_V6
356 default y if SMP
357 help
358 Say Y here if your ARMv6 processor supports the 'K' extension.
359 This enables the kernel to use some instructions not present
360 on previous processors, and as such a kernel build with this
361 enabled will not boot on processors with do not support these
362 instructions.
363
Linus Torvalds1da177e2005-04-16 15:20:36 -0700364# Figure out what processor architecture version we should be using.
365# This defines the compiler instruction set which depends on the machine type.
366config CPU_32v3
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_32v4
372 bool
Russell King60b6cf62006-06-19 17:36:43 +0100373 select TLS_REG_EMUL if SMP || !MMU
Russell King48fa14f2006-03-16 14:52:33 +0000374 select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700375
Lennert Buytenhek260e98e2006-08-28 12:51:20 +0100376config CPU_32v4T
377 bool
378 select TLS_REG_EMUL if SMP || !MMU
379 select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
380
Linus Torvalds1da177e2005-04-16 15:20:36 -0700381config CPU_32v5
382 bool
Russell King60b6cf62006-06-19 17:36:43 +0100383 select TLS_REG_EMUL if SMP || !MMU
Russell King48fa14f2006-03-16 14:52:33 +0000384 select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
Linus Torvalds1da177e2005-04-16 15:20:36 -0700385
386config CPU_32v6
387 bool
388
389# The abort model
390config CPU_ABRT_EV4
391 bool
392
393config CPU_ABRT_EV4T
394 bool
395
396config CPU_ABRT_LV4T
397 bool
398
399config CPU_ABRT_EV5T
400 bool
401
402config CPU_ABRT_EV5TJ
403 bool
404
405config CPU_ABRT_EV6
406 bool
407
408# The cache model
409config CPU_CACHE_V3
410 bool
411
412config CPU_CACHE_V4
413 bool
414
415config CPU_CACHE_V4WT
416 bool
417
418config CPU_CACHE_V4WB
419 bool
420
421config CPU_CACHE_V6
422 bool
423
424config CPU_CACHE_VIVT
425 bool
426
427config CPU_CACHE_VIPT
428 bool
429
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100430if MMU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700431# The copy-page model
432config CPU_COPY_V3
433 bool
434
435config CPU_COPY_V4WT
436 bool
437
438config CPU_COPY_V4WB
439 bool
440
441config CPU_COPY_V6
442 bool
443
444# This selects the TLB model
445config CPU_TLB_V3
446 bool
447 help
448 ARM Architecture Version 3 TLB.
449
450config CPU_TLB_V4WT
451 bool
452 help
453 ARM Architecture Version 4 TLB with writethrough cache.
454
455config CPU_TLB_V4WB
456 bool
457 help
458 ARM Architecture Version 4 TLB with writeback cache.
459
460config CPU_TLB_V4WBI
461 bool
462 help
463 ARM Architecture Version 4 TLB with writeback cache and invalidate
464 instruction cache entry.
465
466config CPU_TLB_V6
467 bool
468
Hyok S. Choif9c21a62006-06-21 22:26:29 +0100469endif
470
Hyok S. Choifefdaa02006-09-26 17:36:37 +0900471config CPU_CP15
472 bool
473 help
474 Processor has the CP15 register.
475
476config CPU_CP15_MMU
477 bool
478 select CPU_CP15
479 help
480 Processor has the CP15 register, which has MMU related registers.
481
482config CPU_CP15_MPU
483 bool
484 select CPU_CP15
485 help
486 Processor has the CP15 register, which has MPU related registers.
487
Lennert Buytenhek23bdf862006-03-28 21:00:40 +0100488#
489# CPU supports 36-bit I/O
490#
491config IO_36
492 bool
493
Linus Torvalds1da177e2005-04-16 15:20:36 -0700494comment "Processor Features"
495
496config ARM_THUMB
497 bool "Support Thumb user binaries"
Hyok S. Choif37f46e2006-09-26 17:38:32 +0900498 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_V6
Linus Torvalds1da177e2005-04-16 15:20:36 -0700499 default y
500 help
501 Say Y if you want to include kernel support for running user space
502 Thumb binaries.
503
504 The Thumb instruction set is a compressed form of the standard ARM
505 instruction set resulting in smaller binaries at the expense of
506 slightly less efficient code.
507
508 If you don't know what this all is, saying Y is a safe choice.
509
510config CPU_BIG_ENDIAN
511 bool "Build big-endian kernel"
512 depends on ARCH_SUPPORTS_BIG_ENDIAN
513 help
514 Say Y if you plan on running a kernel in big-endian mode.
515 Note that your board must be properly built and your board
516 port must properly enable any big-endian related features
517 of your chipset/board/processor.
518
519config CPU_ICACHE_DISABLE
Hyok S. Choif12d0d72006-09-26 17:36:37 +0900520 bool "Disable I-Cache (I-bit)"
521 depends on CPU_CP15 && !(CPU_ARM610 || CPU_ARM710 || CPU_ARM720T || CPU_ARM740T || CPU_XSCALE || CPU_XSC3)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700522 help
523 Say Y here to disable the processor instruction cache. Unless
524 you have a reason not to or are unsure, say N.
525
526config CPU_DCACHE_DISABLE
Hyok S. Choif12d0d72006-09-26 17:36:37 +0900527 bool "Disable D-Cache (C-bit)"
528 depends on CPU_CP15
Linus Torvalds1da177e2005-04-16 15:20:36 -0700529 help
530 Say Y here to disable the processor data cache. Unless
531 you have a reason not to or are unsure, say N.
532
Hyok S. Choif37f46e2006-09-26 17:38:32 +0900533config CPU_DCACHE_SIZE
534 hex
535 depends on CPU_ARM740T || CPU_ARM946E
536 default 0x00001000 if CPU_ARM740T
537 default 0x00002000 # default size for ARM946E-S
538 help
539 Some cores are synthesizable to have various sized cache. For
540 ARM946E-S case, it can vary from 0KB to 1MB.
541 To support such cache operations, it is efficient to know the size
542 before compile time.
543 If your SoC is configured to have a different size, define the value
544 here with proper conditions.
545
Linus Torvalds1da177e2005-04-16 15:20:36 -0700546config CPU_DCACHE_WRITETHROUGH
547 bool "Force write through D-cache"
Hyok S. Choif37f46e2006-09-26 17:38:32 +0900548 depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700549 default y if CPU_ARM925T
550 help
551 Say Y here to use the data cache in writethrough mode. Unless you
552 specifically require this or are unsure, say N.
553
554config CPU_CACHE_ROUND_ROBIN
555 bool "Round robin I and D cache replacement algorithm"
Hyok S. Choif37f46e2006-09-26 17:38:32 +0900556 depends on (CPU_ARM926T || CPU_ARM946E || CPU_ARM1020) && (!CPU_ICACHE_DISABLE || !CPU_DCACHE_DISABLE)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700557 help
558 Say Y here to use the predictable round-robin cache replacement
559 policy. Unless you specifically require this or are unsure, say N.
560
561config CPU_BPREDICT_DISABLE
562 bool "Disable branch prediction"
Catalin Marinase03eb522005-10-05 23:06:36 +0100563 depends on CPU_ARM1020 || CPU_V6
Linus Torvalds1da177e2005-04-16 15:20:36 -0700564 help
565 Say Y here to disable branch prediction. If unsure, say N.
Nicolas Pitre2d2669b2005-04-29 22:08:33 +0100566
Nicolas Pitre4b0e07a2005-05-05 23:24:45 +0100567config TLS_REG_EMUL
568 bool
Nicolas Pitre4b0e07a2005-05-05 23:24:45 +0100569 help
Nicolas Pitre70489c82005-05-12 19:27:12 +0100570 An SMP system using a pre-ARMv6 processor (there are apparently
571 a few prototypes like that in existence) and therefore access to
572 that required register must be emulated.
Nicolas Pitre4b0e07a2005-05-05 23:24:45 +0100573
Nicolas Pitre2d2669b2005-04-29 22:08:33 +0100574config HAS_TLS_REG
575 bool
Nicolas Pitre70489c82005-05-12 19:27:12 +0100576 depends on !TLS_REG_EMUL
577 default y if SMP || CPU_32v7
Nicolas Pitre2d2669b2005-04-29 22:08:33 +0100578 help
579 This selects support for the CP15 thread register.
Nicolas Pitre70489c82005-05-12 19:27:12 +0100580 It is defined to be available on some ARMv6 processors (including
581 all SMP capable ARMv6's) or later processors. User space may
582 assume directly accessing that register and always obtain the
583 expected value only on ARMv7 and above.
Nicolas Pitre2d2669b2005-04-29 22:08:33 +0100584
Nicolas Pitredcef1f62005-06-08 19:00:47 +0100585config NEEDS_SYSCALL_FOR_CMPXCHG
586 bool
Nicolas Pitredcef1f62005-06-08 19:00:47 +0100587 help
588 SMP on a pre-ARMv6 processor? Well OK then.
589 Forget about fast user space cmpxchg support.
590 It is just not possible.
591