2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
6 mainmenu "Linux Kernel Configuration"
12 This is Linux's home port. Linux was originally native to the Intel
13 386, and runs on all the later x86 processors including the Intel
14 486, 586, Pentiums, and various instruction-set-compatible chips by
15 AMD, Cyrix, and others.
28 config GENERIC_ISA_DMA
35 menu "Processor type and features"
38 prompt "Subarchitecture Type"
44 Choose this option if your computer is a standard PC or compatible.
49 Voyager is a MCA based 32 way capable SMP architecture proprietary
50 to NCR Corp. Machine classes 345x/35xx/4100/51xx are voyager based.
54 If you do not specifically know you have a Voyager based machine,
55 say N here otherwise the kernel you build will not be bootable.
58 bool "NUMAQ (IBM/Sequent)"
60 This option is used for getting Linux to run on a (IBM/Sequent) NUMA
61 multiquad box. This changes the way that processors are bootstrapped,
62 and uses Clustered Logical APIC addressing mode instead of Flat Logical.
63 You will need a new lynxer.elf file to flash your firmware with - send
64 email to Martin.Bligh@us.ibm.com
67 bool "Summit/EXA (IBM x440)"
70 This option is needed for IBM systems that use the Summit/EXA chipset.
71 In particular, it is needed for the x440.
73 If you don't have one of these computers, you should say N here.
76 bool "Support for other sub-arch SMP systems with more than 8 CPUs"
79 This option is needed for the systems that have more than 8 CPUs
80 and if the system is not of any sub-arch type above.
82 If you don't have such a system, you should say N here.
85 bool "SGI 320/540 (Visual Workstation)"
87 The SGI Visual Workstation series is an IA32-based workstation
88 based on SGI systems chips with some legacy PC hardware attached.
90 Say Y here to create a kernel to run on the SGI 320 or 540.
92 A kernel compiled for the Visual Workstation will not run on PCs
93 and vice versa. See <file:Documentation/sgi-visws.txt> for details.
95 config X86_GENERICARCH
96 bool "Generic architecture (Summit, bigsmp, default)"
99 This option compiles in the Summit, bigsmp, default subarchitectures.
100 It is intended for a generic binary kernel.
103 bool "Support for Unisys ES7000 IA32 series"
106 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is
107 supposed to run on an IA32-based Unisys ES7000 system.
108 Only choose this option if you have such a system, otherwise you
116 depends on NUMA && (X86_SUMMIT || X86_GENERICARCH)
118 config X86_CYCLONE_TIMER
121 depends on X86_SUMMIT || X86_GENERICARCH
123 config ES7000_CLUSTERED_APIC
126 depends on SMP && X86_ES7000 && MPENTIUMIII
129 prompt "Processor family"
135 This is the processor type of your CPU. This information is used for
136 optimizing purposes. In order to compile a kernel that can run on
137 all x86 CPU types (albeit not optimally fast), you can specify
140 The kernel will not necessarily run on earlier architectures than
141 the one you have chosen, e.g. a Pentium optimized kernel will run on
142 a PPro, but not necessarily on a i486.
144 Here are the settings recommended for greatest speed:
145 - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI
146 486DLC/DLC2, UMC 486SX-S and NexGen Nx586. Only "386" kernels
147 will run on a 386 class machine.
148 - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
149 SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
150 - "586" for generic Pentium CPUs lacking the TSC
151 (time stamp counter) register.
152 - "Pentium-Classic" for the Intel Pentium.
153 - "Pentium-MMX" for the Intel Pentium MMX.
154 - "Pentium-Pro" for the Intel Pentium Pro.
155 - "Pentium-II" for the Intel Pentium II or pre-Coppermine Celeron.
156 - "Pentium-III" for the Intel Pentium III or Coppermine Celeron.
157 - "Pentium-4" for the Intel Pentium 4 or P4-based Celeron.
158 - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
159 - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
160 - "Crusoe" for the Transmeta Crusoe series.
161 - "Winchip-C6" for original IDT Winchip.
162 - "Winchip-2" for IDT Winchip 2.
163 - "Winchip-2A" for IDT Winchips with 3dNow! capabilities.
164 - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
165 - "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above).
167 If you don't know what to do, choose "386".
172 Select this for a 486 series processor, either Intel or one of the
173 compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX,
174 DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or
178 bool "586/K5/5x86/6x86/6x86MX"
180 Select this for an 586 or 686 series processor such as the AMD K5,
181 the Intel 5x86 or 6x86, or the Intel 6x86MX. This choice does not
182 assume the RDTSC (Read Time Stamp Counter) instruction.
185 bool "Pentium-Classic"
187 Select this for a Pentium Classic processor with the RDTSC (Read
188 Time Stamp Counter) instruction for benchmarking.
193 Select this for a Pentium with the MMX graphics/multimedia
194 extended instructions.
199 Select this for Intel Pentium Pro chips. This enables the use of
200 Pentium Pro extended instructions, and disables the init-time guard
201 against the f00f bug found in earlier Pentiums.
204 bool "Pentium-II/Celeron(pre-Coppermine)"
206 Select this for Intel chips based on the Pentium-II and
207 pre-Coppermine Celeron core. This option enables an unaligned
208 copy optimization, compiles the kernel with optimization flags
209 tailored for the chip, and applies any applicable Pentium Pro
213 bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
215 Select this for Intel chips based on the Pentium-III and
216 Celeron-Coppermine core. This option enables use of some
217 extended prefetch instructions in addition to the Pentium II
221 bool "Pentium-4/Celeron(P4-based)/Xeon"
223 Select this for Intel Pentium 4 chips. This includes both
224 the Pentium 4 and P4-based Celeron chips. This option
225 enables compile flags optimized for the chip, uses the
226 correct cache shift, and applies any applicable Pentium III
230 bool "K6/K6-II/K6-III"
232 Select this for an AMD K6-family processor. Enables use of
233 some extended instructions, and passes appropriate optimization
237 bool "Athlon/Duron/K7"
239 Select this for an AMD Athlon K7-family processor. Enables use of
240 some extended instructions, and passes appropriate optimization
244 bool "Opteron/Athlon64/Hammer/K8"
246 Select this for an AMD Opteron or Athlon64 Hammer-family processor. Enables
247 use of some extended instructions, and passes appropriate optimization
256 Select this for a Transmeta Crusoe processor. Treats the processor
257 like a 586 with TSC, and sets some GCC optimization flags (like a
258 Pentium Pro with no alignment requirements).
263 Select this for an IDT Winchip C6 chip. Linux and GCC
264 treat this chip as a 586TSC with some extended instructions
265 and alignment requirements.
270 Select this for an IDT Winchip-2. Linux and GCC
271 treat this chip as a 586TSC with some extended instructions
272 and alignment requirements.
275 bool "Winchip-2A/Winchip-3"
277 Select this for an IDT Winchip-2A or 3. Linux and GCC
278 treat this chip as a 586TSC with some extended instructions
279 and alignment reqirements. Development kernels also enable
280 out of order memory stores for this CPU, which can increase
281 performance of some operations.
284 bool "CyrixIII/VIA-C3"
286 Select this for a Cyrix III or C3 chip. Presently Linux and GCC
287 treat this chip as a generic 586. Whilst the CPU is 686 class,
288 it lacks the cmov extension which gcc assumes is present when
290 Note that Nehemiah (Model 9) and above will not boot with this
291 kernel due to them lacking the 3DNow! instructions used in earlier
292 incarnations of the CPU.
295 bool "VIA C3-2 (Nehemiah)"
297 Select this for a VIA C3 "Nehemiah". Selecting this enables usage
298 of SSE and tells gcc to treat the CPU as a 686.
299 Note, this kernel will not boot on older (pre model 9) C3s.
304 bool "Generic x86 support"
306 Including some tuning for non selected x86 CPUs too.
307 when it has moderate overhead. This is intended for generic
308 distributions kernels.
311 # Define implied options from the CPU selection here
323 config X86_L1_CACHE_SHIFT
325 default "7" if MPENTIUM4 || X86_GENERIC
326 default "4" if MELAN || M486 || M386
327 default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2
328 default "6" if MK7 || MK8
330 config RWSEM_GENERIC_SPINLOCK
335 config RWSEM_XCHGADD_ALGORITHM
340 config X86_PPRO_FENCE
342 depends on M686 || M586MMX || M586TSC || M586 || M486 || M386
347 depends on M586MMX || M586TSC || M586 || M486 || M386
350 config X86_WP_WORKS_OK
370 config X86_ALIGNMENT_16
372 depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2
377 depends on MK7 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8
380 config X86_INTEL_USERCOPY
382 depends on MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7
385 config X86_USE_PPRO_CHECKSUM
387 depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2
392 depends on MCYRIXIII || MK7
397 depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6
401 bool "Huge TLB Page Support"
403 This enables support for huge pages. User space applications
404 can make use of this support with the sys_alloc_hugepages and
405 sys_free_hugepages system calls. If your applications are
406 huge page aware and your processor (Pentium or later for x86)
407 supports this, then say Y here.
412 bool "Symmetric multi-processing support"
414 This enables support for systems with more than one CPU. If you have
415 a system with only one CPU, like most personal computers, say N. If
416 you have a system with more than one CPU, say Y.
418 If you say N here, the kernel will run on single and multiprocessor
419 machines, but will use only one CPU of a multiprocessor machine. If
420 you say Y here, the kernel will run on many, but not all,
421 singleprocessor machines. On a singleprocessor machine, the kernel
422 will run faster if you say N here.
424 Note that if you say Y here and choose architecture "586" or
425 "Pentium" under "Processor family", the kernel will not work on 486
426 architectures. Similarly, multiprocessor kernels for the "PPro"
427 architecture may not work on all Pentium based boards.
429 People using multiprocessor machines who say Y here should also say
430 Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
431 Management" code will be disabled if you say Y here.
433 See also the <file:Documentation/smp.tex>,
434 <file:Documentation/smp.txt>, <file:Documentation/i386/IO-APIC.txt>,
435 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
436 <http://www.tldp.org/docs.html#howto>.
438 If you don't know what to do here, say N.
441 int "Maximum number of CPUs (2-32)"
445 This allows you to specify the maximum number of CPUs which this
446 kernel will support. The maximum supported value is 32 and the
447 minimum value which makes sense is 2.
449 This is purely to save memory - each supported CPU adds
450 approximately eight kilobytes to the kernel image.
453 bool "Preemptible Kernel"
455 This option reduces the latency of the kernel when reacting to
456 real-time or interactive events by allowing a low priority process to
457 be preempted even if it is in kernel mode executing a system call.
458 This allows applications to run more reliably even when the system is
461 Say Y here if you are building a kernel for a desktop, embedded
462 or real-time system. Say N if you are unsure.
465 bool "Local APIC support on uniprocessors" if !SMP
466 depends on !(X86_VISWS || X86_VOYAGER)
468 A local APIC (Advanced Programmable Interrupt Controller) is an
469 integrated interrupt controller in the CPU. If you have a single-CPU
470 system which has a processor with a local APIC, you can say Y here to
471 enable and use it. If you say Y here even though your machine doesn't
472 have a local APIC, then the kernel will still run with no slowdown at
473 all. The local APIC supports CPU-generated self-interrupts (timer,
474 performance counters), and the NMI watchdog which detects hard
477 If you have a system with several CPUs, you do not need to say Y
478 here: the local APIC will be used automatically.
481 bool "IO-APIC support on uniprocessors"
482 depends on !SMP && X86_UP_APIC
484 An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
485 SMP-capable replacement for PC-style interrupt controllers. Most
486 SMP systems and a small number of uniprocessor systems have one.
487 If you have a single-CPU system with an IO-APIC, you can say Y here
488 to use it. If you say Y here even though your machine doesn't have
489 an IO-APIC, then the kernel will still run with no slowdown at all.
491 If you have a system with several CPUs, you do not need to say Y
492 here: the IO-APIC will be used automatically.
494 config X86_LOCAL_APIC
496 depends on !SMP && X86_UP_APIC
501 depends on !SMP && X86_UP_IOAPIC
506 depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2) && !X86_NUMAQ
510 bool "Machine Check Exception"
512 Machine Check Exception support allows the processor to notify the
513 kernel if it detects a problem (e.g. overheating, component failure).
514 The action the kernel takes depends on the severity of the problem,
515 ranging from a warning message on the console, to halting the machine.
516 Your processor must be a Pentium or newer to support this - check the
517 flags in /proc/cpuinfo for mce. Note that some older Pentium systems
518 have a design flaw which leads to false MCE events - hence MCE is
519 disabled on all P5 processors, unless explicitly enabled with "mce"
520 as a boot argument. Similarly, if MCE is built in and creates a
521 problem on some new non-standard machine, you can boot with "nomce"
522 to disable it. MCE support simply ignores non-MCE processors like
523 the 386 and 486, so nearly everyone can say Y here.
525 config X86_MCE_NONFATAL
526 bool "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
529 Enabling this feature starts a timer that triggers every 5 seconds which
530 will look at the machine check registers to see if anything happened.
531 Non-fatal problems automatically get corrected (but still logged).
532 Disable this if you don't want to see these messages.
533 Seeing the messages this option prints out may be indicative of dying hardware,
534 or out-of-spec (ie, overclocked) hardware.
535 This option only does something on certain CPUs.
536 (AMD Athlon/Duron and Intel Pentium 4)
538 config X86_MCE_P4THERMAL
539 bool "check for P4 thermal throttling interrupt."
540 depends on X86_MCE && (X86_UP_APIC || SMP)
542 Enabling this feature will cause a message to be printed when the P4
543 enters thermal throttling.
546 tristate "Toshiba Laptop support"
548 This adds a driver to safely access the System Management Mode of
549 the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
550 not work on models with a Phoenix BIOS. The System Management Mode
551 is used to set the BIOS and power saving options on Toshiba portables.
553 For information on utilities to make use of this driver see the
554 Toshiba Linux utilities web site at:
555 <http://www.buzzard.org.uk/toshiba/>.
557 Say Y if you intend to run this kernel on a Toshiba portable.
561 tristate "Dell laptop support"
563 This adds a driver to safely access the System Management Mode
564 of the CPU on the Dell Inspiron 8000. The System Management Mode
565 is used to read cpu temperature and cooling fan status and to
566 control the fans on the I8K portables.
568 This driver has been tested only on the Inspiron 8000 but it may
569 also work with other Dell laptops. You can force loading on other
570 models by passing the parameter `force=1' to the module. Use at
573 For information on utilities to make use of this driver see the
574 I8K Linux utilities web site at:
575 <http://www.debian.org/~dz/i8k/>
577 Say Y if you intend to run this kernel on a Dell Inspiron 8000.
581 tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
583 If you say Y here and also to "/dev file system support" in the
584 'File systems' section, you will be able to update the microcode on
585 Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
586 Pentium III, Pentium 4, Xeon etc. You will obviously need the
587 actual microcode binary data itself which is not shipped with the
590 For latest news and information on obtaining all the required
591 ingredients for this driver, check:
592 <http://www.urbanmyth.org/microcode/>.
594 This driver is also available as a module ( = code which can be
595 inserted in and removed from the running kernel whenever you want).
596 The module will be called microcode. If you want to compile it as
597 a module, say M here and read <file:Documentation/modules.txt>. If
598 you use modprobe or kmod you may also want to add the line
599 'alias char-major-10-184 microcode' to your /etc/modules.conf file.
602 tristate "/dev/cpu/*/msr - Model-specific register support"
604 This device gives privileged processes access to the x86
605 Model-Specific Registers (MSRs). It is a character device with
606 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
607 MSR accesses are directed to a specific CPU on multi-processor
611 tristate "/dev/cpu/*/cpuid - CPU information support"
613 This device gives processes access to the x86 CPUID instruction to
614 be executed on a specific processor. It is a character device
615 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
619 tristate "BIOS Enhanced Disk Drive calls determine boot disk (EXPERIMENTAL)"
620 depends on EXPERIMENTAL
622 Say Y or M here if you want to enable BIOS Enhanced Disk Drive
623 Services real mode BIOS calls to determine which disk
624 BIOS tries boot from. This information is then exported via driverfs.
626 This option is experimental, but believed to be safe,
627 and most disk controller BIOS vendors do not yet implement this feature.
630 prompt "High Memory Support"
636 Linux can use up to 64 Gigabytes of physical memory on x86 systems.
637 However, the address space of 32-bit x86 processors is only 4
638 Gigabytes large. That means that, if you have a large amount of
639 physical memory, not all of it can be "permanently mapped" by the
640 kernel. The physical memory that's not permanently mapped is called
643 If you are compiling a kernel which will never run on a machine with
644 more than 1 Gigabyte total physical RAM, answer "off" here (default
645 choice and suitable for most users). This will result in a "3GB/1GB"
646 split: 3GB are mapped so that each process sees a 3GB virtual memory
647 space and the remaining part of the 4GB virtual memory space is used
648 by the kernel to permanently map as much physical memory as
651 If the machine has between 1 and 4 Gigabytes physical RAM, then
654 If more than 4 Gigabytes is used then answer "64GB" here. This
655 selection turns Intel PAE (Physical Address Extension) mode on.
656 PAE implements 3-level paging on IA32 processors. PAE is fully
657 supported by Linux, PAE mode is implemented on all recent Intel
658 processors (Pentium Pro and better). NOTE: If you say "64GB" here,
659 then the kernel will not boot on CPUs that don't support PAE!
661 The actual amount of total physical memory will either be
662 auto detected or can be forced by using a kernel command line option
663 such as "mem=256M". (Try "man bootparam" or see the documentation of
664 your boot loader (lilo or loadlin) about how to pass options to the
665 kernel at boot time.)
667 If unsure, say "off".
672 Select this if you have a 32-bit processor and between 1 and 4
673 gigabytes of physical RAM.
678 Select this if you have a 32-bit processor and more than 4
679 gigabytes of physical RAM.
685 depends on HIGHMEM64G || HIGHMEM4G
690 depends on HIGHMEM64G
693 # Common NUMA Features
695 bool "Numa Memory Allocation Support"
696 depends on SMP && HIGHMEM64G && (X86_PC || X86_NUMAQ || X86_GENERICARCH || (X86_SUMMIT && ACPI && !ACPI_HT_ONLY))
698 default y if (X86_NUMAQ || X86_SUMMIT)
700 # Need comments to help the hapless user trying to turn on NUMA support
701 comment "NUMA (NUMA-Q) requires SMP, 64GB highmem support"
702 depends on X86_NUMAQ && (!HIGHMEM64G || !SMP)
704 comment "NUMA (Summit) requires SMP, 64GB highmem support, full ACPI"
705 depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI || ACPI_HT_ONLY)
712 config HAVE_ARCH_BOOTMEM_NODE
718 bool "Allocate 3rd-level pagetables from highmem"
719 depends on HIGHMEM4G || HIGHMEM64G
721 The VM uses one page table entry for each page of physical memory.
722 For systems with a lot of RAM, this can be wasteful of precious
723 low memory. Setting this option will put user-space page table
724 entries in high memory.
726 config MATH_EMULATION
727 bool "Math emulation"
729 Linux can emulate a math coprocessor (used for floating point
730 operations) if you don't have one. 486DX and Pentium processors have
731 a math coprocessor built in, 486SX and 386 do not, unless you added
732 a 487DX or 387, respectively. (The messages during boot time can
733 give you some hints here ["man dmesg"].) Everyone needs either a
734 coprocessor or this emulation.
736 If you don't have a math coprocessor, you need to say Y here; if you
737 say Y here even though you have a coprocessor, the coprocessor will
738 be used nevertheless. (This behavior can be changed with the kernel
739 command line option "no387", which comes handy if your coprocessor
740 is broken. Try "man bootparam" or see the documentation of your boot
741 loader (lilo or loadlin) about how to pass options to the kernel at
742 boot time.) This means that it is a good idea to say Y here if you
743 intend to use this kernel on different machines.
745 More information about the internals of the Linux math coprocessor
746 emulation can be found in <file:arch/i386/math-emu/README>.
748 If you are not sure, say Y; apart from resulting in a 66 KB bigger
749 kernel, it won't hurt.
752 bool "MTRR (Memory Type Range Register) support"
754 On Intel P6 family processors (Pentium Pro, Pentium II and later)
755 the Memory Type Range Registers (MTRRs) may be used to control
756 processor access to memory ranges. This is most useful if you have
757 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
758 allows bus write transfers to be combined into a larger transfer
759 before bursting over the PCI/AGP bus. This can increase performance
760 of image write operations 2.5 times or more. Saying Y here creates a
761 /proc/mtrr file which may be used to manipulate your processor's
762 MTRRs. Typically the X server should use this.
764 This code has a reasonably generic interface so that similar
765 control registers on other processors can be easily supported
768 The Cyrix 6x86, 6x86MX and M II processors have Address Range
769 Registers (ARRs) which provide a similar functionality to MTRRs. For
770 these, the ARRs are used to emulate the MTRRs.
771 The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
772 MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
773 write-combining. All of these processors are supported by this code
774 and it makes sense to say Y here if you have one of them.
776 Saying Y here also fixes a problem with buggy SMP BIOSes which only
777 set the MTRRs for the boot CPU and not for the secondary CPUs. This
778 can lead to all sorts of problems, so it's good to say Y here.
780 You can safely say Y even if your machine doesn't have MTRRs, you'll
781 just add about 9 KB to your kernel.
783 See <file:Documentation/mtrr.txt> for more information.
787 depends on (SMP || PREEMPT) && X86_CMPXCHG
790 # turning this on wastes a bunch of space.
791 # Summit needs it only when NUMA is on
794 depends on ((X86_SUMMIT || X86_GENERICARCH) && NUMA)
800 menu "Power management options (ACPI, APM)"
801 depends on !X86_VOYAGER
804 bool "Power Management support"
806 "Power Management" means that parts of your computer are shut
807 off or put into a power conserving "sleep" mode if they are not
808 being used. There are two competing standards for doing this: APM
809 and ACPI. If you want to use either one, say Y here and then also
810 to the requisite support below.
812 Power Management is most important for battery powered laptop
813 computers; if you have a laptop, check out the Linux Laptop home
815 <http://www.cs.utexas.edu/users/kharker/linux-laptop/> and the
816 Battery Powered Linux mini-HOWTO, available from
817 <http://www.tldp.org/docs.html#howto>.
819 Note that, even if you say N here, Linux on the x86 architecture
820 will issue the hlt instruction if nothing is to be done, thereby
821 sending the processor to sleep and saving power.
823 config SOFTWARE_SUSPEND
824 bool "Software Suspend (EXPERIMENTAL)"
825 depends on EXPERIMENTAL && PM && SWAP
827 Enable the possibilty of suspendig machine. It doesn't need APM.
828 You may suspend your machine by 'swsusp' or 'shutdown -z <time>'
829 (patch for sysvinit needed).
831 It creates an image which is saved in your active swaps. By the next
832 booting the, pass 'resume=/path/to/your/swap/file' and kernel will
833 detect the saved image, restore the memory from
834 it and then it continues to run as before you've suspended.
835 If you don't want the previous state to continue use the 'noresume'
836 kernel option. However note that your partitions will be fsck'd and
837 you must re-mkswap your swap partitions/files.
839 Right now you may boot without resuming and then later resume but
840 in meantime you cannot use those swap partitions/files which were
841 involved in suspending. Also in this case there is a risk that buffers
842 on disk won't match with saved ones.
844 SMP is supported ``as-is''. There's a code for it but doesn't work.
845 There have been problems reported relating SCSI.
847 This option is about getting stable. However there is still some
850 For more information take a look at Documentation/swsusp.txt.
852 source "drivers/acpi/Kconfig"
855 tristate "Advanced Power Management BIOS support"
858 APM is a BIOS specification for saving power using several different
859 techniques. This is mostly useful for battery powered laptops with
860 APM compliant BIOSes. If you say Y here, the system time will be
861 reset after a RESUME operation, the /proc/apm device will provide
862 battery status information, and user-space programs will receive
863 notification of APM "events" (e.g. battery status change).
865 If you select "Y" here, you can disable actual use of the APM
866 BIOS by passing the "apm=off" option to the kernel at boot time.
868 Note that the APM support is almost completely disabled for
869 machines with more than one CPU.
871 In order to use APM, you will need supporting software. For location
872 and more information, read <file:Documentation/pm.txt> and the
873 Battery Powered Linux mini-HOWTO, available from
874 <http://www.tldp.org/docs.html#howto>.
876 This driver does not spin down disk drives (see the hdparm(8)
877 manpage ("man 8 hdparm") for that), and it doesn't turn off
878 VESA-compliant "green" monitors.
880 This driver does not support the TI 4000M TravelMate and the ACER
881 486/DX4/75 because they don't have compliant BIOSes. Many "green"
882 desktop machines also don't have compliant BIOSes, and this driver
883 may cause those machines to panic during the boot phase.
885 Generally, if you don't have a battery in your machine, there isn't
886 much point in using this driver and you should say N. If you get
887 random kernel OOPSes or reboots that don't seem to be related to
888 anything, try disabling/enabling this option (or disabling/enabling
891 Some other things you should try when experiencing seemingly random,
894 1) make sure that you have enough swap space and that it is
896 2) pass the "no-hlt" option to the kernel
897 3) switch on floating point emulation in the kernel and pass
898 the "no387" option to the kernel
899 4) pass the "floppy=nodma" option to the kernel
900 5) pass the "mem=4M" option to the kernel (thereby disabling
901 all but the first 4 MB of RAM)
902 6) make sure that the CPU is not over clocked.
903 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
904 8) disable the cache from your BIOS settings
905 9) install a fan for the video card or exchange video RAM
906 10) install a better fan for the CPU
907 11) exchange RAM chips
908 12) exchange the motherboard.
910 To compile this driver as a module ( = code which can be inserted in
911 and removed from the running kernel whenever you want), say M here
912 and read <file:Documentation/modules.txt>. The module will be called
915 config APM_IGNORE_USER_SUSPEND
916 bool "Ignore USER SUSPEND"
919 This option will ignore USER SUSPEND requests. On machines with a
920 compliant APM BIOS, you want to say N. However, on the NEC Versa M
921 series notebooks, it is necessary to say Y because of a BIOS bug.
924 bool "Enable PM at boot time"
927 Enable APM features at boot time. From page 36 of the APM BIOS
928 specification: "When disabled, the APM BIOS does not automatically
929 power manage devices, enter the Standby State, enter the Suspend
930 State, or take power saving steps in response to CPU Idle calls."
931 This driver will make CPU Idle calls when Linux is idle (unless this
932 feature is turned off -- see "Do CPU IDLE calls", below). This
933 should always save battery power, but more complicated APM features
934 will be dependent on your BIOS implementation. You may need to turn
935 this option off if your computer hangs at boot time when using APM
936 support, or if it beeps continuously instead of suspending. Turn
937 this off if you have a NEC UltraLite Versa 33/C or a Toshiba
938 T400CDT. This is off by default since most machines do fine without
942 bool "Make CPU Idle calls when idle"
945 Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
946 On some machines, this can activate improved power savings, such as
947 a slowed CPU clock rate, when the machine is idle. These idle calls
948 are made after the idle loop has run for some length of time (e.g.,
949 333 mS). On some machines, this will cause a hang at boot time or
950 whenever the CPU becomes idle. (On machines with more than one CPU,
951 this option does nothing.)
953 config APM_DISPLAY_BLANK
954 bool "Enable console blanking using APM"
957 Enable console blanking using the APM. Some laptops can use this to
958 turn off the LCD backlight when the screen blanker of the Linux
959 virtual console blanks the screen. Note that this is only used by
960 the virtual console screen blanker, and won't turn off the backlight
961 when using the X Window system. This also doesn't have anything to
962 do with your VESA-compliant power-saving monitor. Further, this
963 option doesn't work for all laptops -- it might not turn off your
964 backlight at all, or it might print a lot of errors to the console,
965 especially if you are using gpm.
967 config APM_RTC_IS_GMT
968 bool "RTC stores time in GMT"
971 Say Y here if your RTC (Real Time Clock a.k.a. hardware clock)
972 stores the time in GMT (Greenwich Mean Time). Say N if your RTC
975 It is in fact recommended to store GMT in your RTC, because then you
976 don't have to worry about daylight savings time changes. The only
977 reason not to use GMT in your RTC is if you also run a broken OS
978 that doesn't understand GMT.
980 config APM_ALLOW_INTS
981 bool "Allow interrupts during APM BIOS calls"
984 Normally we disable external interrupts while we are making calls to
985 the APM BIOS as a measure to lessen the effects of a badly behaving
986 BIOS implementation. The BIOS should reenable interrupts if it
987 needs to. Unfortunately, some BIOSes do not -- especially those in
988 many of the newer IBM Thinkpads. If you experience hangs when you
989 suspend, try setting this to Y. Otherwise, say N.
991 config APM_REAL_MODE_POWER_OFF
992 bool "Use real mode APM BIOS call to power off"
995 Use real mode APM BIOS calls to switch off the computer. This is
996 a work-around for a number of buggy BIOSes. Switch this option on if
997 your computer crashes instead of powering off properly.
999 source "arch/i386/kernel/cpu/cpufreq/Kconfig"
1004 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
1006 config X86_VISWS_APIC
1008 depends on X86_VISWS
1011 config X86_LOCAL_APIC
1013 depends on (X86_VISWS || SMP) && !X86_VOYAGER
1018 depends on SMP && !(X86_VISWS || X86_VOYAGER)
1022 bool "PCI support" if !X86_VISWS
1023 depends on !X86_VOYAGER
1024 default y if X86_VISWS
1026 Find out whether you have a PCI motherboard. PCI is the name of a
1027 bus system, i.e. the way the CPU talks to the other stuff inside
1028 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
1029 VESA. If you have PCI, say Y, otherwise N.
1031 The PCI-HOWTO, available from
1032 <http://www.tldp.org/docs.html#howto>, contains valuable
1033 information about which PCI hardware does work under Linux and which
1037 prompt "PCI access mode"
1038 depends on PCI && !X86_VISWS
1044 On PCI systems, the BIOS can be used to detect the PCI devices and
1045 determine their configuration. However, some old PCI motherboards
1046 have BIOS bugs and may crash if this is done. Also, some embedded
1047 PCI-based systems don't have any BIOS at all. Linux can also try to
1048 detect the PCI hardware directly without using the BIOS.
1050 With this option, you can specify how Linux should detect the PCI
1051 devices. If you choose "BIOS", the BIOS will be used, if you choose
1052 "Direct", the BIOS won't be used, and if you choose "Any", the
1053 kernel will try the direct access method and falls back to the BIOS
1054 if that doesn't work. If unsure, go with the default, which is
1067 depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
1072 depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
1075 source "drivers/pci/Kconfig"
1079 depends on !(X86_VOYAGER || X86_VISWS)
1081 Find out whether you have ISA slots on your motherboard. ISA is the
1082 name of a bus system, i.e. the way the CPU talks to the other stuff
1083 inside your box. Other bus systems are PCI, EISA, MicroChannel
1084 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
1085 newer boards don't support it. If you have ISA, say Y, otherwise N.
1091 The Extended Industry Standard Architecture (EISA) bus was
1092 developed as an open alternative to the IBM MicroChannel bus.
1094 The EISA bus provided some of the features of the IBM MicroChannel
1095 bus while maintaining backward compatibility with cards made for
1096 the older ISA bus. The EISA bus saw limited use between 1988 and
1097 1995 when it was made obsolete by the PCI bus.
1099 Say Y here if you are building a kernel for an EISA-based machine.
1103 source "drivers/eisa/Kconfig"
1107 depends on !(X86_VISWS || X86_VOYAGER)
1109 MicroChannel Architecture is found in some IBM PS/2 machines and
1110 laptops. It is a bus system similar to PCI or ISA. See
1111 <file:Documentation/mca.txt> (and especially the web page given
1112 there) before attempting to build an MCA bus kernel.
1115 depends on X86_VOYAGER
1116 default y if X86_VOYAGER
1118 source "drivers/mca/Kconfig"
1121 tristate "NatSemi SCx200 support"
1122 depends on !X86_VOYAGER
1124 This provides basic support for the National Semiconductor SCx200
1125 processor. Right now this is just a driver for the GPIO pins.
1127 If you don't know what to do here, say N.
1129 This support is also available as a module. If compiled as a
1130 module, it will be called scx200.
1133 bool "Support for hot-pluggable devices"
1135 Say Y here if you want to plug devices into your computer while
1136 the system is running, and be able to use them quickly. In many
1137 cases, the devices can likewise be unplugged at any time too.
1139 One well known example of this is PCMCIA- or PC-cards, credit-card
1140 size devices such as network cards, modems or hard drives which are
1141 plugged into slots found on all modern laptop computers. Another
1142 example, used on modern desktops as well as laptops, is USB.
1144 Enable HOTPLUG and KMOD, and build a modular kernel. Get agent
1145 software (at <http://linux-hotplug.sourceforge.net/>) and install it.
1146 Then your kernel will automatically call out to a user mode "policy
1147 agent" (/sbin/hotplug) to load modules and set up software needed
1148 to use devices as you hotplug them.
1150 source "drivers/pcmcia/Kconfig"
1152 source "drivers/pci/hotplug/Kconfig"
1157 menu "Executable file formats"
1160 prompt "Kernel core (/proc/kcore) format"
1167 If you enabled support for /proc file system then the file
1168 /proc/kcore will contain the kernel core image. This can be used
1171 $ cd /usr/src/linux ; gdb vmlinux /proc/kcore
1173 You have two choices here: ELF and A.OUT. Selecting ELF will make
1174 /proc/kcore appear in ELF core format as defined by the Executable
1175 and Linking Format specification. Selecting A.OUT will choose the
1176 old "a.out" format which may be necessary for some old versions
1177 of binutils or on some architectures.
1179 This is especially useful if you have compiled the kernel with the
1180 "-g" option to preserve debugging information. It is mainly used
1181 for examining kernel data structures on the live kernel so if you
1182 don't understand what this means or are not a kernel hacker, just
1183 leave it at its default value ELF.
1188 Not necessary unless you're using a very out-of-date binutils
1189 version. You probably want KCORE_ELF.
1193 source "fs/Kconfig.binfmt"
1197 source "drivers/base/Kconfig"
1199 source "drivers/mtd/Kconfig"
1201 source "drivers/parport/Kconfig"
1203 source "drivers/pnp/Kconfig"
1205 source "drivers/block/Kconfig"
1207 source "drivers/ide/Kconfig"
1209 source "drivers/scsi/Kconfig"
1211 source "drivers/cdrom/Kconfig"
1213 source "drivers/md/Kconfig"
1215 source "drivers/message/fusion/Kconfig"
1217 source "drivers/ieee1394/Kconfig"
1219 source "drivers/message/i2o/Kconfig"
1221 source "net/Kconfig"
1223 source "net/ax25/Kconfig"
1225 source "net/irda/Kconfig"
1227 source "drivers/isdn/Kconfig"
1229 source "drivers/telephony/Kconfig"
1232 # input before char - char/joystick depends on it. As does USB.
1234 source "drivers/input/Kconfig"
1236 source "drivers/char/Kconfig"
1238 #source drivers/misc/Config.in
1239 source "drivers/media/Kconfig"
1243 source "drivers/video/Kconfig"
1248 tristate "Sound card support"
1250 If you have a sound card in your computer, i.e. if it can say more
1251 than an occasional beep, say Y. Be sure to have all the information
1252 about your sound card and its configuration down (I/O port,
1253 interrupt and DMA channel), because you will be asked for it.
1255 You want to read the Sound-HOWTO, available from
1256 <http://www.tldp.org/docs.html#howto>. General information about
1257 the modular sound system is contained in the files
1258 <file:Documentation/sound/Introduction>. The file
1259 <file:Documentation/sound/README.OSS> contains some slightly
1260 outdated but still useful information as well.
1262 If you have a PnP sound card and you want to configure it at boot
1263 time using the ISA PnP tools (read
1264 <http://www.roestock.demon.co.uk/isapnptools/>), then you need to
1265 compile the sound card support as a module ( = code which can be
1266 inserted in and removed from the running kernel whenever you want)
1267 and load that module after the PnP configuration is finished. To do
1268 this, say M here and read <file:Documentation/modules.txt> as well
1269 as <file:Documentation/sound/README.modules>; the module will be
1272 I'm told that even without a sound card, you can make your computer
1273 say more than an occasional beep, by programming the PC speaker.
1274 Kernel patches and supporting utilities to do that are in the pcsp
1275 package, available at <ftp://ftp.infradead.org/pub/pcsp/>.
1277 source "sound/Kconfig"
1281 source "drivers/usb/Kconfig"
1283 source "net/bluetooth/Kconfig"
1285 source "arch/i386/oprofile/Kconfig"
1288 menu "Kernel hacking"
1291 bool "Kernel debugging"
1293 Say Y here if you are developing drivers or trying to debug and
1294 identify kernel problems.
1296 config DEBUG_STACKOVERFLOW
1297 bool "Check for stack overflows"
1298 depends on DEBUG_KERNEL
1301 bool "Debug memory allocations"
1302 depends on DEBUG_KERNEL
1304 Say Y here to have the kernel do limited verification on memory
1305 allocation as well as poisoning memory on free to catch use of freed
1309 bool "Memory mapped I/O debugging"
1310 depends on DEBUG_KERNEL
1312 Say Y here to get warned whenever an attempt is made to do I/O on
1313 obviously invalid addresses such as those generated when ioremap()
1314 calls are forgotten. Memory mapped I/O will go through an extra
1315 check to catch access to unmapped ISA addresses, an access method
1316 that can still be used by old drivers that are being ported from
1320 bool "Magic SysRq key"
1321 depends on DEBUG_KERNEL
1323 If you say Y here, you will have some control over the system even
1324 if the system crashes for example during kernel debugging (e.g., you
1325 will be able to flush the buffer cache to disk, reboot the system
1326 immediately or dump some status information). This is accomplished
1327 by pressing various keys while holding SysRq (Alt+PrintScreen). It
1328 also works on a serial console (on PC hardware at least), if you
1329 send a BREAK and then within 5 seconds a command keypress. The
1330 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
1331 unless you really know what this hack does.
1333 config DEBUG_SPINLOCK
1334 bool "Spinlock debugging"
1335 depends on DEBUG_KERNEL
1337 Say Y here and build SMP to catch missing spinlock initialization
1338 and certain other kinds of spinlock errors commonly made. This is
1339 best used in conjunction with the NMI watchdog so that spinlock
1340 deadlocks are also debuggable.
1342 config DEBUG_HIGHMEM
1343 bool "Highmem debugging"
1344 depends on DEBUG_KERNEL && HIGHMEM
1346 This options enables addition error checking for high memory systems.
1347 Disable for production systems.
1350 bool "Load all symbols for debugging/kksymoops"
1352 Say Y here to let the kernel print out symbolic crash information and
1353 symbolic stack backtraces. This increases the size of the kernel
1354 somewhat, as all symbols have to be loaded into the kernel image.
1356 config DEBUG_SPINLOCK_SLEEP
1357 bool "Sleep-inside-spinlock checking"
1359 If you say Y here, various routines which may sleep will become very
1360 noisy if they are called with a spinlock held.
1362 config FRAME_POINTER
1363 bool "Compile the kernel with frame pointers"
1365 If you say Y here the resulting kernel image will be slightly larger
1366 and slower, but it will give very useful debugging information.
1367 If you don't debug the kernel, you can say N, but we may not be able
1368 to solve problems without frame pointers.
1370 config X86_EXTRA_IRQS
1372 depends on X86_LOCAL_APIC || X86_VOYAGER
1375 config X86_FIND_SMP_CONFIG
1377 depends on X86_LOCAL_APIC || X86_VOYAGER
1382 depends on X86_LOCAL_APIC && !X86_VISWS
1387 source "security/Kconfig"
1389 source "crypto/Kconfig"
1391 source "lib/Kconfig"
1395 depends on SMP && !X86_VOYAGER
1400 depends on SMP && !(X86_VISWS || X86_VOYAGER)
1403 config X86_BIOS_REBOOT
1405 depends on !(X86_VISWS || X86_VOYAGER)
1408 config X86_TRAMPOLINE
1410 depends on SMP || X86_VISWS