Merge branch 'core/locking' of git://git.kernel.org/pub/scm/linux/kernel/git/tip...
[pandora-kernel.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_IDE
12         select RTC_LIB
13         select SYS_SUPPORTS_APM_EMULATION
14         select HAVE_OPROFILE
15         select HAVE_KPROBES if (!XIP_KERNEL)
16         select HAVE_KRETPROBES if (HAVE_KPROBES)
17         select HAVE_FTRACE if (!XIP_KERNEL)
18         select HAVE_DYNAMIC_FTRACE if (HAVE_FTRACE)
19         help
20           The ARM series is a line of low-power-consumption RISC chip designs
21           licensed by ARM Ltd and targeted at embedded applications and
22           handhelds such as the Compaq IPAQ.  ARM-based PCs are no longer
23           manufactured, but legacy ARM-based PC hardware remains popular in
24           Europe.  There is an ARM Linux project with a web page at
25           <http://www.arm.linux.org.uk/>.
26
27 config SYS_SUPPORTS_APM_EMULATION
28         bool
29
30 config GENERIC_GPIO
31         bool
32         default n
33
34 config GENERIC_TIME
35         bool
36         default n
37
38 config GENERIC_CLOCKEVENTS
39         bool
40         default n
41
42 config GENERIC_CLOCKEVENTS_BROADCAST
43         bool
44         depends on GENERIC_CLOCKEVENTS
45         default y if SMP && !LOCAL_TIMERS
46
47 config MMU
48         bool
49         default y
50
51 config NO_IOPORT
52         bool
53         default n
54
55 config EISA
56         bool
57         ---help---
58           The Extended Industry Standard Architecture (EISA) bus was
59           developed as an open alternative to the IBM MicroChannel bus.
60
61           The EISA bus provided some of the features of the IBM MicroChannel
62           bus while maintaining backward compatibility with cards made for
63           the older ISA bus.  The EISA bus saw limited use between 1988 and
64           1995 when it was made obsolete by the PCI bus.
65
66           Say Y here if you are building a kernel for an EISA-based machine.
67
68           Otherwise, say N.
69
70 config SBUS
71         bool
72
73 config MCA
74         bool
75         help
76           MicroChannel Architecture is found in some IBM PS/2 machines and
77           laptops.  It is a bus system similar to PCI or ISA. See
78           <file:Documentation/mca.txt> (and especially the web page given
79           there) before attempting to build an MCA bus kernel.
80
81 config GENERIC_HARDIRQS
82         bool
83         default y
84
85 config STACKTRACE_SUPPORT
86         bool
87         default y
88
89 config LOCKDEP_SUPPORT
90         bool
91         default y
92
93 config TRACE_IRQFLAGS_SUPPORT
94         bool
95         default y
96
97 config HARDIRQS_SW_RESEND
98         bool
99         default y
100
101 config GENERIC_IRQ_PROBE
102         bool
103         default y
104
105 config GENERIC_LOCKBREAK
106         bool
107         default y
108         depends on SMP && PREEMPT
109
110 config RWSEM_GENERIC_SPINLOCK
111         bool
112         default y
113
114 config RWSEM_XCHGADD_ALGORITHM
115         bool
116
117 config ARCH_HAS_ILOG2_U32
118         bool
119         default n
120
121 config ARCH_HAS_ILOG2_U64
122         bool
123         default n
124
125 config GENERIC_HWEIGHT
126         bool
127         default y
128
129 config GENERIC_CALIBRATE_DELAY
130         bool
131         default y
132
133 config ARCH_SUPPORTS_AOUT
134         def_bool y
135
136 config ARCH_MAY_HAVE_PC_FDC
137         bool
138
139 config ZONE_DMA
140         bool
141         default y
142
143 config GENERIC_ISA_DMA
144         bool
145
146 config FIQ
147         bool
148
149 config ARCH_MTD_XIP
150         bool
151
152 if OPROFILE
153
154 config OPROFILE_ARMV6
155         def_bool y
156         depends on CPU_V6 && !SMP
157         select OPROFILE_ARM11_CORE
158
159 config OPROFILE_MPCORE
160         def_bool y
161         depends on CPU_V6 && SMP
162         select OPROFILE_ARM11_CORE
163
164 config OPROFILE_ARM11_CORE
165         bool
166
167 endif
168
169 config VECTORS_BASE
170         hex
171         default 0xffff0000 if MMU || CPU_HIGH_VECTOR
172         default DRAM_BASE if REMAP_VECTORS_TO_RAM
173         default 0x00000000
174         help
175           The base address of exception vectors.
176
177 source "init/Kconfig"
178
179 menu "System Type"
180
181 choice
182         prompt "ARM system type"
183         default ARCH_VERSATILE
184
185 config ARCH_AAEC2000
186         bool "Agilent AAEC-2000 based"
187         select ARM_AMBA
188         help
189           This enables support for systems based on the Agilent AAEC-2000
190
191 config ARCH_INTEGRATOR
192         bool "ARM Ltd. Integrator family"
193         select ARM_AMBA
194         select ICST525
195         help
196           Support for ARM's Integrator platform.
197
198 config ARCH_REALVIEW
199         bool "ARM Ltd. RealView family"
200         select ARM_AMBA
201         select ICST307
202         select GENERIC_TIME
203         select GENERIC_CLOCKEVENTS
204         help
205           This enables support for ARM Ltd RealView boards.
206
207 config ARCH_VERSATILE
208         bool "ARM Ltd. Versatile family"
209         select ARM_AMBA
210         select ARM_VIC
211         select ICST307
212         select GENERIC_TIME
213         select GENERIC_CLOCKEVENTS
214         help
215           This enables support for ARM Ltd Versatile board.
216
217 config ARCH_AT91
218         bool "Atmel AT91"
219         select GENERIC_GPIO
220         help
221           This enables support for systems based on the Atmel AT91RM9200,
222           AT91SAM9 and AT91CAP9 processors.
223
224 config ARCH_CLPS7500
225         bool "Cirrus CL-PS7500FE"
226         select TIMER_ACORN
227         select ISA
228         select NO_IOPORT
229         help
230           Support for the Cirrus Logic PS7500FE system-on-a-chip.
231
232 config ARCH_CLPS711X
233         bool "Cirrus Logic CLPS711x/EP721x-based"
234         help
235           Support for Cirrus Logic 711x/721x based boards.
236
237 config ARCH_CO285
238         bool "Co-EBSA285"
239         select FOOTBRIDGE
240         select FOOTBRIDGE_ADDIN
241         help
242           Support for Intel's EBSA285 companion chip.
243
244 config ARCH_EBSA110
245         bool "EBSA-110"
246         select ISA
247         select NO_IOPORT
248         help
249           This is an evaluation board for the StrongARM processor available
250           from Digital. It has limited hardware on-board, including an
251           Ethernet interface, two PCMCIA sockets, two serial ports and a
252           parallel port.
253
254 config ARCH_EP93XX
255         bool "EP93xx-based"
256         select ARM_AMBA
257         select ARM_VIC
258         select GENERIC_GPIO
259         select HAVE_GPIO_LIB
260         help
261           This enables support for the Cirrus EP93xx series of CPUs.
262
263 config ARCH_FOOTBRIDGE
264         bool "FootBridge"
265         select FOOTBRIDGE
266         help
267           Support for systems based on the DC21285 companion chip
268           ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
269
270 config ARCH_NETX
271         bool "Hilscher NetX based"
272         select ARM_VIC
273         help
274           This enables support for systems based on the Hilscher NetX Soc
275
276 config ARCH_H720X
277         bool "Hynix HMS720x-based"
278         select ISA_DMA_API
279         help
280           This enables support for systems based on the Hynix HMS720x
281
282 config ARCH_IMX
283         bool "IMX"
284         select GENERIC_GPIO
285         select GENERIC_TIME
286         select GENERIC_CLOCKEVENTS
287         help
288           Support for Motorola's i.MX family of processors (MX1, MXL).
289
290 config ARCH_IOP13XX
291         bool "IOP13xx-based"
292         depends on MMU
293         select PLAT_IOP
294         select PCI
295         select ARCH_SUPPORTS_MSI
296         help
297           Support for Intel's IOP13XX (XScale) family of processors.
298
299 config ARCH_IOP32X
300         bool "IOP32x-based"
301         depends on MMU
302         select PLAT_IOP
303         select PCI
304         help
305           Support for Intel's 80219 and IOP32X (XScale) family of
306           processors.
307
308 config ARCH_IOP33X
309         bool "IOP33x-based"
310         depends on MMU
311         select PLAT_IOP
312         select PCI
313         help
314           Support for Intel's IOP33X (XScale) family of processors.
315
316 config ARCH_IXP23XX
317         bool "IXP23XX-based"
318         depends on MMU
319         select PCI
320         help
321           Support for Intel's IXP23xx (XScale) family of processors.
322
323 config ARCH_IXP2000
324         bool "IXP2400/2800-based"
325         depends on MMU
326         select PCI
327         help
328           Support for Intel's IXP2400/2800 (XScale) family of processors.
329
330 config ARCH_IXP4XX
331         bool "IXP4xx-based"
332         depends on MMU
333         select GENERIC_GPIO
334         select GENERIC_TIME
335         select GENERIC_CLOCKEVENTS
336         help
337           Support for Intel's IXP4XX (XScale) family of processors.
338
339 config ARCH_L7200
340         bool "LinkUp-L7200"
341         select FIQ
342         help
343           Say Y here if you intend to run this kernel on a LinkUp Systems
344           L7200 Software Development Board which uses an ARM720T processor.
345           Information on this board can be obtained at:
346
347           <http://www.linkupsys.com/>
348
349           If you have any questions or comments about the Linux kernel port
350           to this board, send e-mail to <sjhill@cotw.com>.
351
352 config ARCH_KS8695
353         bool "Micrel/Kendin KS8695"
354         select GENERIC_GPIO
355         help
356           Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
357           System-on-Chip devices.
358
359 config ARCH_NS9XXX
360         bool "NetSilicon NS9xxx"
361         select GENERIC_GPIO
362         select GENERIC_TIME
363         select GENERIC_CLOCKEVENTS
364         help
365           Say Y here if you intend to run this kernel on a NetSilicon NS9xxx
366           System.
367
368           <http://www.digi.com/products/microprocessors/index.jsp>
369
370 config ARCH_MXC
371         bool "Freescale MXC/iMX-based"
372         select ARCH_MTD_XIP
373         help
374           Support for Freescale MXC/iMX-based family of processors
375
376 config ARCH_ORION5X
377         bool "Marvell Orion"
378         depends on MMU
379         select PCI
380         select GENERIC_GPIO
381         select GENERIC_TIME
382         select GENERIC_CLOCKEVENTS
383         select PLAT_ORION
384         help
385           Support for the following Marvell Orion 5x series SoCs:
386           Orion-1 (5181), Orion-NAS (5182), Orion-2 (5281.)
387
388 config ARCH_PNX4008
389         bool "Philips Nexperia PNX4008 Mobile"
390         help
391           This enables support for Philips PNX4008 mobile platform.
392
393 config ARCH_PXA
394         bool "PXA2xx/PXA3xx-based"
395         depends on MMU
396         select ARCH_MTD_XIP
397         select GENERIC_GPIO
398         select HAVE_GPIO_LIB
399         select GENERIC_TIME
400         select GENERIC_CLOCKEVENTS
401         select TICK_ONESHOT
402         help
403           Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
404
405 config ARCH_RPC
406         bool "RiscPC"
407         select ARCH_ACORN
408         select FIQ
409         select TIMER_ACORN
410         select ARCH_MAY_HAVE_PC_FDC
411         select ISA_DMA_API
412         select NO_IOPORT
413         help
414           On the Acorn Risc-PC, Linux can support the internal IDE disk and
415           CD-ROM interface, serial and parallel port, and the floppy drive.
416
417 config ARCH_SA1100
418         bool "SA1100-based"
419         select ISA
420         select ARCH_DISCONTIGMEM_ENABLE
421         select ARCH_SPARSEMEM_ENABLE
422         select ARCH_SELECT_MEMORY_MODEL
423         select ARCH_MTD_XIP
424         select GENERIC_GPIO
425         select GENERIC_TIME
426         select GENERIC_CLOCKEVENTS
427         select TICK_ONESHOT
428         select HAVE_GPIO_LIB
429         help
430           Support for StrongARM 11x0 based boards.
431
432 config ARCH_S3C2410
433         bool "Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443"
434         select GENERIC_GPIO
435         help
436           Samsung S3C2410X CPU based systems, such as the Simtec Electronics
437           BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
438           the Samsung SMDK2410 development board (and derivatives).
439
440 config ARCH_SHARK
441         bool "Shark"
442         select ISA
443         select ISA_DMA
444         select PCI
445         help
446           Support for the StrongARM based Digital DNARD machine, also known
447           as "Shark" (<http://www.shark-linux.de/shark.html>).
448
449 config ARCH_LH7A40X
450         bool "Sharp LH7A40X"
451         help
452           Say Y here for systems based on one of the Sharp LH7A40X
453           System on a Chip processors.  These CPUs include an ARM922T
454           core with a wide array of integrated devices for
455           hand-held and low-power applications.
456
457 config ARCH_DAVINCI
458         bool "TI DaVinci"
459         select GENERIC_TIME
460         select GENERIC_CLOCKEVENTS
461         select GENERIC_GPIO
462         help
463           Support for TI's DaVinci platform.
464
465 config ARCH_OMAP
466         bool "TI OMAP"
467         select GENERIC_GPIO
468         select HAVE_GPIO_LIB
469         select GENERIC_TIME
470         select GENERIC_CLOCKEVENTS
471         help
472           Support for TI's OMAP platform (OMAP1 and OMAP2).
473
474 config ARCH_MSM7X00A
475         bool "Qualcomm MSM7X00A"
476         select GENERIC_TIME
477         select GENERIC_CLOCKEVENTS
478         help
479           Support for Qualcomm MSM7X00A based systems.  This runs on the ARM11
480           apps processor of the MSM7X00A and depends on a shared memory
481           interface to the ARM9 modem processor which runs the baseband stack
482           and controls some vital subsystems (clock and power control, etc).
483           <http://www.cdmatech.com/products/msm7200_chipset_solution.jsp>
484
485 endchoice
486
487 source "arch/arm/mach-clps711x/Kconfig"
488
489 source "arch/arm/mach-ep93xx/Kconfig"
490
491 source "arch/arm/mach-footbridge/Kconfig"
492
493 source "arch/arm/mach-integrator/Kconfig"
494
495 source "arch/arm/mach-iop32x/Kconfig"
496
497 source "arch/arm/mach-iop33x/Kconfig"
498
499 source "arch/arm/mach-iop13xx/Kconfig"
500
501 source "arch/arm/mach-ixp4xx/Kconfig"
502
503 source "arch/arm/mach-ixp2000/Kconfig"
504
505 source "arch/arm/mach-ixp23xx/Kconfig"
506
507 source "arch/arm/mach-pxa/Kconfig"
508
509 source "arch/arm/mach-sa1100/Kconfig"
510
511 source "arch/arm/plat-omap/Kconfig"
512
513 source "arch/arm/mach-omap1/Kconfig"
514
515 source "arch/arm/mach-omap2/Kconfig"
516
517 source "arch/arm/mach-orion5x/Kconfig"
518
519 source "arch/arm/plat-s3c24xx/Kconfig"
520 source "arch/arm/plat-s3c/Kconfig"
521
522 if ARCH_S3C2410
523 source "arch/arm/mach-s3c2400/Kconfig"
524 source "arch/arm/mach-s3c2410/Kconfig"
525 source "arch/arm/mach-s3c2412/Kconfig"
526 source "arch/arm/mach-s3c2440/Kconfig"
527 source "arch/arm/mach-s3c2442/Kconfig"
528 source "arch/arm/mach-s3c2443/Kconfig"
529 endif
530
531 source "arch/arm/mach-lh7a40x/Kconfig"
532
533 source "arch/arm/mach-imx/Kconfig"
534
535 source "arch/arm/mach-h720x/Kconfig"
536
537 source "arch/arm/mach-versatile/Kconfig"
538
539 source "arch/arm/mach-aaec2000/Kconfig"
540
541 source "arch/arm/mach-realview/Kconfig"
542
543 source "arch/arm/mach-at91/Kconfig"
544
545 source "arch/arm/plat-mxc/Kconfig"
546
547 source "arch/arm/mach-netx/Kconfig"
548
549 source "arch/arm/mach-ns9xxx/Kconfig"
550
551 source "arch/arm/mach-davinci/Kconfig"
552
553 source "arch/arm/mach-ks8695/Kconfig"
554
555 source "arch/arm/mach-msm/Kconfig"
556
557 # Definitions to make life easier
558 config ARCH_ACORN
559         bool
560
561 config PLAT_IOP
562         bool
563
564 config PLAT_ORION
565         bool
566
567 source arch/arm/mm/Kconfig
568
569 config IWMMXT
570         bool "Enable iWMMXt support"
571         depends on CPU_XSCALE || CPU_XSC3
572         default y if PXA27x || PXA3xx
573         help
574           Enable support for iWMMXt context switching at run time if
575           running on a CPU that supports it.
576
577 #  bool 'Use XScale PMU as timer source' CONFIG_XSCALE_PMU_TIMER
578 config XSCALE_PMU
579         bool
580         depends on CPU_XSCALE && !XSCALE_PMU_TIMER
581         default y
582
583 if !MMU
584 source "arch/arm/Kconfig-nommu"
585 endif
586
587 endmenu
588
589 source "arch/arm/common/Kconfig"
590
591 config FORCE_MAX_ZONEORDER
592         int
593         depends on SA1111
594         default "9"
595
596 menu "Bus support"
597
598 config ARM_AMBA
599         bool
600
601 config ISA
602         bool
603         help
604           Find out whether you have ISA slots on your motherboard.  ISA is the
605           name of a bus system, i.e. the way the CPU talks to the other stuff
606           inside your box.  Other bus systems are PCI, EISA, MicroChannel
607           (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
608           newer boards don't support it.  If you have ISA, say Y, otherwise N.
609
610 # Select ISA DMA controller support
611 config ISA_DMA
612         bool
613         select ISA_DMA_API
614
615 # Select ISA DMA interface
616 config ISA_DMA_API
617         bool
618
619 config PCI
620         bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE
621         help
622           Find out whether you have a PCI motherboard. PCI is the name of a
623           bus system, i.e. the way the CPU talks to the other stuff inside
624           your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
625           VESA. If you have PCI, say Y, otherwise N.
626
627 config PCI_SYSCALL
628         def_bool PCI
629
630 # Select the host bridge type
631 config PCI_HOST_VIA82C505
632         bool
633         depends on PCI && ARCH_SHARK
634         default y
635
636 config PCI_HOST_ITE8152
637         bool
638         depends on PCI && MACH_ARMCORE
639         default y
640         select DMABOUNCE
641
642 source "drivers/pci/Kconfig"
643
644 source "drivers/pcmcia/Kconfig"
645
646 endmenu
647
648 menu "Kernel Features"
649
650 source "kernel/time/Kconfig"
651
652 config SMP
653         bool "Symmetric Multi-Processing (EXPERIMENTAL)"
654         depends on EXPERIMENTAL && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP)
655         help
656           This enables support for systems with more than one CPU. If you have
657           a system with only one CPU, like most personal computers, say N. If
658           you have a system with more than one CPU, say Y.
659
660           If you say N here, the kernel will run on single and multiprocessor
661           machines, but will use only one CPU of a multiprocessor machine. If
662           you say Y here, the kernel will run on many, but not all, single
663           processor machines. On a single processor machine, the kernel will
664           run faster if you say N here.
665
666           See also <file:Documentation/i386/IO-APIC.txt>,
667           <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
668           <http://www.linuxdoc.org/docs.html#howto>.
669
670           If you don't know what to do here, say N.
671
672 config NR_CPUS
673         int "Maximum number of CPUs (2-32)"
674         range 2 32
675         depends on SMP
676         default "4"
677
678 config HOTPLUG_CPU
679         bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
680         depends on SMP && HOTPLUG && EXPERIMENTAL
681         help
682           Say Y here to experiment with turning CPUs off and on.  CPUs
683           can be controlled through /sys/devices/system/cpu.
684
685 config LOCAL_TIMERS
686         bool "Use local timer interrupts"
687         depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP)
688         default y
689         help
690           Enable support for local timers on SMP platforms, rather then the
691           legacy IPI broadcast method.  Local timers allows the system
692           accounting to be spread across the timer interval, preventing a
693           "thundering herd" at every timer tick.
694
695 config PREEMPT
696         bool "Preemptible Kernel (EXPERIMENTAL)"
697         depends on EXPERIMENTAL
698         help
699           This option reduces the latency of the kernel when reacting to
700           real-time or interactive events by allowing a low priority process to
701           be preempted even if it is in kernel mode executing a system call.
702           This allows applications to run more reliably even when the system is
703           under load.
704
705           Say Y here if you are building a kernel for a desktop, embedded
706           or real-time system.  Say N if you are unsure.
707
708 config NO_IDLE_HZ
709         bool "Dynamic tick timer"
710         depends on !GENERIC_CLOCKEVENTS
711         help
712           Select this option if you want to disable continuous timer ticks
713           and have them programmed to occur as required. This option saves
714           power as the system can remain in idle state for longer.
715
716           By default dynamic tick is disabled during the boot, and can be
717           manually enabled with:
718
719             echo 1 > /sys/devices/system/timer/timer0/dyn_tick
720
721           Alternatively, if you want dynamic tick automatically enabled
722           during boot, pass "dyntick=enable" via the kernel command string.
723
724           Please note that dynamic tick may affect the accuracy of
725           timekeeping on some platforms depending on the implementation.
726           Currently at least OMAP, PXA2xx and SA11x0 platforms are known
727           to have accurate timekeeping with dynamic tick.
728
729 config HZ
730         int
731         default 128 if ARCH_L7200
732         default 200 if ARCH_EBSA110 || ARCH_S3C2410
733         default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
734         default AT91_TIMER_HZ if ARCH_AT91
735         default 100
736
737 config AEABI
738         bool "Use the ARM EABI to compile the kernel"
739         help
740           This option allows for the kernel to be compiled using the latest
741           ARM ABI (aka EABI).  This is only useful if you are using a user
742           space environment that is also compiled with EABI.
743
744           Since there are major incompatibilities between the legacy ABI and
745           EABI, especially with regard to structure member alignment, this
746           option also changes the kernel syscall calling convention to
747           disambiguate both ABIs and allow for backward compatibility support
748           (selected with CONFIG_OABI_COMPAT).
749
750           To use this you need GCC version 4.0.0 or later.
751
752 config OABI_COMPAT
753         bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)"
754         depends on AEABI && EXPERIMENTAL
755         default y
756         help
757           This option preserves the old syscall interface along with the
758           new (ARM EABI) one. It also provides a compatibility layer to
759           intercept syscalls that have structure arguments which layout
760           in memory differs between the legacy ABI and the new ARM EABI
761           (only for non "thumb" binaries). This option adds a tiny
762           overhead to all syscalls and produces a slightly larger kernel.
763           If you know you'll be using only pure EABI user space then you
764           can say N here. If this option is not selected and you attempt
765           to execute a legacy ABI binary then the result will be
766           UNPREDICTABLE (in fact it can be predicted that it won't work
767           at all). If in doubt say Y.
768
769 config ARCH_DISCONTIGMEM_ENABLE
770         bool
771         default (ARCH_LH7A40X && !LH7A40X_CONTIGMEM)
772         help
773           Say Y to support efficient handling of discontiguous physical memory,
774           for architectures which are either NUMA (Non-Uniform Memory Access)
775           or have huge holes in the physical address space for other reasons.
776           See <file:Documentation/vm/numa> for more.
777
778 config ARCH_SPARSEMEM_ENABLE
779         bool
780
781 config ARCH_SELECT_MEMORY_MODEL
782         bool
783
784 config NODES_SHIFT
785         int
786         default "4" if ARCH_LH7A40X
787         default "2"
788         depends on NEED_MULTIPLE_NODES
789
790 source "mm/Kconfig"
791
792 config LEDS
793         bool "Timer and CPU usage LEDs"
794         depends on ARCH_CDB89712 || ARCH_CO285 || ARCH_EBSA110 || \
795                    ARCH_EBSA285 || ARCH_IMX || ARCH_INTEGRATOR || \
796                    ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \
797                    ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
798                    ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
799                    ARCH_AT91 || MACH_TRIZEPS4 || ARCH_DAVINCI || \
800                    ARCH_KS8695 || MACH_RD88F5182
801         help
802           If you say Y here, the LEDs on your machine will be used
803           to provide useful information about your current system status.
804
805           If you are compiling a kernel for a NetWinder or EBSA-285, you will
806           be able to select which LEDs are active using the options below. If
807           you are compiling a kernel for the EBSA-110 or the LART however, the
808           red LED will simply flash regularly to indicate that the system is
809           still functional. It is safe to say Y here if you have a CATS
810           system, but the driver will do nothing.
811
812 config LEDS_TIMER
813         bool "Timer LED" if (!ARCH_CDB89712 && !ARCH_OMAP) || \
814                             OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
815                             || MACH_OMAP_PERSEUS2
816         depends on LEDS
817         depends on !GENERIC_CLOCKEVENTS
818         default y if ARCH_EBSA110
819         help
820           If you say Y here, one of the system LEDs (the green one on the
821           NetWinder, the amber one on the EBSA285, or the red one on the LART)
822           will flash regularly to indicate that the system is still
823           operational. This is mainly useful to kernel hackers who are
824           debugging unstable kernels.
825
826           The LART uses the same LED for both Timer LED and CPU usage LED
827           functions. You may choose to use both, but the Timer LED function
828           will overrule the CPU usage LED.
829
830 config LEDS_CPU
831         bool "CPU usage LED" if (!ARCH_CDB89712 && !ARCH_EBSA110 && \
832                         !ARCH_OMAP) \
833                         || OMAP_OSK_MISTRAL || MACH_OMAP_H2 \
834                         || MACH_OMAP_PERSEUS2
835         depends on LEDS
836         help
837           If you say Y here, the red LED will be used to give a good real
838           time indication of CPU usage, by lighting whenever the idle task
839           is not currently executing.
840
841           The LART uses the same LED for both Timer LED and CPU usage LED
842           functions. You may choose to use both, but the Timer LED function
843           will overrule the CPU usage LED.
844
845 config ALIGNMENT_TRAP
846         bool
847         depends on CPU_CP15_MMU
848         default y if !ARCH_EBSA110
849         help
850           ARM processors cannot fetch/store information which is not
851           naturally aligned on the bus, i.e., a 4 byte fetch must start at an
852           address divisible by 4. On 32-bit ARM processors, these non-aligned
853           fetch/store instructions will be emulated in software if you say
854           here, which has a severe performance impact. This is necessary for
855           correct operation of some network protocols. With an IP-only
856           configuration it is safe to say N, otherwise say Y.
857
858 endmenu
859
860 menu "Boot options"
861
862 # Compressed boot loader in ROM.  Yes, we really want to ask about
863 # TEXT and BSS so we preserve their values in the config files.
864 config ZBOOT_ROM_TEXT
865         hex "Compressed ROM boot loader base address"
866         default "0"
867         help
868           The physical address at which the ROM-able zImage is to be
869           placed in the target.  Platforms which normally make use of
870           ROM-able zImage formats normally set this to a suitable
871           value in their defconfig file.
872
873           If ZBOOT_ROM is not enabled, this has no effect.
874
875 config ZBOOT_ROM_BSS
876         hex "Compressed ROM boot loader BSS address"
877         default "0"
878         help
879           The base address of an area of read/write memory in the target
880           for the ROM-able zImage which must be available while the
881           decompressor is running. It must be large enough to hold the
882           entire decompressed kernel plus an additional 128 KiB.
883           Platforms which normally make use of ROM-able zImage formats
884           normally set this to a suitable value in their defconfig file.
885
886           If ZBOOT_ROM is not enabled, this has no effect.
887
888 config ZBOOT_ROM
889         bool "Compressed boot loader in ROM/flash"
890         depends on ZBOOT_ROM_TEXT != ZBOOT_ROM_BSS
891         help
892           Say Y here if you intend to execute your compressed kernel image
893           (zImage) directly from ROM or flash.  If unsure, say N.
894
895 config CMDLINE
896         string "Default kernel command string"
897         default ""
898         help
899           On some architectures (EBSA110 and CATS), there is currently no way
900           for the boot loader to pass arguments to the kernel. For these
901           architectures, you should supply some command-line options at build
902           time by entering them here. As a minimum, you should specify the
903           memory size and the root device (e.g., mem=64M root=/dev/nfs).
904
905 config XIP_KERNEL
906         bool "Kernel Execute-In-Place from ROM"
907         depends on !ZBOOT_ROM
908         help
909           Execute-In-Place allows the kernel to run from non-volatile storage
910           directly addressable by the CPU, such as NOR flash. This saves RAM
911           space since the text section of the kernel is not loaded from flash
912           to RAM.  Read-write sections, such as the data section and stack,
913           are still copied to RAM.  The XIP kernel is not compressed since
914           it has to run directly from flash, so it will take more space to
915           store it.  The flash address used to link the kernel object files,
916           and for storing it, is configuration dependent. Therefore, if you
917           say Y here, you must know the proper physical address where to
918           store the kernel image depending on your own flash memory usage.
919
920           Also note that the make target becomes "make xipImage" rather than
921           "make zImage" or "make Image".  The final kernel binary to put in
922           ROM memory will be arch/arm/boot/xipImage.
923
924           If unsure, say N.
925
926 config XIP_PHYS_ADDR
927         hex "XIP Kernel Physical Location"
928         depends on XIP_KERNEL
929         default "0x00080000"
930         help
931           This is the physical address in your flash memory the kernel will
932           be linked for and stored to.  This address is dependent on your
933           own flash usage.
934
935 config KEXEC
936         bool "Kexec system call (EXPERIMENTAL)"
937         depends on EXPERIMENTAL
938         help
939           kexec is a system call that implements the ability to shutdown your
940           current kernel, and to start another kernel.  It is like a reboot
941           but it is independent of the system firmware.   And like a reboot
942           you can start any kernel with it, not just Linux.
943
944           It is an ongoing process to be certain the hardware in a machine
945           is properly shutdown, so do not be surprised if this code does not
946           initially work for you.  It may help to enable device hotplugging
947           support.
948
949 config ATAGS_PROC
950         bool "Export atags in procfs"
951         depends on KEXEC
952         default y
953         help
954           Should the atags used to boot the kernel be exported in an "atags"
955           file in procfs. Useful with kexec.
956
957 endmenu
958
959 if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX || ARCH_PXA)
960
961 menu "CPU Frequency scaling"
962
963 source "drivers/cpufreq/Kconfig"
964
965 config CPU_FREQ_SA1100
966         bool
967         depends on CPU_FREQ && (SA1100_H3100 || SA1100_H3600 || SA1100_H3800 || SA1100_LART || SA1100_PLEB || SA1100_BADGE4 || SA1100_HACKKIT)
968         default y
969
970 config CPU_FREQ_SA1110
971         bool
972         depends on CPU_FREQ && (SA1100_ASSABET || SA1100_CERF || SA1100_PT_SYSTEM3)
973         default y
974
975 config CPU_FREQ_INTEGRATOR
976         tristate "CPUfreq driver for ARM Integrator CPUs"
977         depends on ARCH_INTEGRATOR && CPU_FREQ
978         default y
979         help
980           This enables the CPUfreq driver for ARM Integrator CPUs.
981
982           For details, take a look at <file:Documentation/cpu-freq>.
983
984           If in doubt, say Y.
985
986 config CPU_FREQ_IMX
987         tristate "CPUfreq driver for i.MX CPUs"
988         depends on ARCH_IMX && CPU_FREQ
989         default n
990         help
991           This enables the CPUfreq driver for i.MX CPUs.
992
993           If in doubt, say N.
994
995 config CPU_FREQ_PXA
996         bool
997         depends on CPU_FREQ && ARCH_PXA && PXA25x
998         default y
999         select CPU_FREQ_DEFAULT_GOV_USERSPACE
1000
1001 endmenu
1002
1003 endif
1004
1005 menu "Floating point emulation"
1006
1007 comment "At least one emulation must be selected"
1008
1009 config FPE_NWFPE
1010         bool "NWFPE math emulation"
1011         depends on !AEABI || OABI_COMPAT
1012         ---help---
1013           Say Y to include the NWFPE floating point emulator in the kernel.
1014           This is necessary to run most binaries. Linux does not currently
1015           support floating point hardware so you need to say Y here even if
1016           your machine has an FPA or floating point co-processor podule.
1017
1018           You may say N here if you are going to load the Acorn FPEmulator
1019           early in the bootup.
1020
1021 config FPE_NWFPE_XP
1022         bool "Support extended precision"
1023         depends on FPE_NWFPE
1024         help
1025           Say Y to include 80-bit support in the kernel floating-point
1026           emulator.  Otherwise, only 32 and 64-bit support is compiled in.
1027           Note that gcc does not generate 80-bit operations by default,
1028           so in most cases this option only enlarges the size of the
1029           floating point emulator without any good reason.
1030
1031           You almost surely want to say N here.
1032
1033 config FPE_FASTFPE
1034         bool "FastFPE math emulation (EXPERIMENTAL)"
1035         depends on (!AEABI || OABI_COMPAT) && !CPU_32v3 && EXPERIMENTAL
1036         ---help---
1037           Say Y here to include the FAST floating point emulator in the kernel.
1038           This is an experimental much faster emulator which now also has full
1039           precision for the mantissa.  It does not support any exceptions.
1040           It is very simple, and approximately 3-6 times faster than NWFPE.
1041
1042           It should be sufficient for most programs.  It may be not suitable
1043           for scientific calculations, but you have to check this for yourself.
1044           If you do not feel you need a faster FP emulation you should better
1045           choose NWFPE.
1046
1047 config VFP
1048         bool "VFP-format floating point maths"
1049         depends on CPU_V6 || CPU_ARM926T || CPU_V7 || CPU_FEROCEON
1050         help
1051           Say Y to include VFP support code in the kernel. This is needed
1052           if your hardware includes a VFP unit.
1053
1054           Please see <file:Documentation/arm/VFP/release-notes.txt> for
1055           release notes and additional status information.
1056
1057           Say N if your target does not have VFP hardware.
1058
1059 config VFPv3
1060         bool
1061         depends on VFP
1062         default y if CPU_V7
1063
1064 config NEON
1065         bool "Advanced SIMD (NEON) Extension support"
1066         depends on VFPv3 && CPU_V7
1067         help
1068           Say Y to include support code for NEON, the ARMv7 Advanced SIMD
1069           Extension.
1070
1071 endmenu
1072
1073 menu "Userspace binary formats"
1074
1075 source "fs/Kconfig.binfmt"
1076
1077 config ARTHUR
1078         tristate "RISC OS personality"
1079         depends on !AEABI
1080         help
1081           Say Y here to include the kernel code necessary if you want to run
1082           Acorn RISC OS/Arthur binaries under Linux. This code is still very
1083           experimental; if this sounds frightening, say N and sleep in peace.
1084           You can also say M here to compile this support as a module (which
1085           will be called arthur).
1086
1087 endmenu
1088
1089 menu "Power management options"
1090
1091 source "kernel/power/Kconfig"
1092
1093 config ARCH_SUSPEND_POSSIBLE
1094         def_bool y
1095
1096 endmenu
1097
1098 source "net/Kconfig"
1099
1100 menu "Device Drivers"
1101
1102 source "drivers/base/Kconfig"
1103
1104 source "drivers/connector/Kconfig"
1105
1106 if ALIGNMENT_TRAP || !CPU_CP15_MMU
1107 source "drivers/mtd/Kconfig"
1108 endif
1109
1110 source "drivers/parport/Kconfig"
1111
1112 source "drivers/pnp/Kconfig"
1113
1114 source "drivers/block/Kconfig"
1115
1116 # misc before ide - BLK_DEV_SGIIOC4 depends on SGI_IOC4
1117
1118 source "drivers/misc/Kconfig"
1119
1120 source "drivers/ide/Kconfig"
1121
1122 source "drivers/scsi/Kconfig"
1123
1124 source "drivers/ata/Kconfig"
1125
1126 source "drivers/md/Kconfig"
1127
1128 source "drivers/message/fusion/Kconfig"
1129
1130 source "drivers/ieee1394/Kconfig"
1131
1132 source "drivers/message/i2o/Kconfig"
1133
1134 source "drivers/net/Kconfig"
1135
1136 source "drivers/isdn/Kconfig"
1137
1138 # input before char - char/joystick depends on it. As does USB.
1139
1140 source "drivers/input/Kconfig"
1141
1142 source "drivers/char/Kconfig"
1143
1144 source "drivers/i2c/Kconfig"
1145
1146 source "drivers/spi/Kconfig"
1147
1148 source "drivers/gpio/Kconfig"
1149
1150 source "drivers/w1/Kconfig"
1151
1152 source "drivers/power/Kconfig"
1153
1154 source "drivers/hwmon/Kconfig"
1155
1156 source "drivers/watchdog/Kconfig"
1157
1158 source "drivers/ssb/Kconfig"
1159
1160 #source "drivers/l3/Kconfig"
1161
1162 source "drivers/mfd/Kconfig"
1163
1164 source "drivers/media/Kconfig"
1165
1166 source "drivers/video/Kconfig"
1167
1168 source "sound/Kconfig"
1169
1170 source "drivers/hid/Kconfig"
1171
1172 source "drivers/usb/Kconfig"
1173
1174 source "drivers/mmc/Kconfig"
1175
1176 source "drivers/leds/Kconfig"
1177
1178 source "drivers/rtc/Kconfig"
1179
1180 source "drivers/dma/Kconfig"
1181
1182 source "drivers/dca/Kconfig"
1183
1184 source "drivers/uio/Kconfig"
1185
1186 endmenu
1187
1188 source "fs/Kconfig"
1189
1190 source "arch/arm/Kconfig.debug"
1191
1192 source "security/Kconfig"
1193
1194 source "crypto/Kconfig"
1195
1196 source "lib/Kconfig"