time: Kill off CONFIG_GENERIC_TIME
[linux-2.6.git] / arch / arm / Kconfig
1 #
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
4 #
5
6 mainmenu "Linux Kernel Configuration"
7
8 config ARM
9         bool
10         default y
11         select HAVE_AOUT
12         select HAVE_IDE
13         select RTC_LIB
14         select SYS_SUPPORTS_APM_EMULATION
15         select GENERIC_ATOMIC64 if (!CPU_32v6K)
16         select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
17         select HAVE_ARCH_KGDB
18         select HAVE_KPROBES if (!XIP_KERNEL)
19         select HAVE_KRETPROBES if (HAVE_KPROBES)
20         select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
21         select HAVE_GENERIC_DMA_COHERENT
22         select HAVE_KERNEL_GZIP
23         select HAVE_KERNEL_LZO
24         select HAVE_KERNEL_LZMA
25         select HAVE_PERF_EVENTS
26         select PERF_USE_VMALLOC
27         help
28           The ARM series is a line of low-power-consumption RISC chip designs
29           licensed by ARM Ltd and targeted at embedded applications and
30           handhelds such as the Compaq IPAQ.  ARM-based PCs are no longer
31           manufactured, but legacy ARM-based PC hardware remains popular in
32           Europe.  There is an ARM Linux project with a web page at
33           <http://www.arm.linux.org.uk/>.
34
35 config HAVE_PWM
36         bool
37
38 config SYS_SUPPORTS_APM_EMULATION
39         bool
40
41 config GENERIC_GPIO
42         bool
43
44 config ARCH_USES_GETTIMEOFFSET
45         bool
46         default n
47
48 config GENERIC_CLOCKEVENTS
49         bool
50
51 config GENERIC_CLOCKEVENTS_BROADCAST
52         bool
53         depends on GENERIC_CLOCKEVENTS
54         default y if SMP && !LOCAL_TIMERS
55
56 config HAVE_TCM
57         bool
58         select GENERIC_ALLOCATOR
59
60 config HAVE_PROC_CPU
61         bool
62
63 config NO_IOPORT
64         bool
65
66 config EISA
67         bool
68         ---help---
69           The Extended Industry Standard Architecture (EISA) bus was
70           developed as an open alternative to the IBM MicroChannel bus.
71
72           The EISA bus provided some of the features of the IBM MicroChannel
73           bus while maintaining backward compatibility with cards made for
74           the older ISA bus.  The EISA bus saw limited use between 1988 and
75           1995 when it was made obsolete by the PCI bus.
76
77           Say Y here if you are building a kernel for an EISA-based machine.
78
79           Otherwise, say N.
80
81 config SBUS
82         bool
83
84 config MCA
85         bool
86         help
87           MicroChannel Architecture is found in some IBM PS/2 machines and
88           laptops.  It is a bus system similar to PCI or ISA. See
89           <file:Documentation/mca.txt> (and especially the web page given
90           there) before attempting to build an MCA bus kernel.
91
92 config GENERIC_HARDIRQS
93         bool
94         default y
95
96 config STACKTRACE_SUPPORT
97         bool
98         default y
99
100 config HAVE_LATENCYTOP_SUPPORT
101         bool
102         depends on !SMP
103         default y
104
105 config LOCKDEP_SUPPORT
106         bool
107         default y
108
109 config TRACE_IRQFLAGS_SUPPORT
110         bool
111         default y
112
113 config HARDIRQS_SW_RESEND
114         bool
115         default y
116
117 config GENERIC_IRQ_PROBE
118         bool
119         default y
120
121 config GENERIC_LOCKBREAK
122         bool
123         default y
124         depends on SMP && PREEMPT
125
126 config RWSEM_GENERIC_SPINLOCK
127         bool
128         default y
129
130 config RWSEM_XCHGADD_ALGORITHM
131         bool
132
133 config ARCH_HAS_ILOG2_U32
134         bool
135
136 config ARCH_HAS_ILOG2_U64
137         bool
138
139 config ARCH_HAS_CPUFREQ
140         bool
141         help
142           Internal node to signify that the ARCH has CPUFREQ support
143           and that the relevant menu configurations are displayed for
144           it.
145
146 config GENERIC_HWEIGHT
147         bool
148         default y
149
150 config GENERIC_CALIBRATE_DELAY
151         bool
152         default y
153
154 config ARCH_MAY_HAVE_PC_FDC
155         bool
156
157 config ZONE_DMA
158         bool
159
160 config NEED_DMA_MAP_STATE
161        def_bool y
162
163 config GENERIC_ISA_DMA
164         bool
165
166 config FIQ
167         bool
168
169 config ARCH_MTD_XIP
170         bool
171
172 config GENERIC_HARDIRQS_NO__DO_IRQ
173         def_bool y
174
175 config ARM_L1_CACHE_SHIFT_6
176         bool
177         help
178           Setting ARM L1 cache line size to 64 Bytes.
179
180 config VECTORS_BASE
181         hex
182         default 0xffff0000 if MMU || CPU_HIGH_VECTOR
183         default DRAM_BASE if REMAP_VECTORS_TO_RAM
184         default 0x00000000
185         help
186           The base address of exception vectors.
187
188 source "init/Kconfig"
189
190 source "kernel/Kconfig.freezer"
191
192 menu "System Type"
193
194 config MMU
195         bool "MMU-based Paged Memory Management Support"
196         default y
197         help
198           Select if you want MMU-based virtualised addressing space
199           support by paged memory management. If unsure, say 'Y'.
200
201 #
202 # The "ARM system type" choice list is ordered alphabetically by option
203 # text.  Please add new entries in the option alphabetic order.
204 #
205 choice
206         prompt "ARM system type"
207         default ARCH_VERSATILE
208
209 config ARCH_AAEC2000
210         bool "Agilent AAEC-2000 based"
211         select CPU_ARM920T
212         select ARM_AMBA
213         select HAVE_CLK
214         select ARCH_USES_GETTIMEOFFSET
215         help
216           This enables support for systems based on the Agilent AAEC-2000
217
218 config ARCH_INTEGRATOR
219         bool "ARM Ltd. Integrator family"
220         select ARM_AMBA
221         select ARCH_HAS_CPUFREQ
222         select COMMON_CLKDEV
223         select ICST
224         select GENERIC_CLOCKEVENTS
225         select PLAT_VERSATILE
226         help
227           Support for ARM's Integrator platform.
228
229 config ARCH_REALVIEW
230         bool "ARM Ltd. RealView family"
231         select ARM_AMBA
232         select COMMON_CLKDEV
233         select ICST
234         select GENERIC_CLOCKEVENTS
235         select ARCH_WANT_OPTIONAL_GPIOLIB
236         select PLAT_VERSATILE
237         select ARM_TIMER_SP804
238         select GPIO_PL061 if GPIOLIB
239         help
240           This enables support for ARM Ltd RealView boards.
241
242 config ARCH_VERSATILE
243         bool "ARM Ltd. Versatile family"
244         select ARM_AMBA
245         select ARM_VIC
246         select COMMON_CLKDEV
247         select ICST
248         select GENERIC_CLOCKEVENTS
249         select ARCH_WANT_OPTIONAL_GPIOLIB
250         select PLAT_VERSATILE
251         select ARM_TIMER_SP804
252         help
253           This enables support for ARM Ltd Versatile board.
254
255 config ARCH_VEXPRESS
256         bool "ARM Ltd. Versatile Express family"
257         select ARCH_WANT_OPTIONAL_GPIOLIB
258         select ARM_AMBA
259         select ARM_TIMER_SP804
260         select COMMON_CLKDEV
261         select GENERIC_CLOCKEVENTS
262         select HAVE_CLK
263         select ICST
264         select PLAT_VERSATILE
265         help
266           This enables support for the ARM Ltd Versatile Express boards.
267
268 config ARCH_AT91
269         bool "Atmel AT91"
270         select ARCH_REQUIRE_GPIOLIB
271         select HAVE_CLK
272         select ARCH_USES_GETTIMEOFFSET
273         help
274           This enables support for systems based on the Atmel AT91RM9200,
275           AT91SAM9 and AT91CAP9 processors.
276
277 config ARCH_BCMRING
278         bool "Broadcom BCMRING"
279         depends on MMU
280         select CPU_V6
281         select ARM_AMBA
282         select COMMON_CLKDEV
283         select GENERIC_CLOCKEVENTS
284         select ARCH_WANT_OPTIONAL_GPIOLIB
285         help
286           Support for Broadcom's BCMRing platform.
287
288 config ARCH_CLPS711X
289         bool "Cirrus Logic CLPS711x/EP721x-based"
290         select CPU_ARM720T
291         select ARCH_USES_GETTIMEOFFSET
292         help
293           Support for Cirrus Logic 711x/721x based boards.
294
295 config ARCH_CNS3XXX
296         bool "Cavium Networks CNS3XXX family"
297         select CPU_V6
298         select GENERIC_CLOCKEVENTS
299         select ARM_GIC
300         help
301           Support for Cavium Networks CNS3XXX platform.
302
303 config ARCH_GEMINI
304         bool "Cortina Systems Gemini"
305         select CPU_FA526
306         select ARCH_REQUIRE_GPIOLIB
307         select ARCH_USES_GETTIMEOFFSET
308         help
309           Support for the Cortina Systems Gemini family SoCs
310
311 config ARCH_EBSA110
312         bool "EBSA-110"
313         select CPU_SA110
314         select ISA
315         select NO_IOPORT
316         select ARCH_USES_GETTIMEOFFSET
317         help
318           This is an evaluation board for the StrongARM processor available
319           from Digital. It has limited hardware on-board, including an
320           Ethernet interface, two PCMCIA sockets, two serial ports and a
321           parallel port.
322
323 config ARCH_EP93XX
324         bool "EP93xx-based"
325         select CPU_ARM920T
326         select ARM_AMBA
327         select ARM_VIC
328         select COMMON_CLKDEV
329         select ARCH_REQUIRE_GPIOLIB
330         select ARCH_HAS_HOLES_MEMORYMODEL
331         select ARCH_USES_GETTIMEOFFSET
332         help
333           This enables support for the Cirrus EP93xx series of CPUs.
334
335 config ARCH_FOOTBRIDGE
336         bool "FootBridge"
337         select CPU_SA110
338         select FOOTBRIDGE
339         select ARCH_USES_GETTIMEOFFSET
340         help
341           Support for systems based on the DC21285 companion chip
342           ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
343
344 config ARCH_MXC
345         bool "Freescale MXC/iMX-based"
346         select GENERIC_CLOCKEVENTS
347         select ARCH_REQUIRE_GPIOLIB
348         select COMMON_CLKDEV
349         help
350           Support for Freescale MXC/iMX-based family of processors
351
352 config ARCH_STMP3XXX
353         bool "Freescale STMP3xxx"
354         select CPU_ARM926T
355         select COMMON_CLKDEV
356         select ARCH_REQUIRE_GPIOLIB
357         select GENERIC_CLOCKEVENTS
358         select USB_ARCH_HAS_EHCI
359         help
360           Support for systems based on the Freescale 3xxx CPUs.
361
362 config ARCH_NETX
363         bool "Hilscher NetX based"
364         select CPU_ARM926T
365         select ARM_VIC
366         select GENERIC_CLOCKEVENTS
367         help
368           This enables support for systems based on the Hilscher NetX Soc
369
370 config ARCH_H720X
371         bool "Hynix HMS720x-based"
372         select CPU_ARM720T
373         select ISA_DMA_API
374         select ARCH_USES_GETTIMEOFFSET
375         help
376           This enables support for systems based on the Hynix HMS720x
377
378 config ARCH_IOP13XX
379         bool "IOP13xx-based"
380         depends on MMU
381         select CPU_XSC3
382         select PLAT_IOP
383         select PCI
384         select ARCH_SUPPORTS_MSI
385         select VMSPLIT_1G
386         help
387           Support for Intel's IOP13XX (XScale) family of processors.
388
389 config ARCH_IOP32X
390         bool "IOP32x-based"
391         depends on MMU
392         select CPU_XSCALE
393         select PLAT_IOP
394         select PCI
395         select ARCH_REQUIRE_GPIOLIB
396         help
397           Support for Intel's 80219 and IOP32X (XScale) family of
398           processors.
399
400 config ARCH_IOP33X
401         bool "IOP33x-based"
402         depends on MMU
403         select CPU_XSCALE
404         select PLAT_IOP
405         select PCI
406         select ARCH_REQUIRE_GPIOLIB
407         help
408           Support for Intel's IOP33X (XScale) family of processors.
409
410 config ARCH_IXP23XX
411         bool "IXP23XX-based"
412         depends on MMU
413         select CPU_XSC3
414         select PCI
415         select ARCH_USES_GETTIMEOFFSET
416         help
417           Support for Intel's IXP23xx (XScale) family of processors.
418
419 config ARCH_IXP2000
420         bool "IXP2400/2800-based"
421         depends on MMU
422         select CPU_XSCALE
423         select PCI
424         select ARCH_USES_GETTIMEOFFSET
425         help
426           Support for Intel's IXP2400/2800 (XScale) family of processors.
427
428 config ARCH_IXP4XX
429         bool "IXP4xx-based"
430         depends on MMU
431         select CPU_XSCALE
432         select GENERIC_GPIO
433         select GENERIC_CLOCKEVENTS
434         select DMABOUNCE if PCI
435         help
436           Support for Intel's IXP4XX (XScale) family of processors.
437
438 config ARCH_L7200
439         bool "LinkUp-L7200"
440         select CPU_ARM720T
441         select FIQ
442         select ARCH_USES_GETTIMEOFFSET
443         help
444           Say Y here if you intend to run this kernel on a LinkUp Systems
445           L7200 Software Development Board which uses an ARM720T processor.
446           Information on this board can be obtained at:
447
448           <http://www.linkupsys.com/>
449
450           If you have any questions or comments about the Linux kernel port
451           to this board, send e-mail to <sjhill@cotw.com>.
452
453 config ARCH_DOVE
454         bool "Marvell Dove"
455         select PCI
456         select ARCH_REQUIRE_GPIOLIB
457         select GENERIC_CLOCKEVENTS
458         select PLAT_ORION
459         help
460           Support for the Marvell Dove SoC 88AP510
461
462 config ARCH_KIRKWOOD
463         bool "Marvell Kirkwood"
464         select CPU_FEROCEON
465         select PCI
466         select ARCH_REQUIRE_GPIOLIB
467         select GENERIC_CLOCKEVENTS
468         select PLAT_ORION
469         help
470           Support for the following Marvell Kirkwood series SoCs:
471           88F6180, 88F6192 and 88F6281.
472
473 config ARCH_LOKI
474         bool "Marvell Loki (88RC8480)"
475         select CPU_FEROCEON
476         select GENERIC_CLOCKEVENTS
477         select PLAT_ORION
478         help
479           Support for the Marvell Loki (88RC8480) SoC.
480
481 config ARCH_MV78XX0
482         bool "Marvell MV78xx0"
483         select CPU_FEROCEON
484         select PCI
485         select ARCH_REQUIRE_GPIOLIB
486         select GENERIC_CLOCKEVENTS
487         select PLAT_ORION
488         help
489           Support for the following Marvell MV78xx0 series SoCs:
490           MV781x0, MV782x0.
491
492 config ARCH_ORION5X
493         bool "Marvell Orion"
494         depends on MMU
495         select CPU_FEROCEON
496         select PCI
497         select ARCH_REQUIRE_GPIOLIB
498         select GENERIC_CLOCKEVENTS
499         select PLAT_ORION
500         help
501           Support for the following Marvell Orion 5x series SoCs:
502           Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
503           Orion-2 (5281), Orion-1-90 (6183).
504
505 config ARCH_MMP
506         bool "Marvell PXA168/910/MMP2"
507         depends on MMU
508         select ARCH_REQUIRE_GPIOLIB
509         select COMMON_CLKDEV
510         select GENERIC_CLOCKEVENTS
511         select TICK_ONESHOT
512         select PLAT_PXA
513         help
514           Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
515
516 config ARCH_KS8695
517         bool "Micrel/Kendin KS8695"
518         select CPU_ARM922T
519         select ARCH_REQUIRE_GPIOLIB
520         select ARCH_USES_GETTIMEOFFSET
521         help
522           Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
523           System-on-Chip devices.
524
525 config ARCH_NS9XXX
526         bool "NetSilicon NS9xxx"
527         select CPU_ARM926T
528         select GENERIC_GPIO
529         select GENERIC_CLOCKEVENTS
530         select HAVE_CLK
531         help
532           Say Y here if you intend to run this kernel on a NetSilicon NS9xxx
533           System.
534
535           <http://www.digi.com/products/microprocessors/index.jsp>
536
537 config ARCH_W90X900
538         bool "Nuvoton W90X900 CPU"
539         select CPU_ARM926T
540         select ARCH_REQUIRE_GPIOLIB
541         select COMMON_CLKDEV
542         select GENERIC_CLOCKEVENTS
543         help
544           Support for Nuvoton (Winbond logic dept.) ARM9 processor,
545           At present, the w90x900 has been renamed nuc900, regarding
546           the ARM series product line, you can login the following
547           link address to know more.
548
549           <http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/
550                 ConsumerElectronicsIC/ARMMicrocontroller/ARMMicrocontroller>
551
552 config ARCH_NUC93X
553         bool "Nuvoton NUC93X CPU"
554         select CPU_ARM926T
555         select COMMON_CLKDEV
556         help
557           Support for Nuvoton (Winbond logic dept.) NUC93X MCU,The NUC93X is a
558           low-power and high performance MPEG-4/JPEG multimedia controller chip.
559
560 config ARCH_PNX4008
561         bool "Philips Nexperia PNX4008 Mobile"
562         select CPU_ARM926T
563         select COMMON_CLKDEV
564         select ARCH_USES_GETTIMEOFFSET
565         help
566           This enables support for Philips PNX4008 mobile platform.
567
568 config ARCH_PXA
569         bool "PXA2xx/PXA3xx-based"
570         depends on MMU
571         select ARCH_MTD_XIP
572         select ARCH_HAS_CPUFREQ
573         select COMMON_CLKDEV
574         select ARCH_REQUIRE_GPIOLIB
575         select GENERIC_CLOCKEVENTS
576         select TICK_ONESHOT
577         select PLAT_PXA
578         help
579           Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
580
581 config ARCH_MSM
582         bool "Qualcomm MSM"
583         select HAVE_CLK
584         select GENERIC_CLOCKEVENTS
585         help
586           Support for Qualcomm MSM/QSD based systems.  This runs on the
587           apps processor of the MSM/QSD and depends on a shared memory
588           interface to the modem processor which runs the baseband
589           stack and controls some vital subsystems
590           (clock and power control, etc).
591
592 config ARCH_SHMOBILE
593         bool "Renesas SH-Mobile"
594         help
595           Support for Renesas's SH-Mobile ARM platforms
596
597 config ARCH_RPC
598         bool "RiscPC"
599         select ARCH_ACORN
600         select FIQ
601         select TIMER_ACORN
602         select ARCH_MAY_HAVE_PC_FDC
603         select HAVE_PATA_PLATFORM
604         select ISA_DMA_API
605         select NO_IOPORT
606         select ARCH_SPARSEMEM_ENABLE
607         select ARCH_USES_GETTIMEOFFSET
608         help
609           On the Acorn Risc-PC, Linux can support the internal IDE disk and
610           CD-ROM interface, serial and parallel port, and the floppy drive.
611
612 config ARCH_SA1100
613         bool "SA1100-based"
614         select CPU_SA1100
615         select ISA
616         select ARCH_SPARSEMEM_ENABLE
617         select ARCH_MTD_XIP
618         select ARCH_HAS_CPUFREQ
619         select CPU_FREQ
620         select GENERIC_CLOCKEVENTS
621         select HAVE_CLK
622         select TICK_ONESHOT
623         select ARCH_REQUIRE_GPIOLIB
624         help
625           Support for StrongARM 11x0 based boards.
626
627 config ARCH_S3C2410
628         bool "Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443, S3C2450"
629         select GENERIC_GPIO
630         select ARCH_HAS_CPUFREQ
631         select HAVE_CLK
632         select ARCH_USES_GETTIMEOFFSET
633         help
634           Samsung S3C2410X CPU based systems, such as the Simtec Electronics
635           BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
636           the Samsung SMDK2410 development board (and derivatives).
637
638           Note, the S3C2416 and the S3C2450 are so close that they even share
639           the same SoC ID code. This means that there is no seperate machine
640           directory (no arch/arm/mach-s3c2450) as the S3C2416 was first.
641
642 config ARCH_S3C64XX
643         bool "Samsung S3C64XX"
644         select PLAT_SAMSUNG
645         select CPU_V6
646         select ARM_VIC
647         select HAVE_CLK
648         select NO_IOPORT
649         select ARCH_USES_GETTIMEOFFSET
650         select ARCH_HAS_CPUFREQ
651         select ARCH_REQUIRE_GPIOLIB
652         select SAMSUNG_CLKSRC
653         select SAMSUNG_IRQ_VIC_TIMER
654         select SAMSUNG_IRQ_UART
655         select S3C_GPIO_TRACK
656         select S3C_GPIO_PULL_UPDOWN
657         select S3C_GPIO_CFG_S3C24XX
658         select S3C_GPIO_CFG_S3C64XX
659         select S3C_DEV_NAND
660         select USB_ARCH_HAS_OHCI
661         select SAMSUNG_GPIOLIB_4BIT
662         help
663           Samsung S3C64XX series based systems
664
665 config ARCH_S5P6440
666         bool "Samsung S5P6440"
667         select CPU_V6
668         select GENERIC_GPIO
669         select HAVE_CLK
670         select ARCH_USES_GETTIMEOFFSET
671         help
672           Samsung S5P6440 CPU based systems
673
674 config ARCH_S5P6442
675         bool "Samsung S5P6442"
676         select CPU_V6
677         select GENERIC_GPIO
678         select HAVE_CLK
679         select ARCH_USES_GETTIMEOFFSET
680         help
681           Samsung S5P6442 CPU based systems
682
683 config ARCH_S5PC100
684         bool "Samsung S5PC100"
685         select GENERIC_GPIO
686         select HAVE_CLK
687         select CPU_V7
688         select ARM_L1_CACHE_SHIFT_6
689         select ARCH_USES_GETTIMEOFFSET
690         help
691           Samsung S5PC100 series based systems
692
693 config ARCH_S5PV210
694         bool "Samsung S5PV210/S5PC110"
695         select CPU_V7
696         select GENERIC_GPIO
697         select HAVE_CLK
698         select ARM_L1_CACHE_SHIFT_6
699         select ARCH_USES_GETTIMEOFFSET
700         help
701           Samsung S5PV210/S5PC110 series based systems
702
703 config ARCH_SHARK
704         bool "Shark"
705         select CPU_SA110
706         select ISA
707         select ISA_DMA
708         select ZONE_DMA
709         select PCI
710         select ARCH_USES_GETTIMEOFFSET
711         help
712           Support for the StrongARM based Digital DNARD machine, also known
713           as "Shark" (<http://www.shark-linux.de/shark.html>).
714
715 config ARCH_LH7A40X
716         bool "Sharp LH7A40X"
717         select CPU_ARM922T
718         select ARCH_DISCONTIGMEM_ENABLE if !LH7A40X_CONTIGMEM
719         select ARCH_SPARSEMEM_ENABLE if !LH7A40X_CONTIGMEM
720         select ARCH_USES_GETTIMEOFFSET
721         help
722           Say Y here for systems based on one of the Sharp LH7A40X
723           System on a Chip processors.  These CPUs include an ARM922T
724           core with a wide array of integrated devices for
725           hand-held and low-power applications.
726
727 config ARCH_U300
728         bool "ST-Ericsson U300 Series"
729         depends on MMU
730         select CPU_ARM926T
731         select HAVE_TCM
732         select ARM_AMBA
733         select ARM_VIC
734         select GENERIC_CLOCKEVENTS
735         select COMMON_CLKDEV
736         select GENERIC_GPIO
737         help
738           Support for ST-Ericsson U300 series mobile platforms.
739
740 config ARCH_U8500
741         bool "ST-Ericsson U8500 Series"
742         select CPU_V7
743         select ARM_AMBA
744         select GENERIC_CLOCKEVENTS
745         select COMMON_CLKDEV
746         select ARCH_REQUIRE_GPIOLIB
747         help
748           Support for ST-Ericsson's Ux500 architecture
749
750 config ARCH_NOMADIK
751         bool "STMicroelectronics Nomadik"
752         select ARM_AMBA
753         select ARM_VIC
754         select CPU_ARM926T
755         select COMMON_CLKDEV
756         select GENERIC_CLOCKEVENTS
757         select ARCH_REQUIRE_GPIOLIB
758         help
759           Support for the Nomadik platform by ST-Ericsson
760
761 config ARCH_DAVINCI
762         bool "TI DaVinci"
763         select GENERIC_CLOCKEVENTS
764         select ARCH_REQUIRE_GPIOLIB
765         select ZONE_DMA
766         select HAVE_IDE
767         select COMMON_CLKDEV
768         select GENERIC_ALLOCATOR
769         select ARCH_HAS_HOLES_MEMORYMODEL
770         help
771           Support for TI's DaVinci platform.
772
773 config ARCH_OMAP
774         bool "TI OMAP"
775         select HAVE_CLK
776         select ARCH_REQUIRE_GPIOLIB
777         select ARCH_HAS_CPUFREQ
778         select GENERIC_CLOCKEVENTS
779         select ARCH_HAS_HOLES_MEMORYMODEL
780         help
781           Support for TI's OMAP platform (OMAP1 and OMAP2).
782
783 config PLAT_SPEAR
784         bool "ST SPEAr"
785         select ARM_AMBA
786         select ARCH_REQUIRE_GPIOLIB
787         select COMMON_CLKDEV
788         select GENERIC_CLOCKEVENTS
789         select HAVE_CLK
790         help
791           Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx).
792
793 endchoice
794
795 #
796 # This is sorted alphabetically by mach-* pathname.  However, plat-*
797 # Kconfigs may be included either alphabetically (according to the
798 # plat- suffix) or along side the corresponding mach-* source.
799 #
800 source "arch/arm/mach-aaec2000/Kconfig"
801
802 source "arch/arm/mach-at91/Kconfig"
803
804 source "arch/arm/mach-bcmring/Kconfig"
805
806 source "arch/arm/mach-clps711x/Kconfig"
807
808 source "arch/arm/mach-cns3xxx/Kconfig"
809
810 source "arch/arm/mach-davinci/Kconfig"
811
812 source "arch/arm/mach-dove/Kconfig"
813
814 source "arch/arm/mach-ep93xx/Kconfig"
815
816 source "arch/arm/mach-footbridge/Kconfig"
817
818 source "arch/arm/mach-gemini/Kconfig"
819
820 source "arch/arm/mach-h720x/Kconfig"
821
822 source "arch/arm/mach-integrator/Kconfig"
823
824 source "arch/arm/mach-iop32x/Kconfig"
825
826 source "arch/arm/mach-iop33x/Kconfig"
827
828 source "arch/arm/mach-iop13xx/Kconfig"
829
830 source "arch/arm/mach-ixp4xx/Kconfig"
831
832 source "arch/arm/mach-ixp2000/Kconfig"
833
834 source "arch/arm/mach-ixp23xx/Kconfig"
835
836 source "arch/arm/mach-kirkwood/Kconfig"
837
838 source "arch/arm/mach-ks8695/Kconfig"
839
840 source "arch/arm/mach-lh7a40x/Kconfig"
841
842 source "arch/arm/mach-loki/Kconfig"
843
844 source "arch/arm/mach-msm/Kconfig"
845
846 source "arch/arm/mach-mv78xx0/Kconfig"
847
848 source "arch/arm/plat-mxc/Kconfig"
849
850 source "arch/arm/mach-netx/Kconfig"
851
852 source "arch/arm/mach-nomadik/Kconfig"
853 source "arch/arm/plat-nomadik/Kconfig"
854
855 source "arch/arm/mach-ns9xxx/Kconfig"
856
857 source "arch/arm/mach-nuc93x/Kconfig"
858
859 source "arch/arm/plat-omap/Kconfig"
860
861 source "arch/arm/mach-omap1/Kconfig"
862
863 source "arch/arm/mach-omap2/Kconfig"
864
865 source "arch/arm/mach-orion5x/Kconfig"
866
867 source "arch/arm/mach-pxa/Kconfig"
868 source "arch/arm/plat-pxa/Kconfig"
869
870 source "arch/arm/mach-mmp/Kconfig"
871
872 source "arch/arm/mach-realview/Kconfig"
873
874 source "arch/arm/mach-sa1100/Kconfig"
875
876 source "arch/arm/plat-samsung/Kconfig"
877 source "arch/arm/plat-s3c24xx/Kconfig"
878 source "arch/arm/plat-s5p/Kconfig"
879
880 source "arch/arm/plat-spear/Kconfig"
881
882 if ARCH_S3C2410
883 source "arch/arm/mach-s3c2400/Kconfig"
884 source "arch/arm/mach-s3c2410/Kconfig"
885 source "arch/arm/mach-s3c2412/Kconfig"
886 source "arch/arm/mach-s3c2416/Kconfig"
887 source "arch/arm/mach-s3c2440/Kconfig"
888 source "arch/arm/mach-s3c2443/Kconfig"
889 endif
890
891 if ARCH_S3C64XX
892 source "arch/arm/mach-s3c64xx/Kconfig"
893 endif
894
895 source "arch/arm/mach-s5p6440/Kconfig"
896
897 source "arch/arm/mach-s5p6442/Kconfig"
898
899 source "arch/arm/mach-s5pc100/Kconfig"
900
901 source "arch/arm/mach-s5pv210/Kconfig"
902
903 source "arch/arm/mach-shmobile/Kconfig"
904
905 source "arch/arm/plat-stmp3xxx/Kconfig"
906
907 source "arch/arm/mach-u300/Kconfig"
908
909 source "arch/arm/mach-ux500/Kconfig"
910
911 source "arch/arm/mach-versatile/Kconfig"
912
913 source "arch/arm/mach-vexpress/Kconfig"
914
915 source "arch/arm/mach-w90x900/Kconfig"
916
917 # Definitions to make life easier
918 config ARCH_ACORN
919         bool
920
921 config PLAT_IOP
922         bool
923         select GENERIC_CLOCKEVENTS
924
925 config PLAT_ORION
926         bool
927
928 config PLAT_PXA
929         bool
930
931 config PLAT_VERSATILE
932         bool
933
934 config ARM_TIMER_SP804
935         bool
936
937 source arch/arm/mm/Kconfig
938
939 config IWMMXT
940         bool "Enable iWMMXt support"
941         depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK
942         default y if PXA27x || PXA3xx || ARCH_MMP
943         help
944           Enable support for iWMMXt context switching at run time if
945           running on a CPU that supports it.
946
947 #  bool 'Use XScale PMU as timer source' CONFIG_XSCALE_PMU_TIMER
948 config XSCALE_PMU
949         bool
950         depends on CPU_XSCALE && !XSCALE_PMU_TIMER
951         default y
952
953 config CPU_HAS_PMU
954         depends on (CPU_V6 || CPU_V7 || XSCALE_PMU) && \
955                    (!ARCH_OMAP3 || OMAP3_EMU)
956         default y
957         bool
958
959 if !MMU
960 source "arch/arm/Kconfig-nommu"
961 endif
962
963 config ARM_ERRATA_411920
964         bool "ARM errata: Invalidation of the Instruction Cache operation can fail"
965         depends on CPU_V6 && !SMP
966         help
967           Invalidation of the Instruction Cache operation can
968           fail. This erratum is present in 1136 (before r1p4), 1156 and 1176.
969           It does not affect the MPCore. This option enables the ARM Ltd.
970           recommended workaround.
971
972 config ARM_ERRATA_430973
973         bool "ARM errata: Stale prediction on replaced interworking branch"
974         depends on CPU_V7
975         help
976           This option enables the workaround for the 430973 Cortex-A8
977           (r1p0..r1p2) erratum. If a code sequence containing an ARM/Thumb
978           interworking branch is replaced with another code sequence at the
979           same virtual address, whether due to self-modifying code or virtual
980           to physical address re-mapping, Cortex-A8 does not recover from the
981           stale interworking branch prediction. This results in Cortex-A8
982           executing the new code sequence in the incorrect ARM or Thumb state.
983           The workaround enables the BTB/BTAC operations by setting ACTLR.IBE
984           and also flushes the branch target cache at every context switch.
985           Note that setting specific bits in the ACTLR register may not be
986           available in non-secure mode.
987
988 config ARM_ERRATA_458693
989         bool "ARM errata: Processor deadlock when a false hazard is created"
990         depends on CPU_V7
991         help
992           This option enables the workaround for the 458693 Cortex-A8 (r2p0)
993           erratum. For very specific sequences of memory operations, it is
994           possible for a hazard condition intended for a cache line to instead
995           be incorrectly associated with a different cache line. This false
996           hazard might then cause a processor deadlock. The workaround enables
997           the L1 caching of the NEON accesses and disables the PLD instruction
998           in the ACTLR register. Note that setting specific bits in the ACTLR
999           register may not be available in non-secure mode.
1000
1001 config ARM_ERRATA_460075
1002         bool "ARM errata: Data written to the L2 cache can be overwritten with stale data"
1003         depends on CPU_V7
1004         help
1005           This option enables the workaround for the 460075 Cortex-A8 (r2p0)
1006           erratum. Any asynchronous access to the L2 cache may encounter a
1007           situation in which recent store transactions to the L2 cache are lost
1008           and overwritten with stale memory contents from external memory. The
1009           workaround disables the write-allocate mode for the L2 cache via the
1010           ACTLR register. Note that setting specific bits in the ACTLR register
1011           may not be available in non-secure mode.
1012
1013 config PL310_ERRATA_588369
1014         bool "Clean & Invalidate maintenance operations do not invalidate clean lines"
1015         depends on CACHE_L2X0 && ARCH_OMAP4
1016         help
1017            The PL310 L2 cache controller implements three types of Clean &
1018            Invalidate maintenance operations: by Physical Address
1019            (offset 0x7F0), by Index/Way (0x7F8) and by Way (0x7FC).
1020            They are architecturally defined to behave as the execution of a
1021            clean operation followed immediately by an invalidate operation,
1022            both performing to the same memory location. This functionality
1023            is not correctly implemented in PL310 as clean lines are not
1024            invalidated as a result of these operations. Note that this errata
1025            uses Texas Instrument's secure monitor api.
1026 endmenu
1027
1028 source "arch/arm/common/Kconfig"
1029
1030 config FORCE_MAX_ZONEORDER
1031         int
1032         depends on SA1111
1033         default "9"
1034
1035 menu "Bus support"
1036
1037 config ARM_AMBA
1038         bool
1039
1040 config ISA
1041         bool
1042         help
1043           Find out whether you have ISA slots on your motherboard.  ISA is the
1044           name of a bus system, i.e. the way the CPU talks to the other stuff
1045           inside your box.  Other bus systems are PCI, EISA, MicroChannel
1046           (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
1047           newer boards don't support it.  If you have ISA, say Y, otherwise N.
1048
1049 # Select ISA DMA controller support
1050 config ISA_DMA
1051         bool
1052         select ISA_DMA_API
1053
1054 # Select ISA DMA interface
1055 config ISA_DMA_API
1056         bool
1057
1058 config PCI
1059         bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE
1060         help
1061           Find out whether you have a PCI motherboard. PCI is the name of a
1062           bus system, i.e. the way the CPU talks to the other stuff inside
1063           your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
1064           VESA. If you have PCI, say Y, otherwise N.
1065
1066 config PCI_DOMAINS
1067         bool
1068         depends on PCI
1069
1070 config PCI_SYSCALL
1071         def_bool PCI
1072
1073 # Select the host bridge type
1074 config PCI_HOST_VIA82C505
1075         bool
1076         depends on PCI && ARCH_SHARK
1077         default y
1078
1079 config PCI_HOST_ITE8152
1080         bool
1081         depends on PCI && MACH_ARMCORE
1082         default y
1083         select DMABOUNCE
1084
1085 source "drivers/pci/Kconfig"
1086
1087 source "drivers/pcmcia/Kconfig"
1088
1089 endmenu
1090
1091 menu "Kernel Features"
1092
1093 source "kernel/time/Kconfig"
1094
1095 config SMP
1096         bool "Symmetric Multi-Processing (EXPERIMENTAL)"
1097         depends on EXPERIMENTAL && (REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP ||\
1098                  MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 ||\
1099                  ARCH_U8500 || ARCH_VEXPRESS_CA9X4)
1100         depends on GENERIC_CLOCKEVENTS
1101         select USE_GENERIC_SMP_HELPERS
1102         select HAVE_ARM_SCU if (ARCH_REALVIEW || ARCH_OMAP4 || ARCH_U8500 || ARCH_VEXPRESS_CA9X4)
1103         help
1104           This enables support for systems with more than one CPU. If you have
1105           a system with only one CPU, like most personal computers, say N. If
1106           you have a system with more than one CPU, say Y.
1107
1108           If you say N here, the kernel will run on single and multiprocessor
1109           machines, but will use only one CPU of a multiprocessor machine. If
1110           you say Y here, the kernel will run on many, but not all, single
1111           processor machines. On a single processor machine, the kernel will
1112           run faster if you say N here.
1113
1114           See also <file:Documentation/i386/IO-APIC.txt>,
1115           <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
1116           <http://www.linuxdoc.org/docs.html#howto>.
1117
1118           If you don't know what to do here, say N.
1119
1120 config HAVE_ARM_SCU
1121         bool
1122         depends on SMP
1123         help
1124           This option enables support for the ARM system coherency unit
1125
1126 config HAVE_ARM_TWD
1127         bool
1128         depends on SMP
1129         help
1130           This options enables support for the ARM timer and watchdog unit
1131
1132 choice
1133         prompt "Memory split"
1134         default VMSPLIT_3G
1135         help
1136           Select the desired split between kernel and user memory.
1137
1138           If you are not absolutely sure what you are doing, leave this
1139           option alone!
1140
1141         config VMSPLIT_3G
1142                 bool "3G/1G user/kernel split"
1143         config VMSPLIT_2G
1144                 bool "2G/2G user/kernel split"
1145         config VMSPLIT_1G
1146                 bool "1G/3G user/kernel split"
1147 endchoice
1148
1149 config PAGE_OFFSET
1150         hex
1151         default 0x40000000 if VMSPLIT_1G
1152         default 0x80000000 if VMSPLIT_2G
1153         default 0xC0000000
1154
1155 config NR_CPUS
1156         int "Maximum number of CPUs (2-32)"
1157         range 2 32
1158         depends on SMP
1159         default "4"
1160
1161 config HOTPLUG_CPU
1162         bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
1163         depends on SMP && HOTPLUG && EXPERIMENTAL
1164         help
1165           Say Y here to experiment with turning CPUs off and on.  CPUs
1166           can be controlled through /sys/devices/system/cpu.
1167
1168 config LOCAL_TIMERS
1169         bool "Use local timer interrupts"
1170         depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || \
1171                 REALVIEW_EB_A9MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || ARCH_U8500)
1172         default y
1173         select HAVE_ARM_TWD if (ARCH_REALVIEW || ARCH_OMAP4 || ARCH_U8500)
1174         help
1175           Enable support for local timers on SMP platforms, rather then the
1176           legacy IPI broadcast method.  Local timers allows the system
1177           accounting to be spread across the timer interval, preventing a
1178           "thundering herd" at every timer tick.
1179
1180 source kernel/Kconfig.preempt
1181
1182 config HZ
1183         int
1184         default 128 if ARCH_L7200
1185         default 200 if ARCH_EBSA110 || ARCH_S3C2410 || ARCH_S5P6440 || ARCH_S5P6442 || ARCH_S5PV210
1186         default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
1187         default AT91_TIMER_HZ if ARCH_AT91
1188         default 100
1189
1190 config THUMB2_KERNEL
1191         bool "Compile the kernel in Thumb-2 mode"
1192         depends on CPU_V7 && EXPERIMENTAL
1193         select AEABI
1194         select ARM_ASM_UNIFIED
1195         help
1196           By enabling this option, the kernel will be compiled in
1197           Thumb-2 mode. A compiler/assembler that understand the unified
1198           ARM-Thumb syntax is needed.
1199
1200           If unsure, say N.
1201
1202 config ARM_ASM_UNIFIED
1203         bool
1204
1205 config AEABI
1206         bool "Use the ARM EABI to compile the kernel"
1207         help
1208           This option allows for the kernel to be compiled using the latest
1209           ARM ABI (aka EABI).  This is only useful if you are using a user
1210           space environment that is also compiled with EABI.
1211
1212           Since there are major incompatibilities between the legacy ABI and
1213           EABI, especially with regard to structure member alignment, this
1214           option also changes the kernel syscall calling convention to
1215           disambiguate both ABIs and allow for backward compatibility support
1216           (selected with CONFIG_OABI_COMPAT).
1217
1218           To use this you need GCC version 4.0.0 or later.
1219
1220 config OABI_COMPAT
1221         bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)"
1222         depends on AEABI && EXPERIMENTAL
1223         default y
1224         help
1225           This option preserves the old syscall interface along with the
1226           new (ARM EABI) one. It also provides a compatibility layer to
1227           intercept syscalls that have structure arguments which layout
1228           in memory differs between the legacy ABI and the new ARM EABI
1229           (only for non "thumb" binaries). This option adds a tiny
1230           overhead to all syscalls and produces a slightly larger kernel.
1231           If you know you'll be using only pure EABI user space then you
1232           can say N here. If this option is not selected and you attempt
1233           to execute a legacy ABI binary then the result will be
1234           UNPREDICTABLE (in fact it can be predicted that it won't work
1235           at all). If in doubt say Y.
1236
1237 config ARCH_HAS_HOLES_MEMORYMODEL
1238         bool
1239
1240 # Discontigmem is deprecated
1241 config ARCH_DISCONTIGMEM_ENABLE
1242         bool
1243
1244 config ARCH_SPARSEMEM_ENABLE
1245         bool
1246
1247 config ARCH_SPARSEMEM_DEFAULT
1248         def_bool ARCH_SPARSEMEM_ENABLE
1249
1250 config ARCH_SELECT_MEMORY_MODEL
1251         def_bool ARCH_DISCONTIGMEM_ENABLE && ARCH_SPARSEMEM_ENABLE
1252
1253 config NODES_SHIFT
1254         int
1255         default "4" if ARCH_LH7A40X
1256         default "2"
1257         depends on NEED_MULTIPLE_NODES
1258
1259 config HIGHMEM
1260         bool "High Memory Support (EXPERIMENTAL)"
1261         depends on MMU && EXPERIMENTAL
1262         help
1263           The address space of ARM processors is only 4 Gigabytes large
1264           and it has to accommodate user address space, kernel address
1265           space as well as some memory mapped IO. That means that, if you
1266           have a large amount of physical memory and/or IO, not all of the
1267           memory can be "permanently mapped" by the kernel. The physical
1268           memory that is not permanently mapped is called "high memory".
1269
1270           Depending on the selected kernel/user memory split, minimum
1271           vmalloc space and actual amount of RAM, you may not need this
1272           option which should result in a slightly faster kernel.
1273
1274           If unsure, say n.
1275
1276 config HIGHPTE
1277         bool "Allocate 2nd-level pagetables from highmem"
1278         depends on HIGHMEM
1279         depends on !OUTER_CACHE
1280
1281 config HW_PERF_EVENTS
1282         bool "Enable hardware performance counter support for perf events"
1283         depends on PERF_EVENTS && CPU_HAS_PMU
1284         default y
1285         help
1286           Enable hardware performance counter support for perf events. If
1287           disabled, perf events will use software events only.
1288
1289 source "mm/Kconfig"
1290
1291 config LEDS
1292         bool "Timer and CPU usage LEDs"
1293         depends on ARCH_CDB89712 || ARCH_EBSA110 || \
1294                    ARCH_EBSA285 || ARCH_INTEGRATOR || \
1295                    ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \
1296                    ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
1297                    ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
1298                    ARCH_AT91 || ARCH_DAVINCI || \
1299                    ARCH_KS8695 || MACH_RD88F5182 || ARCH_REALVIEW
1300         help
1301           If you say Y here, the LEDs on your machine will be used
1302           to provide useful information about your current system status.
1303
1304           If you are compiling a kernel for a NetWinder or EBSA-285, you will
1305           be able to select which LEDs are active using the options below. If
1306           you are compiling a kernel for the EBSA-110 or the LART however, the
1307           red LED will simply flash regularly to indicate that the system is
1308           still functional. It is safe to say Y here if you have a CATS
1309           system, but the driver will do nothing.
1310
1311 config LEDS_TIMER
1312         bool "Timer LED" if (!ARCH_CDB89712 && !ARCH_OMAP) || \
1313                             OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
1314                             || MACH_OMAP_PERSEUS2
1315         depends on LEDS
1316         depends on !GENERIC_CLOCKEVENTS
1317         default y if ARCH_EBSA110
1318         help
1319           If you say Y here, one of the system LEDs (the green one on the
1320           NetWinder, the amber one on the EBSA285, or the red one on the LART)
1321           will flash regularly to indicate that the system is still
1322           operational. This is mainly useful to kernel hackers who are
1323           debugging unstable kernels.
1324
1325           The LART uses the same LED for both Timer LED and CPU usage LED
1326           functions. You may choose to use both, but the Timer LED function
1327           will overrule the CPU usage LED.
1328
1329 config LEDS_CPU
1330         bool "CPU usage LED" if (!ARCH_CDB89712 && !ARCH_EBSA110 && \
1331                         !ARCH_OMAP) \
1332                         || OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
1333                         || MACH_OMAP_PERSEUS2
1334         depends on LEDS
1335         help
1336           If you say Y here, the red LED will be used to give a good real
1337           time indication of CPU usage, by lighting whenever the idle task
1338           is not currently executing.
1339
1340           The LART uses the same LED for both Timer LED and CPU usage LED
1341           functions. You may choose to use both, but the Timer LED function
1342           will overrule the CPU usage LED.
1343
1344 config ALIGNMENT_TRAP
1345         bool
1346         depends on CPU_CP15_MMU
1347         default y if !ARCH_EBSA110
1348         select HAVE_PROC_CPU if PROC_FS
1349         help
1350           ARM processors cannot fetch/store information which is not
1351           naturally aligned on the bus, i.e., a 4 byte fetch must start at an
1352           address divisible by 4. On 32-bit ARM processors, these non-aligned
1353           fetch/store instructions will be emulated in software if you say
1354           here, which has a severe performance impact. This is necessary for
1355           correct operation of some network protocols. With an IP-only
1356           configuration it is safe to say N, otherwise say Y.
1357
1358 config UACCESS_WITH_MEMCPY
1359         bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user() (EXPERIMENTAL)"
1360         depends on MMU && EXPERIMENTAL
1361         default y if CPU_FEROCEON
1362         help
1363           Implement faster copy_to_user and clear_user methods for CPU
1364           cores where a 8-word STM instruction give significantly higher
1365           memory write throughput than a sequence of individual 32bit stores.
1366
1367           A possible side effect is a slight increase in scheduling latency
1368           between threads sharing the same address space if they invoke
1369           such copy operations with large buffers.
1370
1371           However, if the CPU data cache is using a write-allocate mode,
1372           this option is unlikely to provide any performance gain.
1373
1374 endmenu
1375
1376 menu "Boot options"
1377
1378 # Compressed boot loader in ROM.  Yes, we really want to ask about
1379 # TEXT and BSS so we preserve their values in the config files.
1380 config ZBOOT_ROM_TEXT
1381         hex "Compressed ROM boot loader base address"
1382         default "0"
1383         help
1384           The physical address at which the ROM-able zImage is to be
1385           placed in the target.  Platforms which normally make use of
1386           ROM-able zImage formats normally set this to a suitable
1387           value in their defconfig file.
1388
1389           If ZBOOT_ROM is not enabled, this has no effect.
1390
1391 config ZBOOT_ROM_BSS
1392         hex "Compressed ROM boot loader BSS address"
1393         default "0"
1394         help
1395           The base address of an area of read/write memory in the target
1396           for the ROM-able zImage which must be available while the
1397           decompressor is running. It must be large enough to hold the
1398           entire decompressed kernel plus an additional 128 KiB.
1399           Platforms which normally make use of ROM-able zImage formats
1400           normally set this to a suitable value in their defconfig file.
1401
1402           If ZBOOT_ROM is not enabled, this has no effect.
1403
1404 config ZBOOT_ROM
1405         bool "Compressed boot loader in ROM/flash"
1406         depends on ZBOOT_ROM_TEXT != ZBOOT_ROM_BSS
1407         help
1408           Say Y here if you intend to execute your compressed kernel image
1409           (zImage) directly from ROM or flash.  If unsure, say N.
1410
1411 config CMDLINE
1412         string "Default kernel command string"
1413         default ""
1414         help
1415           On some architectures (EBSA110 and CATS), there is currently no way
1416           for the boot loader to pass arguments to the kernel. For these
1417           architectures, you should supply some command-line options at build
1418           time by entering them here. As a minimum, you should specify the
1419           memory size and the root device (e.g., mem=64M root=/dev/nfs).
1420
1421 config CMDLINE_FORCE
1422         bool "Always use the default kernel command string"
1423         depends on CMDLINE != ""
1424         help
1425           Always use the default kernel command string, even if the boot
1426           loader passes other arguments to the kernel.
1427           This is useful if you cannot or don't want to change the
1428           command-line options your boot loader passes to the kernel.
1429
1430           If unsure, say N.
1431
1432 config XIP_KERNEL
1433         bool "Kernel Execute-In-Place from ROM"
1434         depends on !ZBOOT_ROM
1435         help
1436           Execute-In-Place allows the kernel to run from non-volatile storage
1437           directly addressable by the CPU, such as NOR flash. This saves RAM
1438           space since the text section of the kernel is not loaded from flash
1439           to RAM.  Read-write sections, such as the data section and stack,
1440           are still copied to RAM.  The XIP kernel is not compressed since
1441           it has to run directly from flash, so it will take more space to
1442           store it.  The flash address used to link the kernel object files,
1443           and for storing it, is configuration dependent. Therefore, if you
1444           say Y here, you must know the proper physical address where to
1445           store the kernel image depending on your own flash memory usage.
1446
1447           Also note that the make target becomes "make xipImage" rather than
1448           "make zImage" or "make Image".  The final kernel binary to put in
1449           ROM memory will be arch/arm/boot/xipImage.
1450
1451           If unsure, say N.
1452
1453 config XIP_PHYS_ADDR
1454         hex "XIP Kernel Physical Location"
1455         depends on XIP_KERNEL
1456         default "0x00080000"
1457         help
1458           This is the physical address in your flash memory the kernel will
1459           be linked for and stored to.  This address is dependent on your
1460           own flash usage.
1461
1462 config KEXEC
1463         bool "Kexec system call (EXPERIMENTAL)"
1464         depends on EXPERIMENTAL
1465         help
1466           kexec is a system call that implements the ability to shutdown your
1467           current kernel, and to start another kernel.  It is like a reboot
1468           but it is independent of the system firmware.   And like a reboot
1469           you can start any kernel with it, not just Linux.
1470
1471           It is an ongoing process to be certain the hardware in a machine
1472           is properly shutdown, so do not be surprised if this code does not
1473           initially work for you.  It may help to enable device hotplugging
1474           support.
1475
1476 config ATAGS_PROC
1477         bool "Export atags in procfs"
1478         depends on KEXEC
1479         default y
1480         help
1481           Should the atags used to boot the kernel be exported in an "atags"
1482           file in procfs. Useful with kexec.
1483
1484 endmenu
1485
1486 menu "CPU Power Management"
1487
1488 if ARCH_HAS_CPUFREQ
1489
1490 source "drivers/cpufreq/Kconfig"
1491
1492 config CPU_FREQ_SA1100
1493         bool
1494
1495 config CPU_FREQ_SA1110
1496         bool
1497
1498 config CPU_FREQ_INTEGRATOR
1499         tristate "CPUfreq driver for ARM Integrator CPUs"
1500         depends on ARCH_INTEGRATOR && CPU_FREQ
1501         default y
1502         help
1503           This enables the CPUfreq driver for ARM Integrator CPUs.
1504
1505           For details, take a look at <file:Documentation/cpu-freq>.
1506
1507           If in doubt, say Y.
1508
1509 config CPU_FREQ_PXA
1510         bool
1511         depends on CPU_FREQ && ARCH_PXA && PXA25x
1512         default y
1513         select CPU_FREQ_DEFAULT_GOV_USERSPACE
1514
1515 config CPU_FREQ_S3C64XX
1516         bool "CPUfreq support for Samsung S3C64XX CPUs"
1517         depends on CPU_FREQ && CPU_S3C6410
1518
1519 config CPU_FREQ_S3C
1520         bool
1521         help
1522           Internal configuration node for common cpufreq on Samsung SoC
1523
1524 config CPU_FREQ_S3C24XX
1525         bool "CPUfreq driver for Samsung S3C24XX series CPUs"
1526         depends on ARCH_S3C2410 && CPU_FREQ && EXPERIMENTAL
1527         select CPU_FREQ_S3C
1528         help
1529           This enables the CPUfreq driver for the Samsung S3C24XX family
1530           of CPUs.
1531
1532           For details, take a look at <file:Documentation/cpu-freq>.
1533
1534           If in doubt, say N.
1535
1536 config CPU_FREQ_S3C24XX_PLL
1537         bool "Support CPUfreq changing of PLL frequency"
1538         depends on CPU_FREQ_S3C24XX && EXPERIMENTAL
1539         help
1540           Compile in support for changing the PLL frequency from the
1541           S3C24XX series CPUfreq driver. The PLL takes time to settle
1542           after a frequency change, so by default it is not enabled.
1543
1544           This also means that the PLL tables for the selected CPU(s) will
1545           be built which may increase the size of the kernel image.
1546
1547 config CPU_FREQ_S3C24XX_DEBUG
1548         bool "Debug CPUfreq Samsung driver core"
1549         depends on CPU_FREQ_S3C24XX
1550         help
1551           Enable s3c_freq_dbg for the Samsung S3C CPUfreq core
1552
1553 config CPU_FREQ_S3C24XX_IODEBUG
1554         bool "Debug CPUfreq Samsung driver IO timing"
1555         depends on CPU_FREQ_S3C24XX
1556         help
1557           Enable s3c_freq_iodbg for the Samsung S3C CPUfreq core
1558
1559 config CPU_FREQ_S3C24XX_DEBUGFS
1560         bool "Export debugfs for CPUFreq"
1561         depends on CPU_FREQ_S3C24XX && DEBUG_FS
1562         help
1563           Export status information via debugfs.
1564
1565 endif
1566
1567 source "drivers/cpuidle/Kconfig"
1568
1569 endmenu
1570
1571 menu "Floating point emulation"
1572
1573 comment "At least one emulation must be selected"
1574
1575 config FPE_NWFPE
1576         bool "NWFPE math emulation"
1577         depends on !AEABI || OABI_COMPAT
1578         ---help---
1579           Say Y to include the NWFPE floating point emulator in the kernel.
1580           This is necessary to run most binaries. Linux does not currently
1581           support floating point hardware so you need to say Y here even if
1582           your machine has an FPA or floating point co-processor podule.
1583
1584           You may say N here if you are going to load the Acorn FPEmulator
1585           early in the bootup.
1586
1587 config FPE_NWFPE_XP
1588         bool "Support extended precision"
1589         depends on FPE_NWFPE
1590         help
1591           Say Y to include 80-bit support in the kernel floating-point
1592           emulator.  Otherwise, only 32 and 64-bit support is compiled in.
1593           Note that gcc does not generate 80-bit operations by default,
1594           so in most cases this option only enlarges the size of the
1595           floating point emulator without any good reason.
1596
1597           You almost surely want to say N here.
1598
1599 config FPE_FASTFPE
1600         bool "FastFPE math emulation (EXPERIMENTAL)"
1601         depends on (!AEABI || OABI_COMPAT) && !CPU_32v3 && EXPERIMENTAL
1602         ---help---
1603           Say Y here to include the FAST floating point emulator in the kernel.
1604           This is an experimental much faster emulator which now also has full
1605           precision for the mantissa.  It does not support any exceptions.
1606           It is very simple, and approximately 3-6 times faster than NWFPE.
1607
1608           It should be sufficient for most programs.  It may be not suitable
1609           for scientific calculations, but you have to check this for yourself.
1610           If you do not feel you need a faster FP emulation you should better
1611           choose NWFPE.
1612
1613 config VFP
1614         bool "VFP-format floating point maths"
1615         depends on CPU_V6 || CPU_ARM926T || CPU_V7 || CPU_FEROCEON
1616         help
1617           Say Y to include VFP support code in the kernel. This is needed
1618           if your hardware includes a VFP unit.
1619
1620           Please see <file:Documentation/arm/VFP/release-notes.txt> for
1621           release notes and additional status information.
1622
1623           Say N if your target does not have VFP hardware.
1624
1625 config VFPv3
1626         bool
1627         depends on VFP
1628         default y if CPU_V7
1629
1630 config NEON
1631         bool "Advanced SIMD (NEON) Extension support"
1632         depends on VFPv3 && CPU_V7
1633         help
1634           Say Y to include support code for NEON, the ARMv7 Advanced SIMD
1635           Extension.
1636
1637 endmenu
1638
1639 menu "Userspace binary formats"
1640
1641 source "fs/Kconfig.binfmt"
1642
1643 config ARTHUR
1644         tristate "RISC OS personality"
1645         depends on !AEABI
1646         help
1647           Say Y here to include the kernel code necessary if you want to run
1648           Acorn RISC OS/Arthur binaries under Linux. This code is still very
1649           experimental; if this sounds frightening, say N and sleep in peace.
1650           You can also say M here to compile this support as a module (which
1651           will be called arthur).
1652
1653 endmenu
1654
1655 menu "Power management options"
1656
1657 source "kernel/power/Kconfig"
1658
1659 config ARCH_SUSPEND_POSSIBLE
1660         def_bool y
1661
1662 endmenu
1663
1664 source "net/Kconfig"
1665
1666 source "drivers/Kconfig"
1667
1668 source "fs/Kconfig"
1669
1670 source "arch/arm/Kconfig.debug"
1671
1672 source "security/Kconfig"
1673
1674 source "crypto/Kconfig"
1675
1676 source "lib/Kconfig"