MOXA linux-2.6.x / linux-2.6.19-uc1 from UC-7110-LX-BOOTLOADER-1.9_VERSION-4.2.tgz
[linux-2.6.19-moxart.git] / arch / arm / mm / Kconfig-bak-03032007
blob83a2c23cc3ea21049935b59cca23b2f62e2a4c96
1 comment "Processor Type"
3 config CPU_32
4         bool
5         default y
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.
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.
25           Say Y if you want support for the ARM610 processor.
26           Otherwise, say N.
28 # ARM7TDMI
29 config CPU_ARM7TDMI
30         bool "Support ARM7TDMI processor"
31         depends on !MMU
32         select CPU_32v4T
33         select CPU_ABRT_LV4T
34         select CPU_CACHE_V4
35         help
36           A 32-bit RISC microprocessor based on the ARM7 processor core
37           which has no memory control unit and cache.
39           Say Y if you want support for the ARM7TDMI processor.
40           Otherwise, say N.
42 # ARM710
43 config CPU_ARM710
44         bool "Support ARM710 processor" if !ARCH_CLPS7500 && ARCH_RPC
45         default y if ARCH_CLPS7500
46         select CPU_32v3
47         select CPU_CACHE_V3
48         select CPU_CACHE_VIVT
49         select CPU_CP15_MMU
50         select CPU_COPY_V3 if MMU
51         select CPU_TLB_V3 if MMU
52         help
53           A 32-bit RISC microprocessor based on the ARM7 processor core
54           designed by Advanced RISC Machines Ltd. The ARM710 is the
55           successor to the ARM610 processor. It was released in
56           July 1994 by VLSI Technology Inc.
58           Say Y if you want support for the ARM710 processor.
59           Otherwise, say N.
61 # LPC22xx
62 config CPU_LPC22xx
63         bool "Support LPC22xx/ARM7TDMI processor" if !ARCH_LPC22xx
64         depends on ARCH_LPC22xx
65         default y if ARCH_LPC22xx
66         select CPU_32v4
67         help
68           A Philips 32-bit RISC microprocessor based on ARM7TDMI-S core.
70 # ARM720T
71 config CPU_ARM720T
72         bool "Support ARM720T processor" if !ARCH_CLPS711X && !ARCH_L7200 && !ARCH_CDB89712 && ARCH_INTEGRATOR
73         default y if ARCH_CLPS711X || ARCH_L7200 || ARCH_CDB89712 || ARCH_H720X
74         select CPU_32v4T
75         select CPU_ABRT_LV4T
76         select CPU_CACHE_V4
77         select CPU_CACHE_VIVT
78         select CPU_CP15_MMU
79         select CPU_COPY_V4WT if MMU
80         select CPU_TLB_V4WT if MMU
81         help
82           A 32-bit RISC processor with 8kByte Cache, Write Buffer and
83           MMU built around an ARM7TDMI core.
85           Say Y if you want support for the ARM720T processor.
86           Otherwise, say N.
88 # ARM740T
89 config CPU_ARM740T
90         bool "Support ARM740T processor" if ARCH_INTEGRATOR
91         depends on !MMU
92         select CPU_32v4T
93         select CPU_ABRT_LV4T
94         select CPU_CACHE_V3     # although the core is v4t
95         select CPU_CP15_MPU
96         help
97           A 32-bit RISC processor with 8KB cache or 4KB variants,
98           write buffer and MPU(Protection Unit) built around
99           an ARM7TDMI core.
101           Say Y if you want support for the ARM740T processor.
102           Otherwise, say N.
104 # ARM9TDMI
105 config CPU_ARM9TDMI
106         bool "Support ARM9TDMI processor"
107         depends on !MMU
108         select CPU_32v4T
109         select CPU_ABRT_NOMMU
110         select CPU_CACHE_V4
111         help
112           A 32-bit RISC microprocessor based on the ARM9 processor core
113           which has no memory control unit and cache.
115           Say Y if you want support for the ARM9TDMI processor.
116           Otherwise, say N.
118 # ARM920T
119 config CPU_ARM920T
120         bool "Support ARM920T processor"
121         depends on ARCH_EP93XX || ARCH_INTEGRATOR || CPU_S3C2410 || CPU_S3C2440 || CPU_S3C2442 || ARCH_IMX || ARCH_AAEC2000 || ARCH_AT91RM9200
122         default y if CPU_S3C2410 || CPU_S3C2440 || CPU_S3C2442 || ARCH_AT91RM9200
123         select CPU_32v4T
124         select CPU_ABRT_EV4T
125         select CPU_CACHE_V4WT
126         select CPU_CACHE_VIVT
127         select CPU_CP15_MMU
128         select CPU_COPY_V4WB if MMU
129         select CPU_TLB_V4WBI if MMU
130         help
131           The ARM920T is licensed to be produced by numerous vendors,
132           and is used in the Maverick EP9312 and the Samsung S3C2410.
134           More information on the Maverick EP9312 at
135           <http://linuxdevices.com/products/PD2382866068.html>.
137           Say Y if you want support for the ARM920T processor.
138           Otherwise, say N.
140 # ARM922T
141 config CPU_ARM922T
142         bool "Support ARM922T processor" if ARCH_INTEGRATOR
143         depends on ARCH_LH7A40X || ARCH_INTEGRATOR || ARCH_KS8695 || ARCH_MOXART
144         default y if ARCH_LH7A40X || ARCH_KS8695 || ARCH_MOXART
145         select CPU_32v4
146         select CPU_ABRT_EV4
147         select CPU_CACHE_VIVT
148         select CPU_CP15
149         select CPU_COPY_V4WB if MMU
150         help
151           The ARM922T is a version of the ARM920T, but with smaller
152           instruction and data caches. It is used in Altera's
153           Excalibur XA device family.
155           Say Y if you want support for the ARM922T processor.
156           Otherwise, say N.
158 # ARM925T
159 config CPU_ARM925T
160         bool "Support ARM925T processor" if ARCH_OMAP1
161         depends on ARCH_OMAP15XX
162         default y if ARCH_OMAP15XX
163         select CPU_32v4T
164         select CPU_ABRT_EV4T
165         select CPU_CACHE_V4WT
166         select CPU_CACHE_VIVT
167         select CPU_CP15_MMU
168         select CPU_COPY_V4WB if MMU
169         select CPU_TLB_V4WBI if MMU
170         help
171           The ARM925T is a mix between the ARM920T and ARM926T, but with
172           different instruction and data caches. It is used in TI's OMAP
173           device family.
175           Say Y if you want support for the ARM925T processor.
176           Otherwise, say N.
178 # ARM926T
179 config CPU_ARM926T
180         bool "Support ARM926T processor"
181         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
182         default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261
183         select CPU_32v5
184         select CPU_ABRT_EV5TJ
185         select CPU_CACHE_VIVT
186         select CPU_CP15_MMU
187         select CPU_COPY_V4WB if MMU
188         select CPU_TLB_V4WBI if MMU
189         help
190           This is a variant of the ARM920.  It has slightly different
191           instruction sequences for cache and TLB operations.  Curiously,
192           there is no documentation on it at the ARM corporate website.
194           Say Y if you want support for the ARM926T processor.
195           Otherwise, say N.
197 # ARM940T
198 config CPU_ARM940T
199         bool "Support ARM940T processor" if ARCH_INTEGRATOR
200         depends on !MMU
201         select CPU_32v4T
202         select CPU_ABRT_NOMMU
203         select CPU_CACHE_VIVT
204         select CPU_CP15_MPU
205         help
206           ARM940T is a member of the ARM9TDMI family of general-
207           purpose microprocessors with MPU and seperate 4KB
208           instruction and 4KB data cases, each with a 4-word line
209           length.
211           Say Y if you want support for the ARM940T processor.
212           Otherwise, say N.
214 # ARM946E-S
215 config CPU_ARM946E
216         bool "Support ARM946E-S processor" if ARCH_INTEGRATOR
217         depends on !MMU
218         select CPU_32v5
219         select CPU_ABRT_NOMMU
220         select CPU_CACHE_VIVT
221         select CPU_CP15_MPU
222         help
223           ARM946E-S is a member of the ARM9E-S family of high-
224           performance, 32-bit system-on-chip processor solutions.
225           The TCM and ARMv5TE 32-bit instruction set is supported.
227           Say Y if you want support for the ARM946E-S processor.
228           Otherwise, say N.
230 # ARM1020 - needs validating
231 config CPU_ARM1020
232         bool "Support ARM1020T (rev 0) processor"
233         depends on ARCH_INTEGRATOR
234         select CPU_32v5
235         select CPU_ABRT_EV4T
236         select CPU_CACHE_V4WT
237         select CPU_CACHE_VIVT
238         select CPU_CP15_MMU
239         select CPU_COPY_V4WB if MMU
240         select CPU_TLB_V4WBI if MMU
241         help
242           The ARM1020 is the 32K cached version of the ARM10 processor,
243           with an addition of a floating-point unit.
245           Say Y if you want support for the ARM1020 processor.
246           Otherwise, say N.
248 # ARM1020E - needs validating
249 config CPU_ARM1020E
250         bool "Support ARM1020E processor"
251         depends on ARCH_INTEGRATOR
252         select CPU_32v5
253         select CPU_ABRT_EV4T
254         select CPU_CACHE_V4WT
255         select CPU_CACHE_VIVT
256         select CPU_CP15_MMU
257         select CPU_COPY_V4WB if MMU
258         select CPU_TLB_V4WBI if MMU
259         depends on n
261 # ARM1022E
262 config CPU_ARM1022
263         bool "Support ARM1022E processor"
264         depends on ARCH_INTEGRATOR
265         select CPU_32v5
266         select CPU_ABRT_EV4T
267         select CPU_CACHE_VIVT
268         select CPU_CP15_MMU
269         select CPU_COPY_V4WB if MMU # can probably do better
270         select CPU_TLB_V4WBI if MMU
271         help
272           The ARM1022E is an implementation of the ARMv5TE architecture
273           based upon the ARM10 integer core with a 16KiB L1 Harvard cache,
274           embedded trace macrocell, and a floating-point unit.
276           Say Y if you want support for the ARM1022E processor.
277           Otherwise, say N.
279 # ARM1026EJ-S
280 config CPU_ARM1026
281         bool "Support ARM1026EJ-S processor"
282         depends on ARCH_INTEGRATOR
283         select CPU_32v5
284         select CPU_ABRT_EV5T # But need Jazelle, but EV5TJ ignores bit 10
285         select CPU_CACHE_VIVT
286         select CPU_CP15_MMU
287         select CPU_COPY_V4WB if MMU # can probably do better
288         select CPU_TLB_V4WBI if MMU
289         help
290           The ARM1026EJ-S is an implementation of the ARMv5TEJ architecture
291           based upon the ARM10 integer core.
293           Say Y if you want support for the ARM1026EJ-S processor.
294           Otherwise, say N.
296 # SA110
297 config CPU_SA110
298         bool "Support StrongARM(R) SA-110 processor" if !ARCH_EBSA110 && !FOOTBRIDGE && !ARCH_TBOX && !ARCH_SHARK && !ARCH_NEXUSPCI && ARCH_RPC
299         default y if ARCH_EBSA110 || FOOTBRIDGE || ARCH_TBOX || ARCH_SHARK || ARCH_NEXUSPCI
300         select CPU_32v3 if ARCH_RPC
301         select CPU_32v4 if !ARCH_RPC
302         select CPU_ABRT_EV4
303         select CPU_CACHE_V4WB
304         select CPU_CACHE_VIVT
305         select CPU_CP15_MMU
306         select CPU_COPY_V4WB if MMU
307         select CPU_TLB_V4WB if MMU
308         help
309           The Intel StrongARM(R) SA-110 is a 32-bit microprocessor and
310           is available at five speeds ranging from 100 MHz to 233 MHz.
311           More information is available at
312           <http://developer.intel.com/design/strong/sa110.htm>.
314           Say Y if you want support for the SA-110 processor.
315           Otherwise, say N.
317 # SA1100
318 config CPU_SA1100
319         bool
320         depends on ARCH_SA1100
321         default y
322         select CPU_32v4
323         select CPU_ABRT_EV4
324         select CPU_CACHE_V4WB
325         select CPU_CACHE_VIVT
326         select CPU_CP15_MMU
327         select CPU_TLB_V4WB if MMU
329 # XScale
330 config CPU_XSCALE
331         bool
332         depends on ARCH_IOP32X || ARCH_IOP33X || ARCH_PXA || ARCH_IXP4XX || ARCH_IXP2000
333         default y
334         select CPU_32v5
335         select CPU_ABRT_EV5T
336         select CPU_CACHE_VIVT
337         select CPU_CP15_MMU
338         select CPU_TLB_V4WBI if MMU
340 # XScale Core Version 3
341 config CPU_XSC3
342         bool
343         depends on ARCH_IXP23XX
344         default y
345         select CPU_32v5
346         select CPU_ABRT_EV5T
347         select CPU_CACHE_VIVT
348         select CPU_CP15_MMU
349         select CPU_TLB_V4WBI if MMU
350         select IO_36
352 # ARMv6
353 config CPU_V6
354         bool "Support ARM V6 processor"
355         depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2
356         select CPU_32v6
357         select CPU_ABRT_EV6
358         select CPU_CACHE_V6
359         select CPU_CACHE_VIPT
360         select CPU_CP15_MMU
361         select CPU_COPY_V6 if MMU
362         select CPU_TLB_V6 if MMU
364 # ARMv6k
365 config CPU_32v6K
366         bool "Support ARM V6K processor extensions" if !SMP
367         depends on CPU_V6
368         default y if SMP
369         help
370           Say Y here if your ARMv6 processor supports the 'K' extension.
371           This enables the kernel to use some instructions not present
372           on previous processors, and as such a kernel build with this
373           enabled will not boot on processors with do not support these
374           instructions.
376 # Figure out what processor architecture version we should be using.
377 # This defines the compiler instruction set which depends on the machine type.
378 config CPU_32v3
379         bool
380         select TLS_REG_EMUL if SMP || !MMU
381         select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
383 config CPU_32v4
384         bool
385         select TLS_REG_EMUL if SMP || !MMU
386         select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
388 config CPU_32v4T
389         bool
390         select TLS_REG_EMUL if SMP || !MMU
391         select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
393 config CPU_32v5
394         bool
395         select TLS_REG_EMUL if SMP || !MMU
396         select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
398 config CPU_32v6
399         bool
401 # The abort model
402 config CPU_ABRT_NOMMU
403         bool
405 config CPU_ABRT_EV4
406         bool
408 config CPU_ABRT_EV4T
409         bool
411 config CPU_ABRT_LV4T
412         bool
414 config CPU_ABRT_EV5T
415         bool
417 config CPU_ABRT_EV5TJ
418         bool
420 config CPU_ABRT_EV6
421         bool
423 # The cache model
424 config CPU_CACHE_V3
425         bool
427 config CPU_CACHE_V4
428         bool
430 config CPU_CACHE_V4WT
431         bool
433 config CPU_CACHE_V4WB
434         bool
436 config CPU_CACHE_V6
437         bool
439 config CPU_CACHE_VIVT
440         bool
442 config CPU_CACHE_VIPT
443         bool
445 if MMU
446 # The copy-page model
447 config CPU_COPY_V3
448         bool
450 config CPU_COPY_V4WT
451         bool
453 config CPU_COPY_V4WB
454         bool
456 config CPU_COPY_V6
457         bool
459 # This selects the TLB model
460 config CPU_TLB_V3
461         bool
462         help
463           ARM Architecture Version 3 TLB.
465 config CPU_TLB_V4WT
466         bool
467         help
468           ARM Architecture Version 4 TLB with writethrough cache.
470 config CPU_TLB_V4WB
471         bool
472         help
473           ARM Architecture Version 4 TLB with writeback cache.
475 config CPU_TLB_V4WBI
476         bool
477         help
478           ARM Architecture Version 4 TLB with writeback cache and invalidate
479           instruction cache entry.
481 config CPU_TLB_V6
482         bool
484 endif
486 config CPU_CP15
487         bool
488         help
489           Processor has the CP15 register.
491 config CPU_CP15_MMU
492         bool
493         select CPU_CP15
494         help
495           Processor has the CP15 register, which has MMU related registers.
497 config CPU_CP15_MPU
498         bool
499         select CPU_CP15
500         help
501           Processor has the CP15 register, which has MPU related registers.
504 # CPU supports 36-bit I/O
506 config IO_36
507         bool
509 comment "Processor Features"
511 config ARM_THUMB
512         bool "Support Thumb user binaries"
513         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
514         default y
515         help
516           Say Y if you want to include kernel support for running user space
517           Thumb binaries.
519           The Thumb instruction set is a compressed form of the standard ARM
520           instruction set resulting in smaller binaries at the expense of
521           slightly less efficient code.
523           If you don't know what this all is, saying Y is a safe choice.
525 config CPU_BIG_ENDIAN
526         bool "Build big-endian kernel"
527         depends on ARCH_SUPPORTS_BIG_ENDIAN
528         default y if ARCH_S3C3410
529         help
530           Say Y if you plan on running a kernel in big-endian mode.
531           Note that your board must be properly built and your board
532           port must properly enable any big-endian related features
533           of your chipset/board/processor.
535 config CPU_MXU_ENABLE
536         depends !MMU
537         bool "Enable the MMU/MPU on non-paged memory management mode"
538         depends on CPU_ARM720T ||CPU_ARM740T || CPU_ARM920T || CPU_ARM922T ||  CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020
539         help
540           Say Y here to enable the memory control unit like: MMU/MPU,
541           on non-paged memory management mode.
543 config CPU_HIGH_VECTOR
544         depends !MMU && CPU_CP15 && !CPU_ARM740T
545         bool "Select the High exception vector"
546         default n
547         help
548           Say Y here to select high exception vector(0xFFFF0000~).
549           The exception vector can be vary depending on the platform
550           design in nommu mode. If your platform needs to select
551           high exception vector, say Y.
552           Otherwise or if you are unsure, say N, and the low exception
553           vector (0x00000000~) will be used.
555 config CPU_ICACHE_DISABLE
556         bool "Disable I-Cache (I-bit)"
557         depends on CPU_CP15 && !(CPU_ARM610 || CPU_ARM710 || CPU_ARM720T || CPU_ARM740T || CPU_XSCALE || CPU_XSC3)
558         help
559           Say Y here to disable the processor instruction cache. Unless
560           you have a reason not to or are unsure, say N.
562 config CPU_DCACHE_DISABLE
563         bool "Disable D-Cache (C-bit)"
564         depends on CPU_CP15
565         help
566           Say Y here to disable the processor data cache. Unless
567           you have a reason not to or are unsure, say N.
569 config CPU_DCACHE_SIZE
570         hex
571         depends on CPU_ARM740T || CPU_ARM946E
572         default 0x00001000 if CPU_ARM740T
573         default 0x00002000 # default size for ARM946E-S
574         help
575           Some cores are synthesizable to have various sized cache. For
576           ARM946E-S case, it can vary from 0KB to 1MB.
577           To support such cache operations, it is efficient to know the size
578           before compile time.
579           If your SoC is configured to have a different size, define the value
580           here with proper conditions.
582 config CPU_DCACHE_WRITETHROUGH
583         bool "Force write through D-cache"
584         depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE
585         default y if CPU_ARM925T
586         help
587           Say Y here to use the data cache in writethrough mode. Unless you
588           specifically require this or are unsure, say N.
590 config CPU_CACHE_ROUND_ROBIN
591         bool "Round robin I and D cache replacement algorithm"
592         depends on (CPU_ARM926T || CPU_ARM946E || CPU_ARM1020) && (!CPU_ICACHE_DISABLE || !CPU_DCACHE_DISABLE)
593         help
594           Say Y here to use the predictable round-robin cache replacement
595           policy.  Unless you specifically require this or are unsure, say N.
597 config CPU_BPREDICT_DISABLE
598         bool "Disable branch prediction"
599         depends on CPU_ARM1020 || CPU_V6
600         help
601           Say Y here to disable branch prediction.  If unsure, say N.
603 config TLS_REG_EMUL
604         bool
605         help
606           An SMP system using a pre-ARMv6 processor (there are apparently
607           a few prototypes like that in existence) and therefore access to
608           that required register must be emulated.
610 config HAS_TLS_REG
611         bool
612         depends on !TLS_REG_EMUL
613         default y if SMP || CPU_32v7
614         help
615           This selects support for the CP15 thread register.
616           It is defined to be available on some ARMv6 processors (including
617           all SMP capable ARMv6's) or later processors.  User space may
618           assume directly accessing that register and always obtain the
619           expected value only on ARMv7 and above.
621 config NEEDS_SYSCALL_FOR_CMPXCHG
622         bool
623         help
624           SMP on a pre-ARMv6 processor?  Well OK then.
625           Forget about fast user space cmpxchg support.
626           It is just not possible.