]> pilppa.org Git - linux-2.6-omap-h63xx.git/blob - arch/arm/mm/Kconfig
87f9fece960604635f1dd7f2a7837297bcf1af5b
[linux-2.6-omap-h63xx.git] / arch / arm / mm / Kconfig
1 comment "Processor Type"
2
3 config 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
12 config 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
18         select CPU_CP15_MMU
19         select CPU_COPY_V3 if MMU
20         select CPU_TLB_V3 if MMU
21         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
28 # ARM7TDMI
29 config 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
41 # ARM710
42 config 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
48         select CPU_CP15_MMU
49         select CPU_COPY_V3 if MMU
50         select CPU_TLB_V3 if MMU
51         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
61 config 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
64         select CPU_32v4T
65         select CPU_ABRT_LV4T
66         select CPU_CACHE_V4
67         select CPU_CACHE_VIVT
68         select CPU_CP15_MMU
69         select CPU_COPY_V4WT if MMU
70         select CPU_TLB_V4WT if MMU
71         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
78 # ARM740T
79 config 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
93 # ARM920T
94 config CPU_ARM920T
95         bool "Support ARM920T processor"
96         depends on ARCH_EP93XX || ARCH_INTEGRATOR || CPU_S3C2410 || CPU_S3C2440 || CPU_S3C2442 || ARCH_IMX || ARCH_AAEC2000 || ARCH_AT91RM9200
97         default y if CPU_S3C2410 || CPU_S3C2440 || CPU_S3C2442 || ARCH_AT91RM9200
98         select CPU_32v4T
99         select CPU_ABRT_EV4T
100         select CPU_CACHE_V4WT
101         select CPU_CACHE_VIVT
102         select CPU_CP15_MMU
103         select CPU_COPY_V4WB if MMU
104         select CPU_TLB_V4WBI if MMU
105         help
106           The ARM920T is licensed to be produced by numerous vendors,
107           and is used in the Maverick EP9312 and the Samsung S3C2410.
108
109           More information on the Maverick EP9312 at
110           <http://linuxdevices.com/products/PD2382866068.html>.
111
112           Say Y if you want support for the ARM920T processor.
113           Otherwise, say N.
114
115 # ARM922T
116 config CPU_ARM922T
117         bool "Support ARM922T processor" if ARCH_INTEGRATOR
118         depends on ARCH_LH7A40X || ARCH_INTEGRATOR
119         default y if ARCH_LH7A40X
120         select CPU_32v4T
121         select CPU_ABRT_EV4T
122         select CPU_CACHE_V4WT
123         select CPU_CACHE_VIVT
124         select CPU_CP15_MMU
125         select CPU_COPY_V4WB if MMU
126         select CPU_TLB_V4WBI if MMU
127         help
128           The ARM922T is a version of the ARM920T, but with smaller
129           instruction and data caches. It is used in Altera's
130           Excalibur XA device family.
131
132           Say Y if you want support for the ARM922T processor.
133           Otherwise, say N.
134
135 # ARM925T
136 config CPU_ARM925T
137         bool "Support ARM925T processor" if ARCH_OMAP1
138         depends on ARCH_OMAP15XX
139         default y if ARCH_OMAP15XX
140         select CPU_32v4T
141         select CPU_ABRT_EV4T
142         select CPU_CACHE_V4WT
143         select CPU_CACHE_VIVT
144         select CPU_CP15_MMU
145         select CPU_COPY_V4WB if MMU
146         select CPU_TLB_V4WBI if MMU
147         help
148           The ARM925T is a mix between the ARM920T and ARM926T, but with
149           different instruction and data caches. It is used in TI's OMAP
150           device family.
151
152           Say Y if you want support for the ARM925T processor.
153           Otherwise, say N.
154
155 # ARM926T
156 config CPU_ARM926T
157         bool "Support ARM926T processor"
158         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
159         default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261
160         select CPU_32v5
161         select CPU_ABRT_EV5TJ
162         select CPU_CACHE_VIVT
163         select CPU_CP15_MMU
164         select CPU_COPY_V4WB if MMU
165         select CPU_TLB_V4WBI if MMU
166         help
167           This is a variant of the ARM920.  It has slightly different
168           instruction sequences for cache and TLB operations.  Curiously,
169           there is no documentation on it at the ARM corporate website.
170
171           Say Y if you want support for the ARM926T processor.
172           Otherwise, say N.
173
174 # ARM1020 - needs validating
175 config CPU_ARM1020
176         bool "Support ARM1020T (rev 0) processor"
177         depends on ARCH_INTEGRATOR
178         select CPU_32v5
179         select CPU_ABRT_EV4T
180         select CPU_CACHE_V4WT
181         select CPU_CACHE_VIVT
182         select CPU_CP15_MMU
183         select CPU_COPY_V4WB if MMU
184         select CPU_TLB_V4WBI if MMU
185         help
186           The ARM1020 is the 32K cached version of the ARM10 processor,
187           with an addition of a floating-point unit.
188
189           Say Y if you want support for the ARM1020 processor.
190           Otherwise, say N.
191
192 # ARM1020E - needs validating
193 config CPU_ARM1020E
194         bool "Support ARM1020E processor"
195         depends on ARCH_INTEGRATOR
196         select CPU_32v5
197         select CPU_ABRT_EV4T
198         select CPU_CACHE_V4WT
199         select CPU_CACHE_VIVT
200         select CPU_CP15_MMU
201         select CPU_COPY_V4WB if MMU
202         select CPU_TLB_V4WBI if MMU
203         depends on n
204
205 # ARM1022E
206 config CPU_ARM1022
207         bool "Support ARM1022E processor"
208         depends on ARCH_INTEGRATOR
209         select CPU_32v5
210         select CPU_ABRT_EV4T
211         select CPU_CACHE_VIVT
212         select CPU_CP15_MMU
213         select CPU_COPY_V4WB if MMU # can probably do better
214         select CPU_TLB_V4WBI if MMU
215         help
216           The ARM1022E is an implementation of the ARMv5TE architecture
217           based upon the ARM10 integer core with a 16KiB L1 Harvard cache,
218           embedded trace macrocell, and a floating-point unit.
219
220           Say Y if you want support for the ARM1022E processor.
221           Otherwise, say N.
222
223 # ARM1026EJ-S
224 config CPU_ARM1026
225         bool "Support ARM1026EJ-S processor"
226         depends on ARCH_INTEGRATOR
227         select CPU_32v5
228         select CPU_ABRT_EV5T # But need Jazelle, but EV5TJ ignores bit 10
229         select CPU_CACHE_VIVT
230         select CPU_CP15_MMU
231         select CPU_COPY_V4WB if MMU # can probably do better
232         select CPU_TLB_V4WBI if MMU
233         help
234           The ARM1026EJ-S is an implementation of the ARMv5TEJ architecture
235           based upon the ARM10 integer core.
236
237           Say Y if you want support for the ARM1026EJ-S processor.
238           Otherwise, say N.
239
240 # SA110
241 config CPU_SA110
242         bool "Support StrongARM(R) SA-110 processor" if !ARCH_EBSA110 && !FOOTBRIDGE && !ARCH_TBOX && !ARCH_SHARK && !ARCH_NEXUSPCI && ARCH_RPC
243         default y if ARCH_EBSA110 || FOOTBRIDGE || ARCH_TBOX || ARCH_SHARK || ARCH_NEXUSPCI
244         select CPU_32v3 if ARCH_RPC
245         select CPU_32v4 if !ARCH_RPC
246         select CPU_ABRT_EV4
247         select CPU_CACHE_V4WB
248         select CPU_CACHE_VIVT
249         select CPU_CP15_MMU
250         select CPU_COPY_V4WB if MMU
251         select CPU_TLB_V4WB if MMU
252         help
253           The Intel StrongARM(R) SA-110 is a 32-bit microprocessor and
254           is available at five speeds ranging from 100 MHz to 233 MHz.
255           More information is available at
256           <http://developer.intel.com/design/strong/sa110.htm>.
257
258           Say Y if you want support for the SA-110 processor.
259           Otherwise, say N.
260
261 # SA1100
262 config CPU_SA1100
263         bool
264         depends on ARCH_SA1100
265         default y
266         select CPU_32v4
267         select CPU_ABRT_EV4
268         select CPU_CACHE_V4WB
269         select CPU_CACHE_VIVT
270         select CPU_CP15_MMU
271         select CPU_TLB_V4WB if MMU
272
273 # XScale
274 config CPU_XSCALE
275         bool
276         depends on ARCH_IOP32X || ARCH_IOP33X || ARCH_PXA || ARCH_IXP4XX || ARCH_IXP2000
277         default y
278         select CPU_32v5
279         select CPU_ABRT_EV5T
280         select CPU_CACHE_VIVT
281         select CPU_CP15_MMU
282         select CPU_TLB_V4WBI if MMU
283
284 # XScale Core Version 3
285 config CPU_XSC3
286         bool
287         depends on ARCH_IXP23XX
288         default y
289         select CPU_32v5
290         select CPU_ABRT_EV5T
291         select CPU_CACHE_VIVT
292         select CPU_CP15_MMU
293         select CPU_TLB_V4WBI if MMU
294         select IO_36
295
296 # ARMv6
297 config CPU_V6
298         bool "Support ARM V6 processor"
299         depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2
300         select CPU_32v6
301         select CPU_ABRT_EV6
302         select CPU_CACHE_V6
303         select CPU_CACHE_VIPT
304         select CPU_CP15_MMU
305         select CPU_COPY_V6 if MMU
306         select CPU_TLB_V6 if MMU
307
308 # ARMv6k
309 config CPU_32v6K
310         bool "Support ARM V6K processor extensions" if !SMP
311         depends on CPU_V6
312         default y if SMP
313         help
314           Say Y here if your ARMv6 processor supports the 'K' extension.
315           This enables the kernel to use some instructions not present
316           on previous processors, and as such a kernel build with this
317           enabled will not boot on processors with do not support these
318           instructions.
319
320 # Figure out what processor architecture version we should be using.
321 # This defines the compiler instruction set which depends on the machine type.
322 config CPU_32v3
323         bool
324         select TLS_REG_EMUL if SMP || !MMU
325         select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
326
327 config CPU_32v4
328         bool
329         select TLS_REG_EMUL if SMP || !MMU
330         select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
331
332 config CPU_32v4T
333         bool
334         select TLS_REG_EMUL if SMP || !MMU
335         select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
336
337 config CPU_32v5
338         bool
339         select TLS_REG_EMUL if SMP || !MMU
340         select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
341
342 config CPU_32v6
343         bool
344
345 # The abort model
346 config CPU_ABRT_EV4
347         bool
348
349 config CPU_ABRT_EV4T
350         bool
351
352 config CPU_ABRT_LV4T
353         bool
354
355 config CPU_ABRT_EV5T
356         bool
357
358 config CPU_ABRT_EV5TJ
359         bool
360
361 config CPU_ABRT_EV6
362         bool
363
364 # The cache model
365 config CPU_CACHE_V3
366         bool
367
368 config CPU_CACHE_V4
369         bool
370
371 config CPU_CACHE_V4WT
372         bool
373
374 config CPU_CACHE_V4WB
375         bool
376
377 config CPU_CACHE_V6
378         bool
379
380 config CPU_CACHE_VIVT
381         bool
382
383 config CPU_CACHE_VIPT
384         bool
385
386 if MMU
387 # The copy-page model
388 config CPU_COPY_V3
389         bool
390
391 config CPU_COPY_V4WT
392         bool
393
394 config CPU_COPY_V4WB
395         bool
396
397 config CPU_COPY_V6
398         bool
399
400 # This selects the TLB model
401 config CPU_TLB_V3
402         bool
403         help
404           ARM Architecture Version 3 TLB.
405
406 config CPU_TLB_V4WT
407         bool
408         help
409           ARM Architecture Version 4 TLB with writethrough cache.
410
411 config CPU_TLB_V4WB
412         bool
413         help
414           ARM Architecture Version 4 TLB with writeback cache.
415
416 config CPU_TLB_V4WBI
417         bool
418         help
419           ARM Architecture Version 4 TLB with writeback cache and invalidate
420           instruction cache entry.
421
422 config CPU_TLB_V6
423         bool
424
425 endif
426
427 config CPU_CP15
428         bool
429         help
430           Processor has the CP15 register.
431
432 config CPU_CP15_MMU
433         bool
434         select CPU_CP15
435         help
436           Processor has the CP15 register, which has MMU related registers.
437
438 config CPU_CP15_MPU
439         bool
440         select CPU_CP15
441         help
442           Processor has the CP15 register, which has MPU related registers.
443
444 #
445 # CPU supports 36-bit I/O
446 #
447 config IO_36
448         bool
449
450 comment "Processor Features"
451
452 config ARM_THUMB
453         bool "Support Thumb user binaries"
454         depends on CPU_ARM720T || CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || CPU_XSCALE || CPU_XSC3 || CPU_V6
455         default y
456         help
457           Say Y if you want to include kernel support for running user space
458           Thumb binaries.
459
460           The Thumb instruction set is a compressed form of the standard ARM
461           instruction set resulting in smaller binaries at the expense of
462           slightly less efficient code.
463
464           If you don't know what this all is, saying Y is a safe choice.
465
466 config CPU_BIG_ENDIAN
467         bool "Build big-endian kernel"
468         depends on ARCH_SUPPORTS_BIG_ENDIAN
469         help
470           Say Y if you plan on running a kernel in big-endian mode.
471           Note that your board must be properly built and your board
472           port must properly enable any big-endian related features
473           of your chipset/board/processor.
474
475 config CPU_ICACHE_DISABLE
476         bool "Disable I-Cache (I-bit)"
477         depends on CPU_CP15 && !(CPU_ARM610 || CPU_ARM710 || CPU_ARM720T || CPU_ARM740T || CPU_XSCALE || CPU_XSC3)
478         help
479           Say Y here to disable the processor instruction cache. Unless
480           you have a reason not to or are unsure, say N.
481
482 config CPU_DCACHE_DISABLE
483         bool "Disable D-Cache (C-bit)"
484         depends on CPU_CP15
485         help
486           Say Y here to disable the processor data cache. Unless
487           you have a reason not to or are unsure, say N.
488
489 config CPU_DCACHE_WRITETHROUGH
490         bool "Force write through D-cache"
491         depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE
492         default y if CPU_ARM925T
493         help
494           Say Y here to use the data cache in writethrough mode. Unless you
495           specifically require this or are unsure, say N.
496
497 config CPU_CACHE_ROUND_ROBIN
498         bool "Round robin I and D cache replacement algorithm"
499         depends on (CPU_ARM926T || CPU_ARM1020) && (!CPU_ICACHE_DISABLE || !CPU_DCACHE_DISABLE)
500         help
501           Say Y here to use the predictable round-robin cache replacement
502           policy.  Unless you specifically require this or are unsure, say N.
503
504 config CPU_BPREDICT_DISABLE
505         bool "Disable branch prediction"
506         depends on CPU_ARM1020 || CPU_V6
507         help
508           Say Y here to disable branch prediction.  If unsure, say N.
509
510 config TLS_REG_EMUL
511         bool
512         help
513           An SMP system using a pre-ARMv6 processor (there are apparently
514           a few prototypes like that in existence) and therefore access to
515           that required register must be emulated.
516
517 config HAS_TLS_REG
518         bool
519         depends on !TLS_REG_EMUL
520         default y if SMP || CPU_32v7
521         help
522           This selects support for the CP15 thread register.
523           It is defined to be available on some ARMv6 processors (including
524           all SMP capable ARMv6's) or later processors.  User space may
525           assume directly accessing that register and always obtain the
526           expected value only on ARMv7 and above.
527
528 config NEEDS_SYSCALL_FOR_CMPXCHG
529         bool
530         help
531           SMP on a pre-ARMv6 processor?  Well OK then.
532           Forget about fast user space cmpxchg support.
533           It is just not possible.
534