2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
6 mainmenu "Linux Kernel Configuration"
12 The ARM series is a line of low-power-consumption RISC chip designs
13 licensed by ARM ltd and targeted at embedded applications and
14 handhelds such as the Compaq IPAQ. ARM-based PCs are no longer
15 manufactured, but legacy ARM-based PC hardware remains popular in
16 Europe. There is an ARM Linux project with a web page at
17 <http://www.arm.linux.org.uk/>.
26 The Extended Industry Standard Architecture (EISA) bus was
27 developed as an open alternative to the IBM MicroChannel bus.
29 The EISA bus provided some of the features of the IBM MicroChannel
30 bus while maintaining backward compatibility with cards made for
31 the older ISA bus. The EISA bus saw limited use between 1988 and
32 1995 when it was made obsolete by the PCI bus.
34 Say Y here if you are building a kernel for an EISA-based machine.
44 MicroChannel Architecture is found in some IBM PS/2 machines and
45 laptops. It is a bus system similar to PCI or ISA. See
46 <file:Documentation/mca.txt> (and especially the web page given
47 there) before attempting to build an MCA bus kernel.
53 config RWSEM_GENERIC_SPINLOCK
57 config RWSEM_XCHGADD_ALGORITHM
60 config GENERIC_BUST_SPINLOCK
63 config GENERIC_ISA_DMA
72 prompt "ARM system type"
79 bool "Cirrus-CL-PS7500FE"
82 bool "CLPS711x/EP721x-based"
90 This is an evaluation board for the StrongARM processor available
91 from Digital. It has limited hardware on-board, including an onboard
92 Ethernet interface, two PCMCIA sockets, two serial ports and a
98 This enables support for Altera's Excalibur XA10 development board.
99 If you would like to build your kernel to run on one of these boards
100 then you must say 'Y' here. Otherwise say 'N'
102 config ARCH_FOOTBRIDGE
105 config ARCH_INTEGRATOR
117 Say Y here if you intend to run this kernel on a LinkUp Systems
118 L7200 Software Development Board which uses an ARM720T processor.
119 Information on this board can be obtained at:
121 <http://www.linkupsys.com/>
123 If you have any questions or comments about the Linux kernel port
124 to this board, send e-mail to sjhill@cotw.com.
132 On the Acorn Risc-PC, Linux can support the internal IDE disk and
133 CD-ROM interface, serial and parallel port, and the floppy drive.
139 bool "Samsung S3C2410"
141 Samsung S3C2410X CPU based systems, such as the Simtec Electronics
142 BAST (http://www.simtec.co.uk/products/EB110ITX/), the IPAQ 1940 or
143 the Samsung SMDK2410 development board (and derviatives).
151 Say Y here for systems based on one of the Sharp LH7A40X
152 System on a Chip processors. These CPUs include an ARM922T
153 core with a wide array of integrated devices for
154 hand-held and low-power applications.
159 config ARCH_VERSATILE_PB
162 This enables support for ARM Ltd Versatile PB board.
166 source "arch/arm/mach-clps711x/Kconfig"
168 source "arch/arm/mach-epxa10db/Kconfig"
170 source "arch/arm/mach-footbridge/Kconfig"
172 source "arch/arm/mach-integrator/Kconfig"
174 source "arch/arm/mach-iop3xx/Kconfig"
176 source "arch/arm/mach-ixp4xx/Kconfig"
178 source "arch/arm/mach-pxa/Kconfig"
180 source "arch/arm/mach-sa1100/Kconfig"
182 source "arch/arm/mach-omap/Kconfig"
184 source "arch/arm/mach-s3c2410/Kconfig"
186 source "arch/arm/mach-lh7a40x/Kconfig"
188 # Definitions to make life easier
194 #####################################################################
198 depends on ARCH_CO285 || ARCH_FOOTBRIDGE
201 config FOOTBRIDGE_HOST
203 depends on ARCH_CATS || ARCH_EBSA285_HOST || ARCH_NETWINDER || ARCH_PERSONAL_SERVER
206 config FOOTBRIDGE_ADDIN
208 depends on ARCH_CO285 || ARCH_EBSA285_ADDIN
213 depends on ARCH_EBSA285_HOST || ARCH_EBSA285_ADDIN
216 #####################################################################
220 depends on ASSABET_NEPONSET || SA1100_ADSBITSY || SA1100_BADGE4 || SA1100_CONSUS || SA1100_GRAPHICSMASTER || SA1100_JORNADA720 || ARCH_LUBBOCK || SA1100_PFS168 || SA1100_PT_SYSTEM3 || SA1100_XP860
223 config FORCE_MAX_ZONEORDER
230 depends on SA1111 || ARCH_IXP4XX
233 source arch/arm/mm/Kconfig
235 # bool 'Use XScale PMU as timer source' CONFIG_XSCALE_PMU_TIMER
238 depends on CPU_XSCALE && !XSCALE_PMU_TIMER
246 # Select various configuration options depending on the machine type
249 depends on ARCH_EDB7211 || ARCH_SA1100 || (ARCH_LH7A40X && !LH7A40X_SROMLL)
252 Say Y to support efficient handling of discontiguous physical memory,
253 for architectures which are either NUMA (Non-Uniform Memory Access)
254 or have huge holes in the physical address space for other reasons.
255 See <file:Documentation/vm/numa> for more.
257 # Now handle the bus types
259 bool "PCI support" if ARCH_INTEGRATOR_AP
260 default y if ARCH_FTVPCI || ARCH_SHARK || FOOTBRIDGE_HOST || ARCH_IOP3XX || ARCH_IXP4XX
262 Find out whether you have a PCI motherboard. PCI is the name of a
263 bus system, i.e. the way the CPU talks to the other stuff inside
264 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
265 VESA. If you have PCI, say Y, otherwise N.
267 The PCI-HOWTO, available from
268 <http://www.tldp.org/docs.html#howto>, contains valuable
269 information about which PCI hardware does work under Linux and which
272 # Select the host bridge type
273 config PCI_HOST_PLX90X0
275 depends on PCI && ARCH_FTVPCI
278 config PCI_HOST_VIA82C505
280 depends on PCI && ARCH_SHARK
285 depends on ARCH_INTEGRATOR
290 depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB
295 depends on FOOTBRIDGE_HOST || ARCH_SHARK || ARCH_CLPS7500 || ARCH_EBSA110 || ARCH_CDB89712 || ARCH_EDB7211 || ARCH_SA1100
298 Find out whether you have ISA slots on your motherboard. ISA is the
299 name of a bus system, i.e. the way the CPU talks to the other stuff
300 inside your box. Other bus systems are PCI, EISA, MicroChannel
301 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
302 newer boards don't support it. If you have ISA, say Y, otherwise N.
306 depends on FOOTBRIDGE_HOST || ARCH_SHARK
311 depends on ARCH_ACORN || ARCH_L7200 || ARCH_LH7A400
314 # Compressed boot loader in ROM. Yes, we really want to ask about
315 # TEXT and BSS so we preserve their values in the config files.
317 bool "Compressed boot loader in ROM/flash"
319 Say Y here if you intend to execute your compressed kernel image (zImage)
320 directly from ROM or flash. If unsure, say N.
322 config ZBOOT_ROM_TEXT
323 hex "Compressed ROM boot loader base address"
326 The base address for zImage. Unless you have special requirements, you
327 should not change this value.
330 hex "Compressed ROM boot loader BSS address"
333 The base address of 64KiB of read/write memory, which must be available
334 while the decompressor is running. Unless you have special requirements,
335 you should not change this value.
338 bool "Support CPU clock change (EXPERIMENTAL)"
339 depends on (ARCH_SA1100 || ARCH_INTEGRATOR) && EXPERIMENTAL
341 CPU clock scaling allows you to change the clock speed of the
342 running CPU on the fly. This is a nice method to save battery power,
343 because the lower the clock speed, the less power the CPU
344 consumes. Note that this driver doesn't automatically change the CPU
345 clock speed, you need some userland tools (which still have to be
346 written) to implement the policy. If you don't understand what this
347 is all about, it's safe to say 'N'.
350 # CPUfreq on SA11x0 is special -- it _needs_ the userspace governor
352 config CPU_FREQ_SA1100
354 depends on CPU_FREQ && SA1100_LART
356 select CPU_FREQ_24_API if SYSCTL
358 config CPU_FREQ_SA1110
360 depends on CPU_FREQ && (SA1100_ASSABET || SA1100_CERF || SA1100_PT_SYSTEM3)
362 select CPU_FREQ_24_API if SYSCTL
364 config CPU_FREQ_INTEGRATOR
365 tristate "CPUfreq driver for ARM Integrator CPUs"
366 depends on ARCH_INTEGRATOR && ICST525 && CPU_FREQ
369 This enables the CPUfreq driver for ARM Integrator CPUs.
371 For details, take a look at linux/Documentation/cpu-freq.
375 if (CPU_FREQ_INTEGRATOR) || (CPU_FREQ_SA1110) || (CPU_FREQ_SA1100)
377 source "drivers/cpufreq/Kconfig"
381 source "drivers/pci/Kconfig"
383 source "drivers/pcmcia/Kconfig"
385 comment "At least one math emulation must be selected"
388 bool "NWFPE math emulation"
390 Say Y to include the NWFPE floating point emulator in the kernel.
391 This is necessary to run most binaries. Linux does not currently
392 support floating point hardware so you need to say Y here even if
393 your machine has an FPA or floating point co-processor podule.
395 You may say N here if you are going to load the Acorn FPEmulator
399 bool "Support extended precision"
402 Say Y to include 80-bit support in the kernel floating-point
403 emulator. Otherwise, only 32 and 64-bit support is compiled in.
404 Note that gcc does not generate 80-bit operations by default,
405 so in most cases this option only enlarges the size of the
406 floating point emulator without any good reason.
408 You almost surely want to say N here.
411 bool "FastFPE math emulation (EXPERIMENTAL)"
412 depends on !CPU_32v3 && EXPERIMENTAL
414 Say Y here to include the FAST floating point emulator in the kernel.
415 This is an experimental much faster emulator which now also has full
416 precision for the mantissa. It does not support any exceptions.
417 It is very simple, and approximately 3-6 times faster than NWFPE.
419 It should be sufficient for most programs. It may be not suitable
420 for scientific calculations, but you have to check this for yourself.
421 If you do not feel you need a faster FP emulation you should better
425 bool "VFP-format floating point maths"
427 Say Y to include VFP support code in the kernel. This is needed
428 if your hardware includes a VFP unit.
430 Please see <file:Documentation/arm/VFP/release-notes.txt> for
431 release notes and additional status information.
433 Say N if your target does not have VFP hardware.
435 source "fs/Kconfig.binfmt"
437 source "drivers/base/Kconfig"
440 bool "Power Management support"
442 "Power Management" means that parts of your computer are shut
443 off or put into a power conserving "sleep" mode if they are not
444 being used. There are two competing standards for doing this: APM
445 and ACPI. If you want to use either one, say Y here and then also
446 to the requisite support below.
448 Power Management is most important for battery powered laptop
449 computers; if you have a laptop, check out the Linux Laptop home
450 page on the WWW at <http://www.linux-on-laptops.com/> or
451 Tuxmobil - Linux on Mobile Computers at <http://www.tuxmobil.org/>
452 and the Battery Powered Linux mini-HOWTO, available from
453 <http://www.tldp.org/docs.html#howto>.
455 Note that, even if you say N here, Linux on the x86 architecture
456 will issue the hlt instruction if nothing is to be done, thereby
457 sending the processor to sleep and saving power.
460 bool "Preemptible Kernel (EXPERIMENTAL)"
461 depends on CPU_32 && EXPERIMENTAL
463 This option reduces the latency of the kernel when reacting to
464 real-time or interactive events by allowing a low priority process to
465 be preempted even if it is in kernel mode executing a system call.
466 This allows applications to run more reliably even when the system is
469 Say Y here if you are building a kernel for a desktop, embedded
470 or real-time system. Say N if you are unsure.
473 tristate "Advanced Power Management Emulation"
476 APM is a BIOS specification for saving power using several different
477 techniques. This is mostly useful for battery powered laptops with
478 APM compliant BIOSes. If you say Y here, the system time will be
479 reset after a RESUME operation, the /proc/apm device will provide
480 battery status information, and user-space programs will receive
481 notification of APM "events" (e.g. battery status change).
483 If you select "Y" here, you can disable actual use of the APM
484 BIOS by passing the "apm=off" option to the kernel at boot time.
486 Note that the APM support is almost completely disabled for
487 machines with more than one CPU.
489 In order to use APM, you will need supporting software. For location
490 and more information, read <file:Documentation/pm.txt> and the
491 Battery Powered Linux mini-HOWTO, available from
492 <http://www.tldp.org/docs.html#howto>.
494 This driver does not spin down disk drives (see the hdparm(8)
495 manpage ("man 8 hdparm") for that), and it doesn't turn off
496 VESA-compliant "green" monitors.
498 This driver does not support the TI 4000M TravelMate and the ACER
499 486/DX4/75 because they don't have compliant BIOSes. Many "green"
500 desktop machines also don't have compliant BIOSes, and this driver
501 may cause those machines to panic during the boot phase.
503 Generally, if you don't have a battery in your machine, there isn't
504 much point in using this driver and you should say N. If you get
505 random kernel OOPSes or reboots that don't seem to be related to
506 anything, try disabling/enabling this option (or disabling/enabling
509 Some other things you should try when experiencing seemingly random,
512 1) make sure that you have enough swap space and that it is
514 2) pass the "no-hlt" option to the kernel
515 3) switch on floating point emulation in the kernel and pass
516 the "no387" option to the kernel
517 4) pass the "floppy=nodma" option to the kernel
518 5) pass the "mem=4M" option to the kernel (thereby disabling
519 all but the first 4 MB of RAM)
520 6) make sure that the CPU is not over clocked.
521 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
522 8) disable the cache from your BIOS settings
523 9) install a fan for the video card or exchange video RAM
524 10) install a better fan for the CPU
525 11) exchange RAM chips
526 12) exchange the motherboard.
528 To compile this driver as a module, choose M here: the
529 module will be called apm.
532 tristate "RISC OS personality"
535 Say Y here to include the kernel code necessary if you want to run
536 Acorn RISC OS/Arthur binaries under Linux. This code is still very
537 experimental; if this sounds frightening, say N and sleep in peace.
538 You can also say M here to compile this support as a module (which
539 will be called arthur).
542 string "Default kernel command string"
545 On some architectures (EBSA110 and CATS), there is currently no way
546 for the boot loader to pass arguments to the kernel. For these
547 architectures, you should supply some command-line options at build
548 time by entering them here. As a minimum, you should specify the
549 memory size and the root device (e.g., mem=64M root=/dev/nfs).
552 bool "Timer and CPU usage LEDs"
553 depends on ARCH_NETWINDER || ARCH_EBSA110 || ARCH_EBSA285 || ARCH_FTVPCI || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_CDB89712 || ARCH_P720T || ARCH_OMAP || ARCH_VERSATILE_PB
555 If you say Y here, the LEDs on your machine will be used
556 to provide useful information about your current system status.
558 If you are compiling a kernel for a NetWinder or EBSA-285, you will
559 be able to select which LEDs are active using the options below. If
560 you are compiling a kernel for the EBSA-110 or the LART however, the
561 red LED will simply flash regularly to indicate that the system is
562 still functional. It is safe to say Y here if you have a CATS
563 system, but the driver will do nothing.
566 bool "Timer LED" if LEDS && (ARCH_NETWINDER || ARCH_EBSA285 || ARCH_SHARK || MACH_MAINSTONE || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_P720T || ARCH_VERSATILE_PB)
567 depends on ARCH_NETWINDER || ARCH_EBSA110 || ARCH_EBSA285 || ARCH_FTVPCI || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_CDB89712 || ARCH_P720T || ARCH_OMAP || ARCH_VERSATILE_PB
568 default y if ARCH_EBSA110
570 If you say Y here, one of the system LEDs (the green one on the
571 NetWinder, the amber one on the EBSA285, or the red one on the LART)
572 will flash regularly to indicate that the system is still
573 operational. This is mainly useful to kernel hackers who are
574 debugging unstable kernels.
576 The LART uses the same LED for both Timer LED and CPU usage LED
577 functions. You may choose to use both, but the Timer LED function
578 will overrule the CPU usage LED.
582 depends on LEDS && (ARCH_NETWINDER || ARCH_EBSA285 || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_P720T || ARCH_VERSATILE_PB)
584 If you say Y here, the red LED will be used to give a good real
585 time indication of CPU usage, by lighting whenever the idle task
586 is not currently executing.
588 The LART uses the same LED for both Timer LED and CPU usage LED
589 functions. You may choose to use both, but the Timer LED function
590 will overrule the CPU usage LED.
592 config ALIGNMENT_TRAP
595 default y if !ARCH_EBSA110
597 ARM processors can not fetch/store information which is not
598 naturally aligned on the bus, i.e., a 4 byte fetch must start at an
599 address divisible by 4. On 32-bit ARM processors, these non-aligned
600 fetch/store instructions will be emulated in software if you say
601 here, which has a severe performance impact. This is necessary for
602 correct operation of some network protocols. With an IP-only
603 configuration it is safe to say N, otherwise say Y.
607 source "drivers/parport/Kconfig"
610 source "drivers/mtd/Kconfig"
613 source "drivers/pnp/Kconfig"
615 source "drivers/block/Kconfig"
617 source "drivers/md/Kconfig"
619 source "drivers/acorn/block/Kconfig"
623 if ARCH_CLPS7500 || ARCH_IOP3XX || ARCH_IXP4XX || ARCH_L7200 || ARCH_LH7A40X || ARCH_FTVPCI || ARCH_PXA || ARCH_RPC || ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE
624 source "drivers/ide/Kconfig"
627 source "drivers/scsi/Kconfig"
629 source "drivers/message/fusion/Kconfig"
631 source "drivers/ieee1394/Kconfig"
633 source "drivers/message/i2o/Kconfig"
635 source "drivers/isdn/Kconfig"
638 # input before char - char/joystick depends on it. As does USB.
640 source "drivers/input/Kconfig"
642 source "drivers/char/Kconfig"
644 source "drivers/i2c/Kconfig"
646 #source "drivers/l3/Kconfig"
648 source "drivers/media/Kconfig"
652 source "arch/arm/oprofile/Kconfig"
654 source "drivers/video/Kconfig"
656 source "sound/Kconfig"
658 source "drivers/misc/Kconfig"
660 source "drivers/usb/Kconfig"
663 menu "Kernel hacking"
665 # RMK wants arm kernels compiled with frame pointers so hardwire this to y.
666 # If you know what you are doing and are willing to live without stack
667 # traces, you can get a slightly smaller kernel by setting this option to
668 # n, but then RMK will have to kill you ;).
673 If you say N here, the resulting kernel will be slightly smaller and
674 faster. However, when a problem occurs with the kernel, the
675 information that is reported is severely limited. Most people
679 bool "Verbose user fault messages"
681 When a user program crashes due to an exception, the kernel can
682 print a brief message explaining what the problem was. This is
683 sometimes helpful for debugging but serves no purpose on a
684 production system. Most people should say N here.
686 In addition, you need to pass user_debug=N on the kernel command
687 line to enable this feature. N consists of the sum of:
689 1 - undefined instruction events
691 4 - invalid data aborts
696 bool "Include GDB debugging information in kernel binary"
698 Say Y here to include source-level debugging information in the
699 `vmlinux' binary image. This is handy if you want to use gdb or
700 addr2line to debug the kernel. It has no impact on the in-memory
701 footprint of the running kernel but it can increase the amount of
702 time and disk space needed for compilation of the kernel. If in
706 bool "Kernel debugging"
708 Say Y here if you are developing drivers or trying to debug and
709 identify kernel problems.
712 bool "Debug memory allocations"
713 depends on DEBUG_KERNEL
715 Say Y here to have the kernel do limited verification on memory
716 allocation as well as poisoning memory on free to catch use of freed
720 bool "Magic SysRq key"
721 depends on DEBUG_KERNEL
723 If you say Y here, you will have some control over the system even
724 if the system crashes for example during kernel debugging (e.g., you
725 will be able to flush the buffer cache to disk, reboot the system
726 immediately or dump some status information). This is accomplished
727 by pressing various keys while holding SysRq (Alt+PrintScreen). It
728 also works on a serial console (on PC hardware at least), if you
729 send a BREAK and then within 5 seconds a command keypress. The
730 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
731 unless you really know what this hack does.
733 config DEBUG_SPINLOCK
734 bool "Spinlock debugging"
735 depends on DEBUG_KERNEL
737 Say Y here and build SMP to catch missing spinlock initialization
738 and certain other kinds of spinlock errors commonly made. This is
739 best used in conjunction with the NMI watchdog so that spinlock
740 deadlocks are also debuggable.
743 bool "Wait queue debugging"
744 depends on DEBUG_KERNEL
746 config DEBUG_BUGVERBOSE
747 bool "Verbose BUG() reporting (adds 70K)"
748 depends on DEBUG_KERNEL
750 Say Y here to make BUG() panics output the file name and line number
751 of the BUG call as well as the EIP and oops trace. This aids
752 debugging but costs about 70-100K of memory.
755 bool "Verbose kernel error messages"
756 depends on DEBUG_KERNEL
758 This option controls verbose debugging information which can be
759 printed when the kernel detects an internal error. This debugging
760 information is useful to kernel hackers when tracking down problems,
761 but mostly meaningless to other people. It's safe to say Y unless
762 you are concerned with the code size or don't want to see these
765 # These options are only for real kernel hackers who want to get their hands dirty.
767 bool "Kernel low-level debugging functions"
768 depends on DEBUG_KERNEL
770 Say Y here to include definitions of printascii, printchar, printhex
771 in the kernel. This is helpful if you are debugging code that
772 executes before the console is initialized.
775 bool "Kernel low-level debugging via EmbeddedICE DCC channel"
778 Say Y here if you want the debug print routines to direct their
779 output to the EmbeddedICE macrocell's DCC channel using
780 co-processor 14. This is known to work on the ARM9 style ICE
783 It does include a timeout to ensure that the system does not
784 totally freeze when there is nothing connected to read.
786 config DEBUG_DC21285_PORT
787 bool "Kernel low-level debugging messages via footbridge serial port"
788 depends on DEBUG_LL && FOOTBRIDGE
790 Say Y here if you want the debug print routines to direct their
791 output to the serial port in the DC21285 (Footbridge). Saying N
792 will cause the debug messages to appear on the first 16550
795 config DEBUG_CLPS711X_UART2
796 bool "Kernel low-level debugging messages via UART2"
797 depends on DEBUG_LL && ARCH_CLPS711X
799 Say Y here if you want the debug print routines to direct their
800 output to the second serial port on these devices. Saying N will
801 cause the debug messages to appear on the first serial port.
803 config DEBUG_S3C2410_PORT
804 depends on DEBUG_LL && ARCH_S3C2410
805 bool "Kernel low-level debugging messages via S3C2410 UART"
807 Say Y here if you want debug print routines to go to one of the
808 S3C2410 internal UARTs. The chosen UART must have been configured
811 config DEBUG_S3C2410_UART
812 depends on DEBUG_LL && ARCH_S3C2410
813 int "S3C2410 UART to use for low-level debug"
816 Choice for UART for kernel low-level using S3C2410 UARTS,
817 should be between zero and two. The port must have been
818 initalised by the boot-loader before use.
822 source "kernel/vserver/Kconfig"
824 source "security/Kconfig"
826 source "crypto/Kconfig"