2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
6 mainmenu "Linux Kernel Configuration"
13 The ARM series is a line of low-power-consumption RISC chip designs
14 licensed by ARM Ltd and targeted at embedded applications and
15 handhelds such as the Compaq IPAQ. ARM-based PCs are no longer
16 manufactured, but legacy ARM-based PC hardware remains popular in
17 Europe. There is an ARM Linux project with a web page at
18 <http://www.arm.linux.org.uk/>.
27 The Extended Industry Standard Architecture (EISA) bus was
28 developed as an open alternative to the IBM MicroChannel bus.
30 The EISA bus provided some of the features of the IBM MicroChannel
31 bus while maintaining backward compatibility with cards made for
32 the older ISA bus. The EISA bus saw limited use between 1988 and
33 1995 when it was made obsolete by the PCI bus.
35 Say Y here if you are building a kernel for an EISA-based machine.
45 MicroChannel Architecture is found in some IBM PS/2 machines and
46 laptops. It is a bus system similar to PCI or ISA. See
47 <file:Documentation/mca.txt> (and especially the web page given
48 there) before attempting to build an MCA bus kernel.
50 config RWSEM_GENERIC_SPINLOCK
54 config RWSEM_XCHGADD_ALGORITHM
57 config GENERIC_HWEIGHT
61 config GENERIC_CALIBRATE_DELAY
65 config GENERIC_BUST_SPINLOCK
68 config ARCH_MAY_HAVE_PC_FDC
71 config GENERIC_ISA_DMA
82 default 0xffff0000 if MMU
83 default DRAM_BASE if REMAP_VECTORS_TO_RAM
86 The base address of exception vectors.
93 prompt "ARM system type"
94 default ARCH_VERSATILE
97 bool "Agilent AAEC-2000 based"
100 This enables support for systems based on the Agilent AAEC-2000
102 config ARCH_INTEGRATOR
103 bool "ARM Ltd. Integrator family"
107 Support for ARM's Integrator platform.
110 bool "ARM Ltd. RealView family"
114 This enables support for ARM Ltd RealView boards.
116 config ARCH_VERSATILE
117 bool "ARM Ltd. Versatile family"
122 This enables support for ARM Ltd Versatile board.
124 config ARCH_AT91RM9200
125 bool "Atmel AT91RM9200"
127 Say Y here if you intend to run this kernel on an Atmel
128 AT91RM9200-based board.
131 bool "Cirrus CL-PS7500FE"
135 Support for the Cirrus Logic PS7500FE system-on-a-chip.
138 bool "Cirrus Logic CLPS711x/EP721x-based"
140 Support for Cirrus Logic 711x/721x based boards.
145 select FOOTBRIDGE_ADDIN
147 Support for Intel's EBSA285 companion chip.
153 This is an evaluation board for the StrongARM processor available
154 from Digital. It has limited hardware on-board, including an
155 Ethernet interface, two PCMCIA sockets, two serial ports and a
163 This enables support for the Cirrus EP93xx series of CPUs.
165 config ARCH_FOOTBRIDGE
169 Support for systems based on the DC21285 companion chip
170 ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
173 bool "Hilscher NetX based"
176 This enables support for systems based on the Hilscher NetX Soc
179 bool "Hynix HMS720x-based"
182 This enables support for systems based on the Hynix HMS720x
187 Support for Motorola's i.MX family of processors (MX1, MXL).
193 Support for Intel's IOP3XX (XScale) family of processors.
198 Support for Intel's IXP4XX (XScale) family of processors.
201 bool "IXP2400/2800-based"
204 Support for Intel's IXP2400/2800 (XScale) family of processors.
210 Support for Intel's IXP23xx (XScale) family of processors.
216 Say Y here if you intend to run this kernel on a LinkUp Systems
217 L7200 Software Development Board which uses an ARM720T processor.
218 Information on this board can be obtained at:
220 <http://www.linkupsys.com/>
222 If you have any questions or comments about the Linux kernel port
223 to this board, send e-mail to <sjhill@cotw.com>.
226 bool "Philips Nexperia PNX4008 Mobile"
228 This enables support for Philips PNX4008 mobile platform.
234 Support for Intel's PXA2XX processor line.
241 select ARCH_MAY_HAVE_PC_FDC
244 On the Acorn Risc-PC, Linux can support the internal IDE disk and
245 CD-ROM interface, serial and parallel port, and the floppy drive.
250 select ARCH_DISCONTIGMEM_ENABLE
253 Support for StrongARM 11x0 based boards.
256 bool "Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442"
258 Samsung S3C2410X CPU based systems, such as the Simtec Electronics
259 BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
260 the Samsung SMDK2410 development board (and derivatives).
268 Support for the StrongARM based Digital DNARD machine, also known
269 as "Shark" (<http://www.shark-linux.de/shark.html>).
274 Say Y here for systems based on one of the Sharp LH7A40X
275 System on a Chip processors. These CPUs include an ARM922T
276 core with a wide array of integrated devices for
277 hand-held and low-power applications.
282 Support for TI's OMAP platform (OMAP1 and OMAP2).
286 source "arch/arm/mach-clps711x/Kconfig"
288 source "arch/arm/mach-ep93xx/Kconfig"
290 source "arch/arm/mach-footbridge/Kconfig"
292 source "arch/arm/mach-integrator/Kconfig"
294 source "arch/arm/mach-iop3xx/Kconfig"
296 source "arch/arm/mach-ixp4xx/Kconfig"
298 source "arch/arm/mach-ixp2000/Kconfig"
300 source "arch/arm/mach-ixp23xx/Kconfig"
302 source "arch/arm/mach-pxa/Kconfig"
304 source "arch/arm/mach-sa1100/Kconfig"
306 source "arch/arm/plat-omap/Kconfig"
308 source "arch/arm/mach-omap1/Kconfig"
310 source "arch/arm/mach-omap2/Kconfig"
312 source "arch/arm/mach-s3c2410/Kconfig"
314 source "arch/arm/mach-lh7a40x/Kconfig"
316 source "arch/arm/mach-imx/Kconfig"
318 source "arch/arm/mach-h720x/Kconfig"
320 source "arch/arm/mach-versatile/Kconfig"
322 source "arch/arm/mach-aaec2000/Kconfig"
324 source "arch/arm/mach-realview/Kconfig"
326 source "arch/arm/mach-at91rm9200/Kconfig"
328 source "arch/arm/mach-netx/Kconfig"
330 # Definitions to make life easier
334 source arch/arm/mm/Kconfig
336 # bool 'Use XScale PMU as timer source' CONFIG_XSCALE_PMU_TIMER
339 depends on CPU_XSCALE && !XSCALE_PMU_TIMER
343 source "arch/arm/Kconfig-nommu"
348 source "arch/arm/common/Kconfig"
350 config FORCE_MAX_ZONEORDER
363 Find out whether you have ISA slots on your motherboard. ISA is the
364 name of a bus system, i.e. the way the CPU talks to the other stuff
365 inside your box. Other bus systems are PCI, EISA, MicroChannel
366 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
367 newer boards don't support it. If you have ISA, say Y, otherwise N.
369 # Select ISA DMA controller support
374 # Select ISA DMA interface
379 bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX
381 Find out whether you have a PCI motherboard. PCI is the name of a
382 bus system, i.e. the way the CPU talks to the other stuff inside
383 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
384 VESA. If you have PCI, say Y, otherwise N.
386 The PCI-HOWTO, available from
387 <http://www.tldp.org/docs.html#howto>, contains valuable
388 information about which PCI hardware does work under Linux and which
391 # Select the host bridge type
392 config PCI_HOST_VIA82C505
394 depends on PCI && ARCH_SHARK
397 source "drivers/pci/Kconfig"
399 source "drivers/pcmcia/Kconfig"
403 menu "Kernel Features"
406 bool "Symmetric Multi-Processing (EXPERIMENTAL)"
407 depends on EXPERIMENTAL && REALVIEW_MPCORE
409 This enables support for systems with more than one CPU. If you have
410 a system with only one CPU, like most personal computers, say N. If
411 you have a system with more than one CPU, say Y.
413 If you say N here, the kernel will run on single and multiprocessor
414 machines, but will use only one CPU of a multiprocessor machine. If
415 you say Y here, the kernel will run on many, but not all, single
416 processor machines. On a single processor machine, the kernel will
417 run faster if you say N here.
419 See also the <file:Documentation/smp.txt>,
420 <file:Documentation/i386/IO-APIC.txt>,
421 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
422 <http://www.linuxdoc.org/docs.html#howto>.
424 If you don't know what to do here, say N.
427 int "Maximum number of CPUs (2-32)"
433 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
434 depends on SMP && HOTPLUG && EXPERIMENTAL
436 Say Y here to experiment with turning CPUs off and on. CPUs
437 can be controlled through /sys/devices/system/cpu.
440 bool "Use local timer interrupts"
441 depends on SMP && REALVIEW_MPCORE
444 Enable support for local timers on SMP platforms, rather then the
445 legacy IPI broadcast method. Local timers allows the system
446 accounting to be spread across the timer interval, preventing a
447 "thundering herd" at every timer tick.
450 bool "Preemptible Kernel (EXPERIMENTAL)"
451 depends on EXPERIMENTAL
453 This option reduces the latency of the kernel when reacting to
454 real-time or interactive events by allowing a low priority process to
455 be preempted even if it is in kernel mode executing a system call.
456 This allows applications to run more reliably even when the system is
459 Say Y here if you are building a kernel for a desktop, embedded
460 or real-time system. Say N if you are unsure.
463 bool "Dynamic tick timer"
465 Select this option if you want to disable continuous timer ticks
466 and have them programmed to occur as required. This option saves
467 power as the system can remain in idle state for longer.
469 By default dynamic tick is disabled during the boot, and can be
470 manually enabled with:
472 echo 1 > /sys/devices/system/timer/timer0/dyn_tick
474 Alternatively, if you want dynamic tick automatically enabled
475 during boot, pass "dyntick=enable" via the kernel command string.
477 Please note that dynamic tick may affect the accuracy of
478 timekeeping on some platforms depending on the implementation.
479 Currently at least OMAP, PXA2xx and SA11x0 platforms are known
480 to have accurate timekeeping with dynamic tick.
484 default 128 if ARCH_L7200
485 default 200 if ARCH_EBSA110 || ARCH_S3C2410
486 default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
490 bool "Use the ARM EABI to compile the kernel"
492 This option allows for the kernel to be compiled using the latest
493 ARM ABI (aka EABI). This is only useful if you are using a user
494 space environment that is also compiled with EABI.
496 Since there are major incompatibilities between the legacy ABI and
497 EABI, especially with regard to structure member alignment, this
498 option also changes the kernel syscall calling convention to
499 disambiguate both ABIs and allow for backward compatibility support
500 (selected with CONFIG_OABI_COMPAT).
502 To use this you need GCC version 4.0.0 or later.
505 bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)"
506 depends on AEABI && EXPERIMENTAL
509 This option preserves the old syscall interface along with the
510 new (ARM EABI) one. It also provides a compatibility layer to
511 intercept syscalls that have structure arguments which layout
512 in memory differs between the legacy ABI and the new ARM EABI
513 (only for non "thumb" binaries). This option adds a tiny
514 overhead to all syscalls and produces a slightly larger kernel.
515 If you know you'll be using only pure EABI user space then you
516 can say N here. If this option is not selected and you attempt
517 to execute a legacy ABI binary then the result will be
518 UNPREDICTABLE (in fact it can be predicted that it won't work
519 at all). If in doubt say Y.
521 config ARCH_DISCONTIGMEM_ENABLE
523 default (ARCH_LH7A40X && !LH7A40X_CONTIGMEM)
525 Say Y to support efficient handling of discontiguous physical memory,
526 for architectures which are either NUMA (Non-Uniform Memory Access)
527 or have huge holes in the physical address space for other reasons.
528 See <file:Documentation/vm/numa> for more.
532 default "4" if ARCH_LH7A40X
534 depends on NEED_MULTIPLE_NODES
539 bool "Timer and CPU usage LEDs"
540 depends on ARCH_CDB89712 || ARCH_CO285 || ARCH_EBSA110 || \
541 ARCH_EBSA285 || ARCH_IMX || ARCH_INTEGRATOR || \
542 ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \
543 ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
544 ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
547 If you say Y here, the LEDs on your machine will be used
548 to provide useful information about your current system status.
550 If you are compiling a kernel for a NetWinder or EBSA-285, you will
551 be able to select which LEDs are active using the options below. If
552 you are compiling a kernel for the EBSA-110 or the LART however, the
553 red LED will simply flash regularly to indicate that the system is
554 still functional. It is safe to say Y here if you have a CATS
555 system, but the driver will do nothing.
558 bool "Timer LED" if (!ARCH_CDB89712 && !ARCH_OMAP) || \
559 MACH_OMAP_H2 || MACH_OMAP_PERSEUS2
561 default y if ARCH_EBSA110
563 If you say Y here, one of the system LEDs (the green one on the
564 NetWinder, the amber one on the EBSA285, or the red one on the LART)
565 will flash regularly to indicate that the system is still
566 operational. This is mainly useful to kernel hackers who are
567 debugging unstable kernels.
569 The LART uses the same LED for both Timer LED and CPU usage LED
570 functions. You may choose to use both, but the Timer LED function
571 will overrule the CPU usage LED.
574 bool "CPU usage LED" if (!ARCH_CDB89712 && !ARCH_EBSA110 && \
575 !ARCH_OMAP) || MACH_OMAP_H2 || MACH_OMAP_PERSEUS2
578 If you say Y here, the red LED will be used to give a good real
579 time indication of CPU usage, by lighting whenever the idle task
580 is not currently executing.
582 The LART uses the same LED for both Timer LED and CPU usage LED
583 functions. You may choose to use both, but the Timer LED function
584 will overrule the CPU usage LED.
586 config ALIGNMENT_TRAP
588 default y if !ARCH_EBSA110
590 ARM processors can not fetch/store information which is not
591 naturally aligned on the bus, i.e., a 4 byte fetch must start at an
592 address divisible by 4. On 32-bit ARM processors, these non-aligned
593 fetch/store instructions will be emulated in software if you say
594 here, which has a severe performance impact. This is necessary for
595 correct operation of some network protocols. With an IP-only
596 configuration it is safe to say N, otherwise say Y.
602 # Compressed boot loader in ROM. Yes, we really want to ask about
603 # TEXT and BSS so we preserve their values in the config files.
604 config ZBOOT_ROM_TEXT
605 hex "Compressed ROM boot loader base address"
608 The physical address at which the ROM-able zImage is to be
609 placed in the target. Platforms which normally make use of
610 ROM-able zImage formats normally set this to a suitable
611 value in their defconfig file.
613 If ZBOOT_ROM is not enabled, this has no effect.
616 hex "Compressed ROM boot loader BSS address"
619 The base address of 64KiB of read/write memory in the target
620 for the ROM-able zImage, which must be available while the
621 decompressor is running. Platforms which normally make use of
622 ROM-able zImage formats normally set this to a suitable
623 value in their defconfig file.
625 If ZBOOT_ROM is not enabled, this has no effect.
628 bool "Compressed boot loader in ROM/flash"
629 depends on ZBOOT_ROM_TEXT != ZBOOT_ROM_BSS
631 Say Y here if you intend to execute your compressed kernel image
632 (zImage) directly from ROM or flash. If unsure, say N.
635 string "Default kernel command string"
638 On some architectures (EBSA110 and CATS), there is currently no way
639 for the boot loader to pass arguments to the kernel. For these
640 architectures, you should supply some command-line options at build
641 time by entering them here. As a minimum, you should specify the
642 memory size and the root device (e.g., mem=64M root=/dev/nfs).
645 bool "Kernel Execute-In-Place from ROM"
646 depends on !ZBOOT_ROM
648 Execute-In-Place allows the kernel to run from non-volatile storage
649 directly addressable by the CPU, such as NOR flash. This saves RAM
650 space since the text section of the kernel is not loaded from flash
651 to RAM. Read-write sections, such as the data section and stack,
652 are still copied to RAM. The XIP kernel is not compressed since
653 it has to run directly from flash, so it will take more space to
654 store it. The flash address used to link the kernel object files,
655 and for storing it, is configuration dependent. Therefore, if you
656 say Y here, you must know the proper physical address where to
657 store the kernel image depending on your own flash memory usage.
659 Also note that the make target becomes "make xipImage" rather than
660 "make zImage" or "make Image". The final kernel binary to put in
661 ROM memory will be arch/arm/boot/xipImage.
666 hex "XIP Kernel Physical Location"
667 depends on XIP_KERNEL
670 This is the physical address in your flash memory the kernel will
671 be linked for and stored to. This address is dependent on your
676 if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP1)
678 menu "CPU Frequency scaling"
680 source "drivers/cpufreq/Kconfig"
682 config CPU_FREQ_SA1100
684 depends on CPU_FREQ && (SA1100_H3100 || SA1100_H3600 || SA1100_H3800 || SA1100_LART || SA1100_PLEB || SA1100_BADGE4 || SA1100_HACKKIT)
687 config CPU_FREQ_SA1110
689 depends on CPU_FREQ && (SA1100_ASSABET || SA1100_CERF || SA1100_PT_SYSTEM3)
692 config CPU_FREQ_INTEGRATOR
693 tristate "CPUfreq driver for ARM Integrator CPUs"
694 depends on ARCH_INTEGRATOR && CPU_FREQ
697 This enables the CPUfreq driver for ARM Integrator CPUs.
699 For details, take a look at <file:Documentation/cpu-freq>.
707 menu "Floating point emulation"
709 comment "At least one emulation must be selected"
712 bool "NWFPE math emulation"
713 depends on !AEABI || OABI_COMPAT
715 Say Y to include the NWFPE floating point emulator in the kernel.
716 This is necessary to run most binaries. Linux does not currently
717 support floating point hardware so you need to say Y here even if
718 your machine has an FPA or floating point co-processor podule.
720 You may say N here if you are going to load the Acorn FPEmulator
724 bool "Support extended precision"
727 Say Y to include 80-bit support in the kernel floating-point
728 emulator. Otherwise, only 32 and 64-bit support is compiled in.
729 Note that gcc does not generate 80-bit operations by default,
730 so in most cases this option only enlarges the size of the
731 floating point emulator without any good reason.
733 You almost surely want to say N here.
736 bool "FastFPE math emulation (EXPERIMENTAL)"
737 depends on (!AEABI || OABI_COMPAT) && !CPU_32v3 && EXPERIMENTAL
739 Say Y here to include the FAST floating point emulator in the kernel.
740 This is an experimental much faster emulator which now also has full
741 precision for the mantissa. It does not support any exceptions.
742 It is very simple, and approximately 3-6 times faster than NWFPE.
744 It should be sufficient for most programs. It may be not suitable
745 for scientific calculations, but you have to check this for yourself.
746 If you do not feel you need a faster FP emulation you should better
750 bool "VFP-format floating point maths"
751 depends on CPU_V6 || CPU_ARM926T
753 Say Y to include VFP support code in the kernel. This is needed
754 if your hardware includes a VFP unit.
756 Please see <file:Documentation/arm/VFP/release-notes.txt> for
757 release notes and additional status information.
759 Say N if your target does not have VFP hardware.
763 menu "Userspace binary formats"
765 source "fs/Kconfig.binfmt"
768 tristate "RISC OS personality"
771 Say Y here to include the kernel code necessary if you want to run
772 Acorn RISC OS/Arthur binaries under Linux. This code is still very
773 experimental; if this sounds frightening, say N and sleep in peace.
774 You can also say M here to compile this support as a module (which
775 will be called arthur).
779 menu "Power management options"
781 source "kernel/power/Kconfig"
784 tristate "Advanced Power Management Emulation"
786 APM is a BIOS specification for saving power using several different
787 techniques. This is mostly useful for battery powered laptops with
788 APM compliant BIOSes. If you say Y here, the system time will be
789 reset after a RESUME operation, the /proc/apm device will provide
790 battery status information, and user-space programs will receive
791 notification of APM "events" (e.g. battery status change).
793 In order to use APM, you will need supporting software. For location
794 and more information, read <file:Documentation/pm.txt> and the
795 Battery Powered Linux mini-HOWTO, available from
796 <http://www.tldp.org/docs.html#howto>.
798 This driver does not spin down disk drives (see the hdparm(8)
799 manpage ("man 8 hdparm") for that), and it doesn't turn off
800 VESA-compliant "green" monitors.
802 Generally, if you don't have a battery in your machine, there isn't
803 much point in using this driver and you should say N. If you get
804 random kernel OOPSes or reboots that don't seem to be related to
805 anything, try disabling/enabling this option (or disabling/enabling
812 menu "Device Drivers"
814 source "drivers/base/Kconfig"
816 source "drivers/connector/Kconfig"
819 source "drivers/mtd/Kconfig"
822 source "drivers/parport/Kconfig"
824 source "drivers/pnp/Kconfig"
826 source "drivers/block/Kconfig"
828 source "drivers/acorn/block/Kconfig"
830 if PCMCIA || ARCH_CLPS7500 || ARCH_IOP3XX || ARCH_IXP4XX \
831 || ARCH_L7200 || ARCH_LH7A40X || ARCH_PXA || ARCH_RPC \
832 || ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE \
834 source "drivers/ide/Kconfig"
837 source "drivers/scsi/Kconfig"
839 source "drivers/md/Kconfig"
841 source "drivers/message/fusion/Kconfig"
843 source "drivers/ieee1394/Kconfig"
845 source "drivers/message/i2o/Kconfig"
847 source "drivers/net/Kconfig"
849 source "drivers/isdn/Kconfig"
851 # input before char - char/joystick depends on it. As does USB.
853 source "drivers/input/Kconfig"
855 source "drivers/char/Kconfig"
857 source "drivers/i2c/Kconfig"
859 source "drivers/spi/Kconfig"
861 source "drivers/w1/Kconfig"
863 source "drivers/hwmon/Kconfig"
865 #source "drivers/l3/Kconfig"
867 source "drivers/misc/Kconfig"
869 source "drivers/mfd/Kconfig"
871 source "drivers/leds/Kconfig"
873 source "drivers/media/Kconfig"
875 source "drivers/video/Kconfig"
877 source "sound/Kconfig"
879 source "drivers/usb/Kconfig"
881 source "drivers/mmc/Kconfig"
883 source "drivers/rtc/Kconfig"
889 source "arch/arm/oprofile/Kconfig"
891 source "arch/arm/Kconfig.debug"
893 source "security/Kconfig"
895 source "crypto/Kconfig"