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=/dev/swappartition' 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. It does not work with swap
840 Right now you may boot without resuming and then later resume but
841 in meantime you cannot use those swap partitions/files which were
842 involved in suspending. Also in this case there is a risk that buffers
843 on disk won't match with saved ones.
845 For more information take a look at Documentation/swsusp.txt.
847 source "drivers/acpi/Kconfig"
850 tristate "Advanced Power Management BIOS support"
853 APM is a BIOS specification for saving power using several different
854 techniques. This is mostly useful for battery powered laptops with
855 APM compliant BIOSes. If you say Y here, the system time will be
856 reset after a RESUME operation, the /proc/apm device will provide
857 battery status information, and user-space programs will receive
858 notification of APM "events" (e.g. battery status change).
860 If you select "Y" here, you can disable actual use of the APM
861 BIOS by passing the "apm=off" option to the kernel at boot time.
863 Note that the APM support is almost completely disabled for
864 machines with more than one CPU.
866 In order to use APM, you will need supporting software. For location
867 and more information, read <file:Documentation/pm.txt> and the
868 Battery Powered Linux mini-HOWTO, available from
869 <http://www.tldp.org/docs.html#howto>.
871 This driver does not spin down disk drives (see the hdparm(8)
872 manpage ("man 8 hdparm") for that), and it doesn't turn off
873 VESA-compliant "green" monitors.
875 This driver does not support the TI 4000M TravelMate and the ACER
876 486/DX4/75 because they don't have compliant BIOSes. Many "green"
877 desktop machines also don't have compliant BIOSes, and this driver
878 may cause those machines to panic during the boot phase.
880 Generally, if you don't have a battery in your machine, there isn't
881 much point in using this driver and you should say N. If you get
882 random kernel OOPSes or reboots that don't seem to be related to
883 anything, try disabling/enabling this option (or disabling/enabling
886 Some other things you should try when experiencing seemingly random,
889 1) make sure that you have enough swap space and that it is
891 2) pass the "no-hlt" option to the kernel
892 3) switch on floating point emulation in the kernel and pass
893 the "no387" option to the kernel
894 4) pass the "floppy=nodma" option to the kernel
895 5) pass the "mem=4M" option to the kernel (thereby disabling
896 all but the first 4 MB of RAM)
897 6) make sure that the CPU is not over clocked.
898 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
899 8) disable the cache from your BIOS settings
900 9) install a fan for the video card or exchange video RAM
901 10) install a better fan for the CPU
902 11) exchange RAM chips
903 12) exchange the motherboard.
905 To compile this driver as a module ( = code which can be inserted in
906 and removed from the running kernel whenever you want), say M here
907 and read <file:Documentation/modules.txt>. The module will be called
910 config APM_IGNORE_USER_SUSPEND
911 bool "Ignore USER SUSPEND"
914 This option will ignore USER SUSPEND requests. On machines with a
915 compliant APM BIOS, you want to say N. However, on the NEC Versa M
916 series notebooks, it is necessary to say Y because of a BIOS bug.
919 bool "Enable PM at boot time"
922 Enable APM features at boot time. From page 36 of the APM BIOS
923 specification: "When disabled, the APM BIOS does not automatically
924 power manage devices, enter the Standby State, enter the Suspend
925 State, or take power saving steps in response to CPU Idle calls."
926 This driver will make CPU Idle calls when Linux is idle (unless this
927 feature is turned off -- see "Do CPU IDLE calls", below). This
928 should always save battery power, but more complicated APM features
929 will be dependent on your BIOS implementation. You may need to turn
930 this option off if your computer hangs at boot time when using APM
931 support, or if it beeps continuously instead of suspending. Turn
932 this off if you have a NEC UltraLite Versa 33/C or a Toshiba
933 T400CDT. This is off by default since most machines do fine without
937 bool "Make CPU Idle calls when idle"
940 Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
941 On some machines, this can activate improved power savings, such as
942 a slowed CPU clock rate, when the machine is idle. These idle calls
943 are made after the idle loop has run for some length of time (e.g.,
944 333 mS). On some machines, this will cause a hang at boot time or
945 whenever the CPU becomes idle. (On machines with more than one CPU,
946 this option does nothing.)
948 config APM_DISPLAY_BLANK
949 bool "Enable console blanking using APM"
952 Enable console blanking using the APM. Some laptops can use this to
953 turn off the LCD backlight when the screen blanker of the Linux
954 virtual console blanks the screen. Note that this is only used by
955 the virtual console screen blanker, and won't turn off the backlight
956 when using the X Window system. This also doesn't have anything to
957 do with your VESA-compliant power-saving monitor. Further, this
958 option doesn't work for all laptops -- it might not turn off your
959 backlight at all, or it might print a lot of errors to the console,
960 especially if you are using gpm.
962 config APM_RTC_IS_GMT
963 bool "RTC stores time in GMT"
966 Say Y here if your RTC (Real Time Clock a.k.a. hardware clock)
967 stores the time in GMT (Greenwich Mean Time). Say N if your RTC
970 It is in fact recommended to store GMT in your RTC, because then you
971 don't have to worry about daylight savings time changes. The only
972 reason not to use GMT in your RTC is if you also run a broken OS
973 that doesn't understand GMT.
975 config APM_ALLOW_INTS
976 bool "Allow interrupts during APM BIOS calls"
979 Normally we disable external interrupts while we are making calls to
980 the APM BIOS as a measure to lessen the effects of a badly behaving
981 BIOS implementation. The BIOS should reenable interrupts if it
982 needs to. Unfortunately, some BIOSes do not -- especially those in
983 many of the newer IBM Thinkpads. If you experience hangs when you
984 suspend, try setting this to Y. Otherwise, say N.
986 config APM_REAL_MODE_POWER_OFF
987 bool "Use real mode APM BIOS call to power off"
990 Use real mode APM BIOS calls to switch off the computer. This is
991 a work-around for a number of buggy BIOSes. Switch this option on if
992 your computer crashes instead of powering off properly.
994 source "arch/i386/kernel/cpu/cpufreq/Kconfig"
999 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
1001 config X86_VISWS_APIC
1003 depends on X86_VISWS
1006 config X86_LOCAL_APIC
1008 depends on (X86_VISWS || SMP) && !X86_VOYAGER
1013 depends on SMP && !(X86_VISWS || X86_VOYAGER)
1017 bool "PCI support" if !X86_VISWS
1018 depends on !X86_VOYAGER
1019 default y if X86_VISWS
1021 Find out whether you have a PCI motherboard. PCI is the name of a
1022 bus system, i.e. the way the CPU talks to the other stuff inside
1023 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
1024 VESA. If you have PCI, say Y, otherwise N.
1026 The PCI-HOWTO, available from
1027 <http://www.tldp.org/docs.html#howto>, contains valuable
1028 information about which PCI hardware does work under Linux and which
1032 prompt "PCI access mode"
1033 depends on PCI && !X86_VISWS
1039 On PCI systems, the BIOS can be used to detect the PCI devices and
1040 determine their configuration. However, some old PCI motherboards
1041 have BIOS bugs and may crash if this is done. Also, some embedded
1042 PCI-based systems don't have any BIOS at all. Linux can also try to
1043 detect the PCI hardware directly without using the BIOS.
1045 With this option, you can specify how Linux should detect the PCI
1046 devices. If you choose "BIOS", the BIOS will be used, if you choose
1047 "Direct", the BIOS won't be used, and if you choose "Any", the
1048 kernel will try the direct access method and falls back to the BIOS
1049 if that doesn't work. If unsure, go with the default, which is
1062 depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
1067 depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
1070 source "drivers/pci/Kconfig"
1074 depends on !(X86_VOYAGER || X86_VISWS)
1076 Find out whether you have ISA slots on your motherboard. ISA is the
1077 name of a bus system, i.e. the way the CPU talks to the other stuff
1078 inside your box. Other bus systems are PCI, EISA, MicroChannel
1079 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
1080 newer boards don't support it. If you have ISA, say Y, otherwise N.
1086 The Extended Industry Standard Architecture (EISA) bus was
1087 developed as an open alternative to the IBM MicroChannel bus.
1089 The EISA bus provided some of the features of the IBM MicroChannel
1090 bus while maintaining backward compatibility with cards made for
1091 the older ISA bus. The EISA bus saw limited use between 1988 and
1092 1995 when it was made obsolete by the PCI bus.
1094 Say Y here if you are building a kernel for an EISA-based machine.
1098 source "drivers/eisa/Kconfig"
1102 depends on !(X86_VISWS || X86_VOYAGER)
1104 MicroChannel Architecture is found in some IBM PS/2 machines and
1105 laptops. It is a bus system similar to PCI or ISA. See
1106 <file:Documentation/mca.txt> (and especially the web page given
1107 there) before attempting to build an MCA bus kernel.
1110 depends on X86_VOYAGER
1111 default y if X86_VOYAGER
1113 source "drivers/mca/Kconfig"
1116 tristate "NatSemi SCx200 support"
1117 depends on !X86_VOYAGER
1119 This provides basic support for the National Semiconductor SCx200
1120 processor. Right now this is just a driver for the GPIO pins.
1122 If you don't know what to do here, say N.
1124 This support is also available as a module. If compiled as a
1125 module, it will be called scx200.
1128 bool "Support for hot-pluggable devices"
1130 Say Y here if you want to plug devices into your computer while
1131 the system is running, and be able to use them quickly. In many
1132 cases, the devices can likewise be unplugged at any time too.
1134 One well known example of this is PCMCIA- or PC-cards, credit-card
1135 size devices such as network cards, modems or hard drives which are
1136 plugged into slots found on all modern laptop computers. Another
1137 example, used on modern desktops as well as laptops, is USB.
1139 Enable HOTPLUG and KMOD, and build a modular kernel. Get agent
1140 software (at <http://linux-hotplug.sourceforge.net/>) and install it.
1141 Then your kernel will automatically call out to a user mode "policy
1142 agent" (/sbin/hotplug) to load modules and set up software needed
1143 to use devices as you hotplug them.
1145 source "drivers/pcmcia/Kconfig"
1147 source "drivers/pci/hotplug/Kconfig"
1152 menu "Executable file formats"
1155 prompt "Kernel core (/proc/kcore) format"
1162 If you enabled support for /proc file system then the file
1163 /proc/kcore will contain the kernel core image. This can be used
1166 $ cd /usr/src/linux ; gdb vmlinux /proc/kcore
1168 You have two choices here: ELF and A.OUT. Selecting ELF will make
1169 /proc/kcore appear in ELF core format as defined by the Executable
1170 and Linking Format specification. Selecting A.OUT will choose the
1171 old "a.out" format which may be necessary for some old versions
1172 of binutils or on some architectures.
1174 This is especially useful if you have compiled the kernel with the
1175 "-g" option to preserve debugging information. It is mainly used
1176 for examining kernel data structures on the live kernel so if you
1177 don't understand what this means or are not a kernel hacker, just
1178 leave it at its default value ELF.
1183 Not necessary unless you're using a very out-of-date binutils
1184 version. You probably want KCORE_ELF.
1188 source "fs/Kconfig.binfmt"
1192 source "drivers/base/Kconfig"
1194 source "drivers/mtd/Kconfig"
1196 source "drivers/parport/Kconfig"
1198 source "drivers/pnp/Kconfig"
1200 source "drivers/block/Kconfig"
1202 source "drivers/ide/Kconfig"
1204 source "drivers/scsi/Kconfig"
1206 source "drivers/cdrom/Kconfig"
1208 source "drivers/md/Kconfig"
1210 source "drivers/message/fusion/Kconfig"
1212 source "drivers/ieee1394/Kconfig"
1214 source "drivers/message/i2o/Kconfig"
1216 source "net/Kconfig"
1218 source "net/ax25/Kconfig"
1220 source "net/irda/Kconfig"
1222 source "drivers/isdn/Kconfig"
1224 source "drivers/telephony/Kconfig"
1227 # input before char - char/joystick depends on it. As does USB.
1229 source "drivers/input/Kconfig"
1231 source "drivers/char/Kconfig"
1233 #source drivers/misc/Config.in
1234 source "drivers/media/Kconfig"
1238 source "drivers/video/Kconfig"
1240 source "sound/Kconfig"
1242 source "drivers/usb/Kconfig"
1244 source "net/bluetooth/Kconfig"
1246 source "arch/i386/oprofile/Kconfig"
1249 menu "Kernel hacking"
1252 bool "Kernel debugging"
1254 Say Y here if you are developing drivers or trying to debug and
1255 identify kernel problems.
1257 config DEBUG_STACKOVERFLOW
1258 bool "Check for stack overflows"
1259 depends on DEBUG_KERNEL
1262 bool "Debug memory allocations"
1263 depends on DEBUG_KERNEL
1265 Say Y here to have the kernel do limited verification on memory
1266 allocation as well as poisoning memory on free to catch use of freed
1270 bool "Memory mapped I/O debugging"
1271 depends on DEBUG_KERNEL
1273 Say Y here to get warned whenever an attempt is made to do I/O on
1274 obviously invalid addresses such as those generated when ioremap()
1275 calls are forgotten. Memory mapped I/O will go through an extra
1276 check to catch access to unmapped ISA addresses, an access method
1277 that can still be used by old drivers that are being ported from
1281 bool "Magic SysRq key"
1282 depends on DEBUG_KERNEL
1284 If you say Y here, you will have some control over the system even
1285 if the system crashes for example during kernel debugging (e.g., you
1286 will be able to flush the buffer cache to disk, reboot the system
1287 immediately or dump some status information). This is accomplished
1288 by pressing various keys while holding SysRq (Alt+PrintScreen). It
1289 also works on a serial console (on PC hardware at least), if you
1290 send a BREAK and then within 5 seconds a command keypress. The
1291 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
1292 unless you really know what this hack does.
1294 config DEBUG_SPINLOCK
1295 bool "Spinlock debugging"
1296 depends on DEBUG_KERNEL
1298 Say Y here and build SMP to catch missing spinlock initialization
1299 and certain other kinds of spinlock errors commonly made. This is
1300 best used in conjunction with the NMI watchdog so that spinlock
1301 deadlocks are also debuggable.
1303 config DEBUG_PAGEALLOC
1304 bool "Page alloc debugging"
1305 depends on DEBUG_KERNEL
1307 Unmap pages from the kernel linear mapping after free_pages().
1308 This results in a large slowdown, but helps to find certain types
1309 of memory corruptions.
1311 config DEBUG_HIGHMEM
1312 bool "Highmem debugging"
1313 depends on DEBUG_KERNEL && HIGHMEM
1315 This options enables addition error checking for high memory systems.
1316 Disable for production systems.
1319 bool "Compile the kernel with debug info"
1320 depends on DEBUG_KERNEL
1322 If you say Y here the resulting kernel image will include
1323 debugging info resulting in a larger kernel image.
1324 Say Y here only if you plan to use gdb to debug the kernel.
1325 If you don't debug the kernel, you can say N.
1327 config DEBUG_SPINLOCK_SLEEP
1328 bool "Sleep-inside-spinlock checking"
1330 If you say Y here, various routines which may sleep will become very
1331 noisy if they are called with a spinlock held.
1333 config FRAME_POINTER
1334 bool "Compile the kernel with frame pointers"
1336 If you say Y here the resulting kernel image will be slightly larger
1337 and slower, but it will give very useful debugging information.
1338 If you don't debug the kernel, you can say N, but we may not be able
1339 to solve problems without frame pointers.
1341 config X86_EXTRA_IRQS
1343 depends on X86_LOCAL_APIC || X86_VOYAGER
1346 config X86_FIND_SMP_CONFIG
1348 depends on X86_LOCAL_APIC || X86_VOYAGER
1353 depends on X86_LOCAL_APIC && !X86_VISWS
1358 source "security/Kconfig"
1360 source "crypto/Kconfig"
1362 source "lib/Kconfig"
1364 source "rpmify/Kconfig"
1368 depends on SMP && !X86_VOYAGER
1373 depends on SMP && !(X86_VISWS || X86_VOYAGER)
1376 config X86_BIOS_REBOOT
1378 depends on !(X86_VISWS || X86_VOYAGER)
1381 config X86_TRAMPOLINE
1383 depends on SMP || X86_VISWS