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
252 Say Y to upport 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
424 source "fs/Kconfig.binfmt"
426 source "drivers/base/Kconfig"
429 bool "Power Management support"
431 "Power Management" means that parts of your computer are shut
432 off or put into a power conserving "sleep" mode if they are not
433 being used. There are two competing standards for doing this: APM
434 and ACPI. If you want to use either one, say Y here and then also
435 to the requisite support below.
437 Power Management is most important for battery powered laptop
438 computers; if you have a laptop, check out the Linux Laptop home
439 page on the WWW at <http://www.linux-on-laptops.com/> or
440 Tuxmobil - Linux on Mobile Computers at <http://www.tuxmobil.org/>
441 and the Battery Powered Linux mini-HOWTO, available from
442 <http://www.tldp.org/docs.html#howto>.
444 Note that, even if you say N here, Linux on the x86 architecture
445 will issue the hlt instruction if nothing is to be done, thereby
446 sending the processor to sleep and saving power.
449 bool "Preemptible Kernel (EXPERIMENTAL)"
450 depends on CPU_32 && EXPERIMENTAL
452 This option reduces the latency of the kernel when reacting to
453 real-time or interactive events by allowing a low priority process to
454 be preempted even if it is in kernel mode executing a system call.
455 This allows applications to run more reliably even when the system is
458 Say Y here if you are building a kernel for a desktop, embedded
459 or real-time system. Say N if you are unsure.
462 tristate "Advanced Power Management Emulation"
465 APM is a BIOS specification for saving power using several different
466 techniques. This is mostly useful for battery powered laptops with
467 APM compliant BIOSes. If you say Y here, the system time will be
468 reset after a RESUME operation, the /proc/apm device will provide
469 battery status information, and user-space programs will receive
470 notification of APM "events" (e.g. battery status change).
472 If you select "Y" here, you can disable actual use of the APM
473 BIOS by passing the "apm=off" option to the kernel at boot time.
475 Note that the APM support is almost completely disabled for
476 machines with more than one CPU.
478 In order to use APM, you will need supporting software. For location
479 and more information, read <file:Documentation/pm.txt> and the
480 Battery Powered Linux mini-HOWTO, available from
481 <http://www.tldp.org/docs.html#howto>.
483 This driver does not spin down disk drives (see the hdparm(8)
484 manpage ("man 8 hdparm") for that), and it doesn't turn off
485 VESA-compliant "green" monitors.
487 This driver does not support the TI 4000M TravelMate and the ACER
488 486/DX4/75 because they don't have compliant BIOSes. Many "green"
489 desktop machines also don't have compliant BIOSes, and this driver
490 may cause those machines to panic during the boot phase.
492 Generally, if you don't have a battery in your machine, there isn't
493 much point in using this driver and you should say N. If you get
494 random kernel OOPSes or reboots that don't seem to be related to
495 anything, try disabling/enabling this option (or disabling/enabling
498 Some other things you should try when experiencing seemingly random,
501 1) make sure that you have enough swap space and that it is
503 2) pass the "no-hlt" option to the kernel
504 3) switch on floating point emulation in the kernel and pass
505 the "no387" option to the kernel
506 4) pass the "floppy=nodma" option to the kernel
507 5) pass the "mem=4M" option to the kernel (thereby disabling
508 all but the first 4 MB of RAM)
509 6) make sure that the CPU is not over clocked.
510 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
511 8) disable the cache from your BIOS settings
512 9) install a fan for the video card or exchange video RAM
513 10) install a better fan for the CPU
514 11) exchange RAM chips
515 12) exchange the motherboard.
517 To compile this driver as a module, choose M here: the
518 module will be called apm.
521 tristate "RISC OS personality"
524 Say Y here to include the kernel code necessary if you want to run
525 Acorn RISC OS/Arthur binaries under Linux. This code is still very
526 experimental; if this sounds frightening, say N and sleep in peace.
527 You can also say M here to compile this support as a module (which
528 will be called arthur).
531 string "Default kernel command string"
534 On some architectures (EBSA110 and CATS), there is currently no way
535 for the boot loader to pass arguments to the kernel. For these
536 architectures, you should supply some command-line options at build
537 time by entering them here. As a minimum, you should specify the
538 memory size and the root device (e.g., mem=64M root=/dev/nfs).
541 bool "Timer and CPU usage LEDs"
542 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
544 If you say Y here, the LEDs on your machine will be used
545 to provide useful information about your current system status.
547 If you are compiling a kernel for a NetWinder or EBSA-285, you will
548 be able to select which LEDs are active using the options below. If
549 you are compiling a kernel for the EBSA-110 or the LART however, the
550 red LED will simply flash regularly to indicate that the system is
551 still functional. It is safe to say Y here if you have a CATS
552 system, but the driver will do nothing.
555 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)
556 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
557 default y if ARCH_EBSA110
559 If you say Y here, one of the system LEDs (the green one on the
560 NetWinder, the amber one on the EBSA285, or the red one on the LART)
561 will flash regularly to indicate that the system is still
562 operational. This is mainly useful to kernel hackers who are
563 debugging unstable kernels.
565 The LART uses the same LED for both Timer LED and CPU usage LED
566 functions. You may choose to use both, but the Timer LED function
567 will overrule the CPU usage LED.
571 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)
573 If you say Y here, the red LED will be used to give a good real
574 time indication of CPU usage, by lighting whenever the idle task
575 is not currently executing.
577 The LART uses the same LED for both Timer LED and CPU usage LED
578 functions. You may choose to use both, but the Timer LED function
579 will overrule the CPU usage LED.
581 config ALIGNMENT_TRAP
586 ARM processors can not fetch/store information which is not
587 naturally aligned on the bus, i.e., a 4 byte fetch must start at an
588 address divisible by 4. On 32-bit ARM processors, these non-aligned
589 fetch/store instructions will be emulated in software if you say
590 here, which has a severe performance impact. This is necessary for
591 correct operation of some network protocols. With an IP-only
592 configuration it is safe to say N, otherwise say Y.
596 source "drivers/parport/Kconfig"
599 source "drivers/mtd/Kconfig"
602 source "drivers/pnp/Kconfig"
604 source "drivers/block/Kconfig"
606 source "drivers/md/Kconfig"
608 source "drivers/acorn/block/Kconfig"
612 if ARCH_CLPS7500 || ARCH_IOP3XX || ARCH_IXP4XX || ARCH_L7200 || ARCH_LH7A40X || ARCH_FTVPCI || ARCH_PXA || ARCH_RPC || ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE
613 source "drivers/ide/Kconfig"
616 source "drivers/scsi/Kconfig"
618 source "drivers/message/fusion/Kconfig"
620 source "drivers/ieee1394/Kconfig"
622 source "drivers/message/i2o/Kconfig"
624 source "drivers/isdn/Kconfig"
627 # input before char - char/joystick depends on it. As does USB.
629 source "drivers/input/Kconfig"
631 source "drivers/char/Kconfig"
633 source "drivers/i2c/Kconfig"
635 #source "drivers/l3/Kconfig"
637 source "drivers/media/Kconfig"
641 source "arch/arm/oprofile/Kconfig"
643 source "drivers/video/Kconfig"
645 source "sound/Kconfig"
647 source "drivers/misc/Kconfig"
649 source "drivers/usb/Kconfig"
652 menu "Kernel hacking"
654 # RMK wants arm kernels compiled with frame pointers so hardwire this to y.
655 # If you know what you are doing and are willing to live without stack
656 # traces, you can get a slightly smaller kernel by setting this option to
657 # n, but then RMK will have to kill you ;).
662 If you say N here, the resulting kernel will be slightly smaller and
663 faster. However, when a problem occurs with the kernel, the
664 information that is reported is severely limited. Most people
668 bool "Verbose user fault messages"
670 When a user program crashes due to an exception, the kernel can
671 print a brief message explaining what the problem was. This is
672 sometimes helpful for debugging but serves no purpose on a
673 production system. Most people should say N here.
675 In addition, you need to pass user_debug=N on the kernel command
676 line to enable this feature. N consists of the sum of:
678 1 - undefined instruction events
680 4 - invalid data aborts
685 bool "Include GDB debugging information in kernel binary"
687 Say Y here to include source-level debugging information in the
688 `vmlinux' binary image. This is handy if you want to use gdb or
689 addr2line to debug the kernel. It has no impact on the in-memory
690 footprint of the running kernel but it can increase the amount of
691 time and disk space needed for compilation of the kernel. If in
695 bool "Kernel debugging"
697 Say Y here if you are developing drivers or trying to debug and
698 identify kernel problems.
701 bool "Debug memory allocations"
702 depends on DEBUG_KERNEL
704 Say Y here to have the kernel do limited verification on memory
705 allocation as well as poisoning memory on free to catch use of freed
709 bool "Magic SysRq key"
710 depends on DEBUG_KERNEL
712 If you say Y here, you will have some control over the system even
713 if the system crashes for example during kernel debugging (e.g., you
714 will be able to flush the buffer cache to disk, reboot the system
715 immediately or dump some status information). This is accomplished
716 by pressing various keys while holding SysRq (Alt+PrintScreen). It
717 also works on a serial console (on PC hardware at least), if you
718 send a BREAK and then within 5 seconds a command keypress. The
719 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
720 unless you really know what this hack does.
722 config DEBUG_SPINLOCK
723 bool "Spinlock debugging"
724 depends on DEBUG_KERNEL
726 Say Y here and build SMP to catch missing spinlock initialization
727 and certain other kinds of spinlock errors commonly made. This is
728 best used in conjunction with the NMI watchdog so that spinlock
729 deadlocks are also debuggable.
732 bool "Wait queue debugging"
733 depends on DEBUG_KERNEL
735 config DEBUG_BUGVERBOSE
736 bool "Verbose BUG() reporting (adds 70K)"
737 depends on DEBUG_KERNEL
739 Say Y here to make BUG() panics output the file name and line number
740 of the BUG call as well as the EIP and oops trace. This aids
741 debugging but costs about 70-100K of memory.
744 bool "Verbose kernel error messages"
745 depends on DEBUG_KERNEL
747 This option controls verbose debugging information which can be
748 printed when the kernel detects an internal error. This debugging
749 information is useful to kernel hackers when tracking down problems,
750 but mostly meaningless to other people. It's safe to say Y unless
751 you are concerned with the code size or don't want to see these
754 # These options are only for real kernel hackers who want to get their hands dirty.
756 bool "Kernel low-level debugging functions"
757 depends on DEBUG_KERNEL
759 Say Y here to include definitions of printascii, printchar, printhex
760 in the kernel. This is helpful if you are debugging code that
761 executes before the console is initialized.
764 bool "Kernel low-level debugging via EmbeddedICE DCC channel"
767 Say Y here if you want the debug print routines to direct their
768 output to the EmbeddedICE macrocell's DCC channel using
769 co-processor 14. This is known to work on the ARM9 style ICE
772 It does include a timeout to ensure that the system does not
773 totally freeze when there is nothing connected to read.
775 config DEBUG_DC21285_PORT
776 bool "Kernel low-level debugging messages via footbridge serial port"
777 depends on DEBUG_LL && FOOTBRIDGE
779 Say Y here if you want the debug print routines to direct their
780 output to the serial port in the DC21285 (Footbridge). Saying N
781 will cause the debug messages to appear on the first 16550
784 config DEBUG_CLPS711X_UART2
785 bool "Kernel low-level debugging messages via UART2"
786 depends on DEBUG_LL && ARCH_CLPS711X
788 Say Y here if you want the debug print routines to direct their
789 output to the second serial port on these devices. Saying N will
790 cause the debug messages to appear on the first serial port.
792 config DEBUG_S3C2410_PORT
793 depends on DEBUG_LL && ARCH_S3C2410
794 bool "Kernel low-level debugging messages via S3C2410 UART"
796 Say Y here if you want debug print routines to go to one of the
797 S3C2410 internal UARTs. The chosen UART must have been configured
800 config DEBUG_S3C2410_UART
801 depends on DEBUG_LL && ARCH_S3C2410
802 int "S3C2410 UART to use for low-level debug"
805 Choice for UART for kernel low-level using S3C2410 UARTS,
806 should be between zero and two. The port must have been
807 initalised by the boot-loader before use.
811 source "security/Kconfig"
813 source "crypto/Kconfig"