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"
76 bool "Cirrus-CL-PS7500FE"
79 bool "CLPS711x/EP721x-based"
87 This is an evaluation board for the StrongARM processor available
88 from Digital. It has limited hardware on-board, including an onboard
89 Ethernet interface, two PCMCIA sockets, two serial ports and a
95 This enables support for Altera's Excalibur XA10 development board.
96 If you would like to build your kernel to run on one of these boards
97 then you must say 'Y' here. Otherwise say 'N'
99 config ARCH_FOOTBRIDGE
102 config ARCH_INTEGRATOR
114 Say Y here if you intend to run this kernel on a LinkUp Systems
115 L7200 Software Development Board which uses an ARM720T processor.
116 Information on this board can be obtained at:
118 <http://www.linkupsys.com/>
120 If you have any questions or comments about the Linux kernel port
121 to this board, send e-mail to sjhill@cotw.com.
129 On the Acorn Risc-PC, Linux can support the internal IDE disk and
130 CD-ROM interface, serial and parallel port, and the floppy drive.
136 bool "Samsung S3C2410"
138 Samsung S3C2410X CPU based systems, such as the Simtec Electronics
139 BAST (http://www.simtec.co.uk/products/EB110ITX/), the IPAQ 1940 or
140 the Samsung SMDK2410 development board (and derviatives).
148 Say Y here for systems based on one of the Sharp LH7A40X
149 System on a Chip processors. These CPUs include an ARM922T
150 core with a wide array of integrated devices for
151 hand-held and low-power applications.
156 config ARCH_VERSATILE_PB
159 This enables support for ARM Ltd Versatile PB board.
163 source "arch/arm/mach-clps711x/Kconfig"
165 source "arch/arm/mach-epxa10db/Kconfig"
167 source "arch/arm/mach-footbridge/Kconfig"
169 source "arch/arm/mach-integrator/Kconfig"
171 source "arch/arm/mach-iop3xx/Kconfig"
173 source "arch/arm/mach-ixp4xx/Kconfig"
175 source "arch/arm/mach-pxa/Kconfig"
177 source "arch/arm/mach-sa1100/Kconfig"
179 source "arch/arm/mach-omap/Kconfig"
181 source "arch/arm/mach-s3c2410/Kconfig"
183 source "arch/arm/mach-lh7a40x/Kconfig"
185 # Definitions to make life easier
193 depends on ARCH_ACORN || ARCH_CLPS7500
196 #####################################################################
200 depends on ARCH_CO285 || ARCH_FOOTBRIDGE
203 config FOOTBRIDGE_HOST
205 depends on ARCH_CATS || ARCH_EBSA285_HOST || ARCH_NETWINDER || ARCH_PERSONAL_SERVER
208 config FOOTBRIDGE_ADDIN
210 depends on ARCH_CO285 || ARCH_EBSA285_ADDIN
215 depends on ARCH_EBSA285_HOST || ARCH_EBSA285_ADDIN
218 #####################################################################
222 depends on ASSABET_NEPONSET || SA1100_ADSBITSY || SA1100_BADGE4 || SA1100_CONSUS || SA1100_GRAPHICSMASTER || SA1100_JORNADA720 || ARCH_LUBBOCK || SA1100_PFS168 || SA1100_PT_SYSTEM3 || SA1100_XP860
227 depends on SA1100_COLLIE
230 config FORCE_MAX_ZONEORDER
237 depends on SA1111 || ARCH_IXP4XX
240 source arch/arm/mm/Kconfig
242 # bool 'Use XScale PMU as timer source' CONFIG_XSCALE_PMU_TIMER
245 depends on CPU_XSCALE && !XSCALE_PMU_TIMER
253 # Select various configuration options depending on the machine type
256 depends on ARCH_EDB7211 || ARCH_SA1100 || (ARCH_LH7A40X && !LH7A40X_SROMLL)
259 Say Y to support efficient handling of discontiguous physical memory,
260 for architectures which are either NUMA (Non-Uniform Memory Access)
261 or have huge holes in the physical address space for other reasons.
262 See <file:Documentation/vm/numa> for more.
264 # Now handle the bus types
266 bool "PCI support" if ARCH_INTEGRATOR_AP
267 default y if ARCH_SHARK || FOOTBRIDGE_HOST || ARCH_IOP3XX || ARCH_IXP4XX
269 Find out whether you have a PCI motherboard. PCI is the name of a
270 bus system, i.e. the way the CPU talks to the other stuff inside
271 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
272 VESA. If you have PCI, say Y, otherwise N.
274 The PCI-HOWTO, available from
275 <http://www.tldp.org/docs.html#howto>, contains valuable
276 information about which PCI hardware does work under Linux and which
279 # Select the host bridge type
280 config PCI_HOST_VIA82C505
282 depends on PCI && ARCH_SHARK
287 depends on ARCH_INTEGRATOR
292 depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB
297 depends on FOOTBRIDGE_HOST || ARCH_SHARK || ARCH_CLPS7500 || ARCH_EBSA110 || ARCH_CDB89712 || ARCH_EDB7211 || ARCH_SA1100
300 Find out whether you have ISA slots on your motherboard. ISA is the
301 name of a bus system, i.e. the way the CPU talks to the other stuff
302 inside your box. Other bus systems are PCI, EISA, MicroChannel
303 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
304 newer boards don't support it. If you have ISA, say Y, otherwise N.
308 depends on FOOTBRIDGE_HOST || ARCH_SHARK
313 depends on ARCH_ACORN || ARCH_L7200 || ARCH_LH7A400
316 # Compressed boot loader in ROM. Yes, we really want to ask about
317 # TEXT and BSS so we preserve their values in the config files.
319 bool "Compressed boot loader in ROM/flash"
321 Say Y here if you intend to execute your compressed kernel image (zImage)
322 directly from ROM or flash. If unsure, say N.
324 config ZBOOT_ROM_TEXT
325 hex "Compressed ROM boot loader base address"
328 The base address for zImage. Unless you have special requirements, you
329 should not change this value.
332 hex "Compressed ROM boot loader BSS address"
335 The base address of 64KiB of read/write memory, which must be available
336 while the decompressor is running. Unless you have special requirements,
337 you should not change this value.
340 bool "Support CPU clock change (EXPERIMENTAL)"
341 depends on (ARCH_SA1100 || ARCH_INTEGRATOR) && EXPERIMENTAL
343 CPU clock scaling allows you to change the clock speed of the
344 running CPU on the fly. This is a nice method to save battery power,
345 because the lower the clock speed, the less power the CPU
346 consumes. Note that this driver doesn't automatically change the CPU
347 clock speed, you need some userland tools (which still have to be
348 written) to implement the policy. If you don't understand what this
349 is all about, it's safe to say 'N'.
352 # CPUfreq on SA11x0 is special -- it _needs_ the userspace governor
354 config CPU_FREQ_SA1100
356 depends on CPU_FREQ && SA1100_LART
358 select CPU_FREQ_24_API if SYSCTL
360 config CPU_FREQ_SA1110
362 depends on CPU_FREQ && (SA1100_ASSABET || SA1100_CERF || SA1100_PT_SYSTEM3)
364 select CPU_FREQ_24_API if SYSCTL
366 config CPU_FREQ_INTEGRATOR
367 tristate "CPUfreq driver for ARM Integrator CPUs"
368 depends on ARCH_INTEGRATOR && ICST525 && CPU_FREQ
371 This enables the CPUfreq driver for ARM Integrator CPUs.
373 For details, take a look at linux/Documentation/cpu-freq.
377 if (CPU_FREQ_INTEGRATOR) || (CPU_FREQ_SA1110) || (CPU_FREQ_SA1100)
379 source "drivers/cpufreq/Kconfig"
383 source "drivers/pci/Kconfig"
385 source "drivers/pcmcia/Kconfig"
387 comment "At least one math emulation must be selected"
390 bool "NWFPE math emulation"
392 Say Y to include the NWFPE floating point emulator in the kernel.
393 This is necessary to run most binaries. Linux does not currently
394 support floating point hardware so you need to say Y here even if
395 your machine has an FPA or floating point co-processor podule.
397 You may say N here if you are going to load the Acorn FPEmulator
401 bool "Support extended precision"
404 Say Y to include 80-bit support in the kernel floating-point
405 emulator. Otherwise, only 32 and 64-bit support is compiled in.
406 Note that gcc does not generate 80-bit operations by default,
407 so in most cases this option only enlarges the size of the
408 floating point emulator without any good reason.
410 You almost surely want to say N here.
413 bool "FastFPE math emulation (EXPERIMENTAL)"
414 depends on !CPU_32v3 && EXPERIMENTAL
416 Say Y here to include the FAST floating point emulator in the kernel.
417 This is an experimental much faster emulator which now also has full
418 precision for the mantissa. It does not support any exceptions.
419 It is very simple, and approximately 3-6 times faster than NWFPE.
421 It should be sufficient for most programs. It may be not suitable
422 for scientific calculations, but you have to check this for yourself.
423 If you do not feel you need a faster FP emulation you should better
427 bool "VFP-format floating point maths"
429 Say Y to include VFP support code in the kernel. This is needed
430 if your hardware includes a VFP unit.
432 Please see <file:Documentation/arm/VFP/release-notes.txt> for
433 release notes and additional status information.
435 Say N if your target does not have VFP hardware.
437 source "fs/Kconfig.binfmt"
439 source "drivers/base/Kconfig"
442 bool "Power Management support"
444 "Power Management" means that parts of your computer are shut
445 off or put into a power conserving "sleep" mode if they are not
446 being used. There are two competing standards for doing this: APM
447 and ACPI. If you want to use either one, say Y here and then also
448 to the requisite support below.
450 Power Management is most important for battery powered laptop
451 computers; if you have a laptop, check out the Linux Laptop home
452 page on the WWW at <http://www.linux-on-laptops.com/> or
453 Tuxmobil - Linux on Mobile Computers at <http://www.tuxmobil.org/>
454 and the Battery Powered Linux mini-HOWTO, available from
455 <http://www.tldp.org/docs.html#howto>.
457 Note that, even if you say N here, Linux on the x86 architecture
458 will issue the hlt instruction if nothing is to be done, thereby
459 sending the processor to sleep and saving power.
462 bool "Preemptible Kernel (EXPERIMENTAL)"
463 depends on CPU_32 && EXPERIMENTAL
465 This option reduces the latency of the kernel when reacting to
466 real-time or interactive events by allowing a low priority process to
467 be preempted even if it is in kernel mode executing a system call.
468 This allows applications to run more reliably even when the system is
471 Say Y here if you are building a kernel for a desktop, embedded
472 or real-time system. Say N if you are unsure.
475 tristate "Advanced Power Management Emulation"
478 APM is a BIOS specification for saving power using several different
479 techniques. This is mostly useful for battery powered laptops with
480 APM compliant BIOSes. If you say Y here, the system time will be
481 reset after a RESUME operation, the /proc/apm device will provide
482 battery status information, and user-space programs will receive
483 notification of APM "events" (e.g. battery status change).
485 If you select "Y" here, you can disable actual use of the APM
486 BIOS by passing the "apm=off" option to the kernel at boot time.
488 Note that the APM support is almost completely disabled for
489 machines with more than one CPU.
491 In order to use APM, you will need supporting software. For location
492 and more information, read <file:Documentation/pm.txt> and the
493 Battery Powered Linux mini-HOWTO, available from
494 <http://www.tldp.org/docs.html#howto>.
496 This driver does not spin down disk drives (see the hdparm(8)
497 manpage ("man 8 hdparm") for that), and it doesn't turn off
498 VESA-compliant "green" monitors.
500 This driver does not support the TI 4000M TravelMate and the ACER
501 486/DX4/75 because they don't have compliant BIOSes. Many "green"
502 desktop machines also don't have compliant BIOSes, and this driver
503 may cause those machines to panic during the boot phase.
505 Generally, if you don't have a battery in your machine, there isn't
506 much point in using this driver and you should say N. If you get
507 random kernel OOPSes or reboots that don't seem to be related to
508 anything, try disabling/enabling this option (or disabling/enabling
511 Some other things you should try when experiencing seemingly random,
514 1) make sure that you have enough swap space and that it is
516 2) pass the "no-hlt" option to the kernel
517 3) switch on floating point emulation in the kernel and pass
518 the "no387" option to the kernel
519 4) pass the "floppy=nodma" option to the kernel
520 5) pass the "mem=4M" option to the kernel (thereby disabling
521 all but the first 4 MB of RAM)
522 6) make sure that the CPU is not over clocked.
523 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
524 8) disable the cache from your BIOS settings
525 9) install a fan for the video card or exchange video RAM
526 10) install a better fan for the CPU
527 11) exchange RAM chips
528 12) exchange the motherboard.
530 To compile this driver as a module, choose M here: the
531 module will be called apm.
534 tristate "RISC OS personality"
537 Say Y here to include the kernel code necessary if you want to run
538 Acorn RISC OS/Arthur binaries under Linux. This code is still very
539 experimental; if this sounds frightening, say N and sleep in peace.
540 You can also say M here to compile this support as a module (which
541 will be called arthur).
544 string "Default kernel command string"
547 On some architectures (EBSA110 and CATS), there is currently no way
548 for the boot loader to pass arguments to the kernel. For these
549 architectures, you should supply some command-line options at build
550 time by entering them here. As a minimum, you should specify the
551 memory size and the root device (e.g., mem=64M root=/dev/nfs).
554 bool "Timer and CPU usage LEDs"
555 depends on ARCH_NETWINDER || ARCH_EBSA110 || ARCH_EBSA285 || 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 If you say Y here, the LEDs on your machine will be used
558 to provide useful information about your current system status.
560 If you are compiling a kernel for a NetWinder or EBSA-285, you will
561 be able to select which LEDs are active using the options below. If
562 you are compiling a kernel for the EBSA-110 or the LART however, the
563 red LED will simply flash regularly to indicate that the system is
564 still functional. It is safe to say Y here if you have a CATS
565 system, but the driver will do nothing.
568 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)
569 depends on ARCH_NETWINDER || ARCH_EBSA110 || ARCH_EBSA285 || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_CDB89712 || ARCH_P720T || ARCH_OMAP || ARCH_VERSATILE_PB
570 default y if ARCH_EBSA110
572 If you say Y here, one of the system LEDs (the green one on the
573 NetWinder, the amber one on the EBSA285, or the red one on the LART)
574 will flash regularly to indicate that the system is still
575 operational. This is mainly useful to kernel hackers who are
576 debugging unstable kernels.
578 The LART uses the same LED for both Timer LED and CPU usage LED
579 functions. You may choose to use both, but the Timer LED function
580 will overrule the CPU usage LED.
584 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)
586 If you say Y here, the red LED will be used to give a good real
587 time indication of CPU usage, by lighting whenever the idle task
588 is not currently executing.
590 The LART uses the same LED for both Timer LED and CPU usage LED
591 functions. You may choose to use both, but the Timer LED function
592 will overrule the CPU usage LED.
594 config ALIGNMENT_TRAP
597 default y if !ARCH_EBSA110
599 ARM processors can not fetch/store information which is not
600 naturally aligned on the bus, i.e., a 4 byte fetch must start at an
601 address divisible by 4. On 32-bit ARM processors, these non-aligned
602 fetch/store instructions will be emulated in software if you say
603 here, which has a severe performance impact. This is necessary for
604 correct operation of some network protocols. With an IP-only
605 configuration it is safe to say N, otherwise say Y.
609 source "drivers/parport/Kconfig"
612 source "drivers/mtd/Kconfig"
615 source "drivers/pnp/Kconfig"
617 source "drivers/block/Kconfig"
619 source "drivers/md/Kconfig"
621 source "drivers/acorn/block/Kconfig"
625 if ARCH_CLPS7500 || ARCH_IOP3XX || ARCH_IXP4XX || ARCH_L7200 || ARCH_LH7A40X || ARCH_PXA || ARCH_RPC || ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE
626 source "drivers/ide/Kconfig"
629 source "drivers/scsi/Kconfig"
631 source "drivers/message/fusion/Kconfig"
633 source "drivers/ieee1394/Kconfig"
635 source "drivers/message/i2o/Kconfig"
637 source "drivers/isdn/Kconfig"
640 # input before char - char/joystick depends on it. As does USB.
642 source "drivers/input/Kconfig"
644 source "drivers/char/Kconfig"
646 source "drivers/i2c/Kconfig"
648 #source "drivers/l3/Kconfig"
650 source "drivers/media/Kconfig"
654 source "arch/arm/oprofile/Kconfig"
656 source "drivers/video/Kconfig"
658 source "sound/Kconfig"
660 source "drivers/misc/Kconfig"
662 source "drivers/usb/Kconfig"
665 menu "Kernel hacking"
667 # RMK wants arm kernels compiled with frame pointers so hardwire this to y.
668 # If you know what you are doing and are willing to live without stack
669 # traces, you can get a slightly smaller kernel by setting this option to
670 # n, but then RMK will have to kill you ;).
675 If you say N here, the resulting kernel will be slightly smaller and
676 faster. However, when a problem occurs with the kernel, the
677 information that is reported is severely limited. Most people
681 bool "Verbose user fault messages"
683 When a user program crashes due to an exception, the kernel can
684 print a brief message explaining what the problem was. This is
685 sometimes helpful for debugging but serves no purpose on a
686 production system. Most people should say N here.
688 In addition, you need to pass user_debug=N on the kernel command
689 line to enable this feature. N consists of the sum of:
691 1 - undefined instruction events
693 4 - invalid data aborts
698 bool "Include GDB debugging information in kernel binary"
700 Say Y here to include source-level debugging information in the
701 `vmlinux' binary image. This is handy if you want to use gdb or
702 addr2line to debug the kernel. It has no impact on the in-memory
703 footprint of the running kernel but it can increase the amount of
704 time and disk space needed for compilation of the kernel. If in
708 bool "Kernel debugging"
710 Say Y here if you are developing drivers or trying to debug and
711 identify kernel problems.
714 bool "Debug memory allocations"
715 depends on DEBUG_KERNEL
717 Say Y here to have the kernel do limited verification on memory
718 allocation as well as poisoning memory on free to catch use of freed
722 bool "Magic SysRq key"
723 depends on DEBUG_KERNEL
725 If you say Y here, you will have some control over the system even
726 if the system crashes for example during kernel debugging (e.g., you
727 will be able to flush the buffer cache to disk, reboot the system
728 immediately or dump some status information). This is accomplished
729 by pressing various keys while holding SysRq (Alt+PrintScreen). It
730 also works on a serial console (on PC hardware at least), if you
731 send a BREAK and then within 5 seconds a command keypress. The
732 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
733 unless you really know what this hack does.
735 config DEBUG_SPINLOCK
736 bool "Spinlock debugging"
737 depends on DEBUG_KERNEL
739 Say Y here and build SMP to catch missing spinlock initialization
740 and certain other kinds of spinlock errors commonly made. This is
741 best used in conjunction with the NMI watchdog so that spinlock
742 deadlocks are also debuggable.
745 bool "Wait queue debugging"
746 depends on DEBUG_KERNEL
748 config DEBUG_BUGVERBOSE
749 bool "Verbose BUG() reporting (adds 70K)"
750 depends on DEBUG_KERNEL
752 Say Y here to make BUG() panics output the file name and line number
753 of the BUG call as well as the EIP and oops trace. This aids
754 debugging but costs about 70-100K of memory.
757 bool "Verbose kernel error messages"
758 depends on DEBUG_KERNEL
760 This option controls verbose debugging information which can be
761 printed when the kernel detects an internal error. This debugging
762 information is useful to kernel hackers when tracking down problems,
763 but mostly meaningless to other people. It's safe to say Y unless
764 you are concerned with the code size or don't want to see these
767 # These options are only for real kernel hackers who want to get their hands dirty.
769 bool "Kernel low-level debugging functions"
770 depends on DEBUG_KERNEL
772 Say Y here to include definitions of printascii, printchar, printhex
773 in the kernel. This is helpful if you are debugging code that
774 executes before the console is initialized.
777 bool "Kernel low-level debugging via EmbeddedICE DCC channel"
780 Say Y here if you want the debug print routines to direct their
781 output to the EmbeddedICE macrocell's DCC channel using
782 co-processor 14. This is known to work on the ARM9 style ICE
785 It does include a timeout to ensure that the system does not
786 totally freeze when there is nothing connected to read.
788 config DEBUG_DC21285_PORT
789 bool "Kernel low-level debugging messages via footbridge serial port"
790 depends on DEBUG_LL && FOOTBRIDGE
792 Say Y here if you want the debug print routines to direct their
793 output to the serial port in the DC21285 (Footbridge). Saying N
794 will cause the debug messages to appear on the first 16550
797 config DEBUG_CLPS711X_UART2
798 bool "Kernel low-level debugging messages via UART2"
799 depends on DEBUG_LL && ARCH_CLPS711X
801 Say Y here if you want the debug print routines to direct their
802 output to the second serial port on these devices. Saying N will
803 cause the debug messages to appear on the first serial port.
805 config DEBUG_S3C2410_PORT
806 depends on DEBUG_LL && ARCH_S3C2410
807 bool "Kernel low-level debugging messages via S3C2410 UART"
809 Say Y here if you want debug print routines to go to one of the
810 S3C2410 internal UARTs. The chosen UART must have been configured
813 config DEBUG_S3C2410_UART
814 depends on DEBUG_LL && ARCH_S3C2410
815 int "S3C2410 UART to use for low-level debug"
818 Choice for UART for kernel low-level using S3C2410 UARTS,
819 should be between zero and two. The port must have been
820 initalised by the boot-loader before use.
824 source "kernel/vserver/Kconfig"
826 source "security/Kconfig"
828 source "crypto/Kconfig"