home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / arch / i386 / Kconfig < prev    next >
Encoding:
Text File  |  2006-08-11  |  37.5 KB  |  1,185 lines

  1. #
  2. # For a description of the syntax of this configuration file,
  3. # see Documentation/kbuild/kconfig-language.txt.
  4. #
  5.  
  6. mainmenu "Linux Kernel Configuration"
  7.  
  8. config X86_32
  9.     bool
  10.     default y
  11.     help
  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.
  16.  
  17. config SEMAPHORE_SLEEPERS
  18.     bool
  19.     default y
  20.  
  21. config X86
  22.     bool
  23.     default y
  24.  
  25. config MMU
  26.     bool
  27.     default y
  28.  
  29. config SBUS
  30.     bool
  31.  
  32. config GENERIC_ISA_DMA
  33.     bool
  34.     default y
  35.  
  36. config GENERIC_IOMAP
  37.     bool
  38.     default y
  39.  
  40. config GENERIC_HWEIGHT
  41.     bool
  42.     default y
  43.  
  44. config ARCH_MAY_HAVE_PC_FDC
  45.     bool
  46.     default y
  47.  
  48. config DMI
  49.     bool
  50.     default y
  51.  
  52. source "init/Kconfig"
  53.  
  54. menu "Processor type and features"
  55.  
  56. config SMP
  57.     bool "Symmetric multi-processing support"
  58.     ---help---
  59.       This enables support for systems with more than one CPU. If you have
  60.       a system with only one CPU, like most personal computers, say N. If
  61.       you have a system with more than one CPU, say Y.
  62.  
  63.       If you say N here, the kernel will run on single and multiprocessor
  64.       machines, but will use only one CPU of a multiprocessor machine. If
  65.       you say Y here, the kernel will run on many, but not all,
  66.       singleprocessor machines. On a singleprocessor machine, the kernel
  67.       will run faster if you say N here.
  68.  
  69.       Note that if you say Y here and choose architecture "586" or
  70.       "Pentium" under "Processor family", the kernel will not work on 486
  71.       architectures. Similarly, multiprocessor kernels for the "PPro"
  72.       architecture may not work on all Pentium based boards.
  73.  
  74.       People using multiprocessor machines who say Y here should also say
  75.       Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
  76.       Management" code will be disabled if you say Y here.
  77.  
  78.       See also the <file:Documentation/smp.txt>,
  79.       <file:Documentation/i386/IO-APIC.txt>,
  80.       <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
  81.       <http://www.tldp.org/docs.html#howto>.
  82.  
  83.       If you don't know what to do here, say N.
  84.  
  85. choice
  86.     prompt "Subarchitecture Type"
  87.     default X86_PC
  88.  
  89. config X86_PC
  90.     bool "PC-compatible"
  91.     help
  92.       Choose this option if your computer is a standard PC or compatible.
  93.  
  94. config X86_ELAN
  95.     bool "AMD Elan"
  96.     help
  97.       Select this for an AMD Elan processor.
  98.  
  99.       Do not use this option for K6/Athlon/Opteron processors!
  100.  
  101.       If unsure, choose "PC-compatible" instead.
  102.  
  103. config X86_VOYAGER
  104.     bool "Voyager (NCR)"
  105.     help
  106.       Voyager is an MCA-based 32-way capable SMP architecture proprietary
  107.       to NCR Corp.  Machine classes 345x/35xx/4100/51xx are Voyager-based.
  108.  
  109.       *** WARNING ***
  110.  
  111.       If you do not specifically know you have a Voyager based machine,
  112.       say N here, otherwise the kernel you build will not be bootable.
  113.  
  114. config X86_NUMAQ
  115.     bool "NUMAQ (IBM/Sequent)"
  116.     select SMP
  117.     select NUMA
  118.     help
  119.       This option is used for getting Linux to run on a (IBM/Sequent) NUMA
  120.       multiquad box. This changes the way that processors are bootstrapped,
  121.       and uses Clustered Logical APIC addressing mode instead of Flat Logical.
  122.       You will need a new lynxer.elf file to flash your firmware with - send
  123.       email to <Martin.Bligh@us.ibm.com>.
  124.  
  125. config X86_SUMMIT
  126.     bool "Summit/EXA (IBM x440)"
  127.     depends on SMP
  128.     help
  129.       This option is needed for IBM systems that use the Summit/EXA chipset.
  130.       In particular, it is needed for the x440.
  131.  
  132.       If you don't have one of these computers, you should say N here.
  133.  
  134. config X86_BIGSMP
  135.     bool "Support for other sub-arch SMP systems with more than 8 CPUs"
  136.     depends on SMP
  137.     help
  138.       This option is needed for the systems that have more than 8 CPUs
  139.       and if the system is not of any sub-arch type above.
  140.  
  141.       If you don't have such a system, you should say N here.
  142.  
  143. config X86_VISWS
  144.     bool "SGI 320/540 (Visual Workstation)"
  145.     help
  146.       The SGI Visual Workstation series is an IA32-based workstation
  147.       based on SGI systems chips with some legacy PC hardware attached.
  148.  
  149.       Say Y here to create a kernel to run on the SGI 320 or 540.
  150.  
  151.       A kernel compiled for the Visual Workstation will not run on PCs
  152.       and vice versa. See <file:Documentation/sgi-visws.txt> for details.
  153.  
  154. config X86_GENERICARCH
  155.        bool "Generic architecture (Summit, bigsmp, ES7000, default)"
  156.        depends on SMP
  157.        help
  158.           This option compiles in the Summit, bigsmp, ES7000, default subarchitectures.
  159.       It is intended for a generic binary kernel.
  160.  
  161. config X86_ES7000
  162.     bool "Support for Unisys ES7000 IA32 series"
  163.     depends on SMP
  164.     help
  165.       Support for Unisys ES7000 systems.  Say 'Y' here if this kernel is
  166.       supposed to run on an IA32-based Unisys ES7000 system.
  167.       Only choose this option if you have such a system, otherwise you
  168.       should say N here.
  169.  
  170. endchoice
  171.  
  172. config ACPI_SRAT
  173.     bool
  174.     default y
  175.     depends on NUMA && (X86_SUMMIT || X86_GENERICARCH)
  176.  
  177. config X86_SUMMIT_NUMA
  178.     bool
  179.     default y
  180.     depends on NUMA && (X86_SUMMIT || X86_GENERICARCH)
  181.  
  182. config X86_CYCLONE_TIMER
  183.     bool
  184.     default y
  185.     depends on X86_SUMMIT || X86_GENERICARCH
  186.  
  187. config ES7000_CLUSTERED_APIC
  188.     bool
  189.     default y
  190.     depends on SMP && X86_ES7000 && MPENTIUMIII
  191.  
  192. source "arch/i386/Kconfig.cpu"
  193.  
  194. config HPET_TIMER
  195.     bool "HPET Timer Support"
  196.     help
  197.       This enables the use of the HPET for the kernel's internal timer.
  198.       HPET is the next generation timer replacing legacy 8254s.
  199.       You can safely choose Y here.  However, HPET will only be
  200.       activated if the platform and the BIOS support this feature.
  201.       Otherwise the 8254 will be used for timing services.
  202.  
  203.       Choose N to continue using the legacy 8254 timer.
  204.  
  205. config HPET_EMULATE_RTC
  206.     bool
  207.     depends on HPET_TIMER && RTC=y
  208.     default y
  209.  
  210. config NR_CPUS
  211.     int "Maximum number of CPUs (2-255)"
  212.     range 2 255
  213.     depends on SMP
  214.     default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
  215.     default "8"
  216.     help
  217.       This allows you to specify the maximum number of CPUs which this
  218.       kernel will support.  The maximum supported value is 255 and the
  219.       minimum value which makes sense is 2.
  220.  
  221.       This is purely to save memory - each supported CPU adds
  222.       approximately eight kilobytes to the kernel image.
  223.  
  224. config SCHED_SMT
  225.     bool "SMT (Hyperthreading) scheduler support"
  226.     depends on SMP
  227.     default off
  228.     help
  229.       SMT scheduler support improves the CPU scheduler's decision making
  230.       when dealing with Intel Pentium 4 chips with HyperThreading at a
  231.       cost of slightly increased overhead in some places. If unsure say
  232.       N here.
  233.  
  234. config SCHED_MC
  235.     bool "Multi-core scheduler support"
  236.     depends on SMP
  237.     default y
  238.     help
  239.       Multi-core scheduler support improves the CPU scheduler's decision
  240.       making when dealing with multi-core CPU chips at a cost of slightly
  241.       increased overhead in some places. If unsure say N here.
  242.  
  243. source "kernel/Kconfig.preempt"
  244.  
  245. config X86_UP_APIC
  246.     bool "Local APIC support on uniprocessors"
  247.     depends on !SMP && !(X86_VISWS || X86_VOYAGER)
  248.     help
  249.       A local APIC (Advanced Programmable Interrupt Controller) is an
  250.       integrated interrupt controller in the CPU. If you have a single-CPU
  251.       system which has a processor with a local APIC, you can say Y here to
  252.       enable and use it. If you say Y here even though your machine doesn't
  253.       have a local APIC, then the kernel will still run with no slowdown at
  254.       all. The local APIC supports CPU-generated self-interrupts (timer,
  255.       performance counters), and the NMI watchdog which detects hard
  256.       lockups.
  257.  
  258. config X86_UP_IOAPIC
  259.     bool "IO-APIC support on uniprocessors"
  260.     depends on X86_UP_APIC
  261.     help
  262.       An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
  263.       SMP-capable replacement for PC-style interrupt controllers. Most
  264.       SMP systems and many recent uniprocessor systems have one.
  265.  
  266.       If you have a single-CPU system with an IO-APIC, you can say Y here
  267.       to use it. If you say Y here even though your machine doesn't have
  268.       an IO-APIC, then the kernel will still run with no slowdown at all.
  269.  
  270. config X86_UP_APIC_DEFAULT_OFF
  271.     bool "APIC support on uniprocessors defaults to off"
  272.     depends on !SMP && X86_UP_APIC
  273.     help
  274.       Some older systems have flaky APICs.  Say Y to turn off APIC
  275.       support by default, while still allowing it to be enabled by the
  276.       "lapic" and "apic" command line options.
  277.  
  278.       Usually this is only necessary for distro installer kernels that
  279.       must work with everything.  Everyone else can safely say N here
  280.       and configure APIC support in or out as needed.
  281.  
  282. config X86_LOCAL_APIC
  283.     bool
  284.     depends on X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER)
  285.     default y
  286.  
  287. config X86_IO_APIC
  288.     bool
  289.     depends on X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER))
  290.     default y
  291.  
  292. config X86_VISWS_APIC
  293.     bool
  294.     depends on X86_VISWS
  295.     default y
  296.  
  297. config X86_MCE
  298.     bool "Machine Check Exception"
  299.     depends on !X86_VOYAGER
  300.     ---help---
  301.       Machine Check Exception support allows the processor to notify the
  302.       kernel if it detects a problem (e.g. overheating, component failure).
  303.       The action the kernel takes depends on the severity of the problem,
  304.       ranging from a warning message on the console, to halting the machine.
  305.       Your processor must be a Pentium or newer to support this - check the
  306.       flags in /proc/cpuinfo for mce.  Note that some older Pentium systems
  307.       have a design flaw which leads to false MCE events - hence MCE is
  308.       disabled on all P5 processors, unless explicitly enabled with "mce"
  309.       as a boot argument.  Similarly, if MCE is built in and creates a
  310.       problem on some new non-standard machine, you can boot with "nomce"
  311.       to disable it.  MCE support simply ignores non-MCE processors like
  312.       the 386 and 486, so nearly everyone can say Y here.
  313.  
  314. config X86_MCE_NONFATAL
  315.     tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
  316.     depends on X86_MCE
  317.     help
  318.       Enabling this feature starts a timer that triggers every 5 seconds which
  319.       will look at the machine check registers to see if anything happened.
  320.       Non-fatal problems automatically get corrected (but still logged).
  321.       Disable this if you don't want to see these messages.
  322.       Seeing the messages this option prints out may be indicative of dying hardware,
  323.       or out-of-spec (ie, overclocked) hardware.
  324.       This option only does something on certain CPUs.
  325.       (AMD Athlon/Duron and Intel Pentium 4)
  326.  
  327. config X86_MCE_P4THERMAL
  328.     bool "check for P4 thermal throttling interrupt."
  329.     depends on X86_MCE && (X86_UP_APIC || SMP) && !X86_VISWS
  330.     help
  331.       Enabling this feature will cause a message to be printed when the P4
  332.       enters thermal throttling.
  333.  
  334. config TOSHIBA
  335.     tristate "Toshiba Laptop support"
  336.     ---help---
  337.       This adds a driver to safely access the System Management Mode of
  338.       the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
  339.       not work on models with a Phoenix BIOS. The System Management Mode
  340.       is used to set the BIOS and power saving options on Toshiba portables.
  341.  
  342.       For information on utilities to make use of this driver see the
  343.       Toshiba Linux utilities web site at:
  344.       <http://www.buzzard.org.uk/toshiba/>.
  345.  
  346.       Say Y if you intend to run this kernel on a Toshiba portable.
  347.       Say N otherwise.
  348.  
  349. config I8K
  350.     tristate "Dell laptop support"
  351.     ---help---
  352.       This adds a driver to safely access the System Management Mode
  353.       of the CPU on the Dell Inspiron 8000. The System Management Mode
  354.       is used to read cpu temperature and cooling fan status and to
  355.       control the fans on the I8K portables.
  356.  
  357.       This driver has been tested only on the Inspiron 8000 but it may
  358.       also work with other Dell laptops. You can force loading on other
  359.       models by passing the parameter `force=1' to the module. Use at
  360.       your own risk.
  361.  
  362.       For information on utilities to make use of this driver see the
  363.       I8K Linux utilities web site at:
  364.       <http://people.debian.org/~dz/i8k/>
  365.  
  366.       Say Y if you intend to run this kernel on a Dell Inspiron 8000.
  367.       Say N otherwise.
  368.  
  369. config X86_REBOOTFIXUPS
  370.     bool "Enable X86 board specific fixups for reboot"
  371.     depends on X86
  372.     default n
  373.     ---help---
  374.       This enables chipset and/or board specific fixups to be done
  375.       in order to get reboot to work correctly. This is only needed on
  376.       some combinations of hardware and BIOS. The symptom, for which
  377.       this config is intended, is when reboot ends with a stalled/hung
  378.       system.
  379.  
  380.       Currently, the only fixup is for the Geode GX1/CS5530A/TROM2.1.
  381.       combination.
  382.  
  383.       Say Y if you want to enable the fixup. Currently, it's safe to
  384.       enable this option even if you don't need it.
  385.       Say N otherwise.
  386.  
  387. config MICROCODE
  388.     tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
  389.     ---help---
  390.       If you say Y here and also to "/dev file system support" in the
  391.       'File systems' section, you will be able to update the microcode on
  392.       Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
  393.       Pentium III, Pentium 4, Xeon etc.  You will obviously need the
  394.       actual microcode binary data itself which is not shipped with the
  395.       Linux kernel.
  396.  
  397.       For latest news and information on obtaining all the required
  398.       ingredients for this driver, check:
  399.       <http://www.urbanmyth.org/microcode/>.
  400.  
  401.       To compile this driver as a module, choose M here: the
  402.       module will be called microcode.
  403.  
  404. config X86_MSR
  405.     tristate "/dev/cpu/*/msr - Model-specific register support"
  406.     help
  407.       This device gives privileged processes access to the x86
  408.       Model-Specific Registers (MSRs).  It is a character device with
  409.       major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
  410.       MSR accesses are directed to a specific CPU on multi-processor
  411.       systems.
  412.  
  413. config X86_CPUID
  414.     tristate "/dev/cpu/*/cpuid - CPU information support"
  415.     help
  416.       This device gives processes access to the x86 CPUID instruction to
  417.       be executed on a specific processor.  It is a character device
  418.       with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
  419.       /dev/cpu/31/cpuid.
  420.  
  421. source "drivers/firmware/Kconfig"
  422.  
  423. choice
  424.     prompt "High Memory Support"
  425.     default NOHIGHMEM
  426.  
  427. config NOHIGHMEM
  428.     bool "off"
  429.     depends on !X86_NUMAQ
  430.     ---help---
  431.       Linux can use up to 64 Gigabytes of physical memory on x86 systems.
  432.       However, the address space of 32-bit x86 processors is only 4
  433.       Gigabytes large. That means that, if you have a large amount of
  434.       physical memory, not all of it can be "permanently mapped" by the
  435.       kernel. The physical memory that's not permanently mapped is called
  436.       "high memory".
  437.  
  438.       If you are compiling a kernel which will never run on a machine with
  439.       more than 1 Gigabyte total physical RAM, answer "off" here (default
  440.       choice and suitable for most users). This will result in a "3GB/1GB"
  441.       split: 3GB are mapped so that each process sees a 3GB virtual memory
  442.       space and the remaining part of the 4GB virtual memory space is used
  443.       by the kernel to permanently map as much physical memory as
  444.       possible.
  445.  
  446.       If the machine has between 1 and 4 Gigabytes physical RAM, then
  447.       answer "4GB" here.
  448.  
  449.       If more than 4 Gigabytes is used then answer "64GB" here. This
  450.       selection turns Intel PAE (Physical Address Extension) mode on.
  451.       PAE implements 3-level paging on IA32 processors. PAE is fully
  452.       supported by Linux, PAE mode is implemented on all recent Intel
  453.       processors (Pentium Pro and better). NOTE: If you say "64GB" here,
  454.       then the kernel will not boot on CPUs that don't support PAE!
  455.  
  456.       The actual amount of total physical memory will either be
  457.       auto detected or can be forced by using a kernel command line option
  458.       such as "mem=256M". (Try "man bootparam" or see the documentation of
  459.       your boot loader (lilo or loadlin) about how to pass options to the
  460.       kernel at boot time.)
  461.  
  462.       If unsure, say "off".
  463.  
  464. config HIGHMEM4G
  465.     bool "4GB"
  466.     depends on !X86_NUMAQ
  467.     help
  468.       Select this if you have a 32-bit processor and between 1 and 4
  469.       gigabytes of physical RAM.
  470.  
  471. config HIGHMEM64G
  472.     bool "64GB"
  473.     depends on X86_CMPXCHG64
  474.     help
  475.       Select this if you have a 32-bit processor and more than 4
  476.       gigabytes of physical RAM.
  477.  
  478. endchoice
  479.  
  480. choice
  481.     depends on EXPERIMENTAL && !X86_PAE
  482.     prompt "Memory split" if EMBEDDED
  483.     default VMSPLIT_3G
  484.     help
  485.       Select the desired split between kernel and user memory.
  486.  
  487.       If the address range available to the kernel is less than the
  488.       physical memory installed, the remaining memory will be available
  489.       as "high memory". Accessing high memory is a little more costly
  490.       than low memory, as it needs to be mapped into the kernel first.
  491.       Note that increasing the kernel address space limits the range
  492.       available to user programs, making the address space there
  493.       tighter.  Selecting anything other than the default 3G/1G split
  494.       will also likely make your kernel incompatible with binary-only
  495.       kernel modules.
  496.  
  497.       If you are not absolutely sure what you are doing, leave this
  498.       option alone!
  499.  
  500.     config VMSPLIT_3G
  501.         bool "3G/1G user/kernel split"
  502.     config VMSPLIT_3G_OPT
  503.         bool "3G/1G user/kernel split (for full 1G low memory)"
  504.     config VMSPLIT_2G
  505.         bool "2G/2G user/kernel split"
  506.     config VMSPLIT_1G
  507.         bool "1G/3G user/kernel split"
  508. endchoice
  509.  
  510. config PAGE_OFFSET
  511.     hex
  512.     default 0xB0000000 if VMSPLIT_3G_OPT
  513.     default 0x78000000 if VMSPLIT_2G
  514.     default 0x40000000 if VMSPLIT_1G
  515.     default 0xC0000000
  516.  
  517. config HIGHMEM
  518.     bool
  519.     depends on HIGHMEM64G || HIGHMEM4G
  520.     default y
  521.  
  522. choice
  523.     prompt "User address space size"
  524.     default 1GB
  525.  
  526. config 05GB
  527.     bool "0.5 GB"
  528.     depends HIGHMEM64G
  529.  
  530. config 1GB
  531.     bool "1 GB"
  532.  
  533. config 2GB
  534.     bool "2 GB"
  535.     depends HIGHMEM
  536.  
  537. config 3GB
  538.     bool "3 GB"
  539.     depends HIGHMEM
  540.  
  541. endchoice
  542.  
  543. config X86_PAE
  544.     bool
  545.     depends on HIGHMEM64G
  546.     default y
  547.  
  548. # Common NUMA Features
  549. config NUMA
  550.     bool "Numa Memory Allocation and Scheduler Support"
  551.     depends on SMP && HIGHMEM64G && (X86_NUMAQ || X86_GENERICARCH || (X86_SUMMIT && ACPI))
  552.     default n if X86_PC
  553.     default y if (X86_NUMAQ || X86_SUMMIT)
  554.  
  555. comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
  556.     depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI)
  557.  
  558. config NODES_SHIFT
  559.     int
  560.     default "4" if X86_NUMAQ
  561.     default "3"
  562.     depends on NEED_MULTIPLE_NODES
  563.  
  564. config HAVE_ARCH_BOOTMEM_NODE
  565.     bool
  566.     depends on NUMA
  567.     default y
  568.  
  569. config ARCH_HAVE_MEMORY_PRESENT
  570.     bool
  571.     depends on DISCONTIGMEM
  572.     default y
  573.  
  574. config NEED_NODE_MEMMAP_SIZE
  575.     bool
  576.     depends on DISCONTIGMEM || SPARSEMEM
  577.     default y
  578.  
  579. config HAVE_ARCH_ALLOC_REMAP
  580.     bool
  581.     depends on NUMA
  582.     default y
  583.  
  584. config ARCH_FLATMEM_ENABLE
  585.     def_bool y
  586.     depends on (ARCH_SELECT_MEMORY_MODEL && X86_PC)
  587.  
  588. config ARCH_DISCONTIGMEM_ENABLE
  589.     def_bool y
  590.     depends on NUMA
  591.  
  592. config ARCH_DISCONTIGMEM_DEFAULT
  593.     def_bool y
  594.     depends on NUMA
  595.  
  596. config ARCH_SPARSEMEM_ENABLE
  597.     def_bool y
  598.     depends on (NUMA || (X86_PC && EXPERIMENTAL))
  599.     select SPARSEMEM_STATIC
  600.  
  601. config ARCH_SELECT_MEMORY_MODEL
  602.     def_bool y
  603.     depends on ARCH_SPARSEMEM_ENABLE
  604.  
  605. source "mm/Kconfig"
  606.  
  607. config HAVE_ARCH_EARLY_PFN_TO_NID
  608.     bool
  609.     default y
  610.     depends on NUMA
  611.  
  612. config HIGHPTE
  613.     bool "Allocate 3rd-level pagetables from highmem"
  614.     depends on HIGHMEM4G || HIGHMEM64G
  615.     help
  616.       The VM uses one page table entry for each page of physical memory.
  617.       For systems with a lot of RAM, this can be wasteful of precious
  618.       low memory.  Setting this option will put user-space page table
  619.       entries in high memory.
  620.  
  621. config MATH_EMULATION
  622.     bool "Math emulation"
  623.     ---help---
  624.       Linux can emulate a math coprocessor (used for floating point
  625.       operations) if you don't have one. 486DX and Pentium processors have
  626.       a math coprocessor built in, 486SX and 386 do not, unless you added
  627.       a 487DX or 387, respectively. (The messages during boot time can
  628.       give you some hints here ["man dmesg"].) Everyone needs either a
  629.       coprocessor or this emulation.
  630.  
  631.       If you don't have a math coprocessor, you need to say Y here; if you
  632.       say Y here even though you have a coprocessor, the coprocessor will
  633.       be used nevertheless. (This behavior can be changed with the kernel
  634.       command line option "no387", which comes handy if your coprocessor
  635.       is broken. Try "man bootparam" or see the documentation of your boot
  636.       loader (lilo or loadlin) about how to pass options to the kernel at
  637.       boot time.) This means that it is a good idea to say Y here if you
  638.       intend to use this kernel on different machines.
  639.  
  640.       More information about the internals of the Linux math coprocessor
  641.       emulation can be found in <file:arch/i386/math-emu/README>.
  642.  
  643.       If you are not sure, say Y; apart from resulting in a 66 KB bigger
  644.       kernel, it won't hurt.
  645.  
  646. config MTRR
  647.     bool "MTRR (Memory Type Range Register) support"
  648.     ---help---
  649.       On Intel P6 family processors (Pentium Pro, Pentium II and later)
  650.       the Memory Type Range Registers (MTRRs) may be used to control
  651.       processor access to memory ranges. This is most useful if you have
  652.       a video (VGA) card on a PCI or AGP bus. Enabling write-combining
  653.       allows bus write transfers to be combined into a larger transfer
  654.       before bursting over the PCI/AGP bus. This can increase performance
  655.       of image write operations 2.5 times or more. Saying Y here creates a
  656.       /proc/mtrr file which may be used to manipulate your processor's
  657.       MTRRs. Typically the X server should use this.
  658.  
  659.       This code has a reasonably generic interface so that similar
  660.       control registers on other processors can be easily supported
  661.       as well:
  662.  
  663.       The Cyrix 6x86, 6x86MX and M II processors have Address Range
  664.       Registers (ARRs) which provide a similar functionality to MTRRs. For
  665.       these, the ARRs are used to emulate the MTRRs.
  666.       The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
  667.       MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
  668.       write-combining. All of these processors are supported by this code
  669.       and it makes sense to say Y here if you have one of them.
  670.  
  671.       Saying Y here also fixes a problem with buggy SMP BIOSes which only
  672.       set the MTRRs for the boot CPU and not for the secondary CPUs. This
  673.       can lead to all sorts of problems, so it's good to say Y here.
  674.  
  675.       You can safely say Y even if your machine doesn't have MTRRs, you'll
  676.       just add about 9 KB to your kernel.
  677.  
  678.       See <file:Documentation/mtrr.txt> for more information.
  679.  
  680. config EFI
  681.     bool "Boot from EFI support (EXPERIMENTAL)"
  682.     depends on ACPI
  683.     default n
  684.     ---help---
  685.     This enables the the kernel to boot on EFI platforms using
  686.     system configuration information passed to it from the firmware.
  687.     This also enables the kernel to use any EFI runtime services that are
  688.     available (such as the EFI variable services).
  689.  
  690.     This option is only useful on systems that have EFI firmware
  691.     and will result in a kernel image that is ~8k larger.  In addition,
  692.     you must use the latest ELILO loader available at
  693.     <http://elilo.sourceforge.net> in order to take advantage of
  694.     kernel initialization using EFI information (neither GRUB nor LILO know
  695.     anything about EFI).  However, even with this option, the resultant
  696.     kernel should continue to boot on existing non-EFI platforms.
  697.  
  698. config IRQBALANCE
  699.      bool "Enable kernel irq balancing"
  700.     depends on SMP && X86_IO_APIC
  701.     default y
  702.     help
  703.        The default yes will allow the kernel to do irq load balancing.
  704.       Saying no will keep the kernel from doing irq load balancing.
  705.  
  706. # turning this on wastes a bunch of space.
  707. # Summit needs it only when NUMA is on
  708. config BOOT_IOREMAP
  709.     bool
  710.     depends on (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI))
  711.     default y
  712.  
  713. config REGPARM
  714.     bool "Use register arguments"
  715.     default y
  716.     help
  717.     Compile the kernel with -mregparm=3. This instructs gcc to use
  718.     a more efficient function call ABI which passes the first three
  719.     arguments of a function call via registers, which results in denser
  720.     and faster code.
  721.  
  722.     If this option is disabled, then the default ABI of passing
  723.     arguments via the stack is used.
  724.  
  725.     If unsure, say Y.
  726.  
  727. config SECCOMP
  728.     bool "Enable seccomp to safely compute untrusted bytecode"
  729.     depends on PROC_FS
  730.     default y
  731.     help
  732.       This kernel feature is useful for number crunching applications
  733.       that may need to compute untrusted bytecode during their
  734.       execution. By using pipes or other transports made available to
  735.       the process as file descriptors supporting the read/write
  736.       syscalls, it's possible to isolate those applications in
  737.       their own address space using seccomp. Once seccomp is
  738.       enabled via /proc/<pid>/seccomp, it cannot be disabled
  739.       and the task is only allowed to execute a few safe syscalls
  740.       defined by each seccomp mode.
  741.  
  742.       If unsure, say Y. Only embedded should say N here.
  743.  
  744. config SECCOMP_DISABLE_TSC
  745.     bool "Disable the TSC for seccomp tasks"
  746.     depends on SECCOMP
  747.     default n
  748.     help
  749.       This feature mathematically prevents covert channels
  750.       for tasks running under SECCOMP. This can generate
  751.       a minuscule overhead in the scheduler.
  752.  
  753.       If you care most about performance say N. Say Y only if you're
  754.       paranoid about covert channels.
  755.  
  756. source kernel/Kconfig.hz
  757.  
  758. config KEXEC
  759.     bool "kexec system call (EXPERIMENTAL)"
  760.     depends on EXPERIMENTAL
  761.     help
  762.       kexec is a system call that implements the ability to shutdown your
  763.       current kernel, and to start another kernel.  It is like a reboot
  764.       but it is indepedent of the system firmware.   And like a reboot
  765.       you can start any kernel with it, not just Linux.
  766.  
  767.       The name comes from the similiarity to the exec system call.
  768.  
  769.       It is an ongoing process to be certain the hardware in a machine
  770.       is properly shutdown, so do not be surprised if this code does not
  771.       initially work for you.  It may help to enable device hotplugging
  772.       support.  As of this writing the exact hardware interface is
  773.       strongly in flux, so no good recommendation can be made.
  774.  
  775. config CRASH_DUMP
  776.     bool "kernel crash dumps (EXPERIMENTAL)"
  777.     depends on EXPERIMENTAL
  778.     depends on HIGHMEM
  779.     help
  780.       Generate crash dump after being started by kexec.
  781.  
  782. config PHYSICAL_START
  783.     hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
  784.  
  785.     default "0x1000000" if CRASH_DUMP
  786.     default "0x100000"
  787.     help
  788.       This gives the physical address where the kernel is loaded. Normally
  789.       for regular kernels this value is 0x100000 (1MB). But in the case
  790.       of kexec on panic the fail safe kernel needs to run at a different
  791.       address than the panic-ed kernel. This option is used to set the load
  792.       address for kernels used to capture crash dump on being kexec'ed
  793.       after panic. The default value for crash dump kernels is
  794.       0x1000000 (16MB). This can also be set based on the "X" value as
  795.       specified in the "crashkernel=YM@XM" command line boot parameter
  796.       passed to the panic-ed kernel. Typically this parameter is set as
  797.       crashkernel=64M@16M. Please take a look at
  798.       Documentation/kdump/kdump.txt for more details about crash dumps.
  799.  
  800.       Don't change this unless you know what you are doing.
  801.  
  802. config HOTPLUG_CPU
  803.     bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
  804.     depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER
  805.     ---help---
  806.       Say Y here to experiment with turning CPUs off and on, and to
  807.       enable suspend on SMP systems. CPUs can be controlled through
  808.       /sys/devices/system/cpu.
  809.  
  810.  
  811. endmenu
  812.  
  813.  
  814. menu "Power management options (ACPI, APM)"
  815.     depends on !X86_VOYAGER
  816.  
  817. source kernel/power/Kconfig
  818.  
  819. source "drivers/acpi/Kconfig"
  820.  
  821. menu "APM (Advanced Power Management) BIOS Support"
  822. depends on PM && !X86_VISWS
  823.  
  824. config APM
  825.     tristate "APM (Advanced Power Management) BIOS support"
  826.     depends on PM
  827.     ---help---
  828.       APM is a BIOS specification for saving power using several different
  829.       techniques. This is mostly useful for battery powered laptops with
  830.       APM compliant BIOSes. If you say Y here, the system time will be
  831.       reset after a RESUME operation, the /proc/apm device will provide
  832.       battery status information, and user-space programs will receive
  833.       notification of APM "events" (e.g. battery status change).
  834.  
  835.       If you select "Y" here, you can disable actual use of the APM
  836.       BIOS by passing the "apm=off" option to the kernel at boot time.
  837.  
  838.       Note that the APM support is almost completely disabled for
  839.       machines with more than one CPU.
  840.  
  841.       In order to use APM, you will need supporting software. For location
  842.       and more information, read <file:Documentation/pm.txt> and the
  843.       Battery Powered Linux mini-HOWTO, available from
  844.       <http://www.tldp.org/docs.html#howto>.
  845.  
  846.       This driver does not spin down disk drives (see the hdparm(8)
  847.       manpage ("man 8 hdparm") for that), and it doesn't turn off
  848.       VESA-compliant "green" monitors.
  849.  
  850.       This driver does not support the TI 4000M TravelMate and the ACER
  851.       486/DX4/75 because they don't have compliant BIOSes. Many "green"
  852.       desktop machines also don't have compliant BIOSes, and this driver
  853.       may cause those machines to panic during the boot phase.
  854.  
  855.       Generally, if you don't have a battery in your machine, there isn't
  856.       much point in using this driver and you should say N. If you get
  857.       random kernel OOPSes or reboots that don't seem to be related to
  858.       anything, try disabling/enabling this option (or disabling/enabling
  859.       APM in your BIOS).
  860.  
  861.       Some other things you should try when experiencing seemingly random,
  862.       "weird" problems:
  863.  
  864.       1) make sure that you have enough swap space and that it is
  865.       enabled.
  866.       2) pass the "no-hlt" option to the kernel
  867.       3) switch on floating point emulation in the kernel and pass
  868.       the "no387" option to the kernel
  869.       4) pass the "floppy=nodma" option to the kernel
  870.       5) pass the "mem=4M" option to the kernel (thereby disabling
  871.       all but the first 4 MB of RAM)
  872.       6) make sure that the CPU is not over clocked.
  873.       7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
  874.       8) disable the cache from your BIOS settings
  875.       9) install a fan for the video card or exchange video RAM
  876.       10) install a better fan for the CPU
  877.       11) exchange RAM chips
  878.       12) exchange the motherboard.
  879.  
  880.       To compile this driver as a module, choose M here: the
  881.       module will be called apm.
  882.  
  883. config APM_IGNORE_USER_SUSPEND
  884.     bool "Ignore USER SUSPEND"
  885.     depends on APM
  886.     help
  887.       This option will ignore USER SUSPEND requests. On machines with a
  888.       compliant APM BIOS, you want to say N. However, on the NEC Versa M
  889.       series notebooks, it is necessary to say Y because of a BIOS bug.
  890.  
  891. config APM_DO_ENABLE
  892.     bool "Enable PM at boot time"
  893.     depends on APM
  894.     ---help---
  895.       Enable APM features at boot time. From page 36 of the APM BIOS
  896.       specification: "When disabled, the APM BIOS does not automatically
  897.       power manage devices, enter the Standby State, enter the Suspend
  898.       State, or take power saving steps in response to CPU Idle calls."
  899.       This driver will make CPU Idle calls when Linux is idle (unless this
  900.       feature is turned off -- see "Do CPU IDLE calls", below). This
  901.       should always save battery power, but more complicated APM features
  902.       will be dependent on your BIOS implementation. You may need to turn
  903.       this option off if your computer hangs at boot time when using APM
  904.       support, or if it beeps continuously instead of suspending. Turn
  905.       this off if you have a NEC UltraLite Versa 33/C or a Toshiba
  906.       T400CDT. This is off by default since most machines do fine without
  907.       this feature.
  908.  
  909. config APM_CPU_IDLE
  910.     bool "Make CPU Idle calls when idle"
  911.     depends on APM
  912.     help
  913.       Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
  914.       On some machines, this can activate improved power savings, such as
  915.       a slowed CPU clock rate, when the machine is idle. These idle calls
  916.       are made after the idle loop has run for some length of time (e.g.,
  917.       333 mS). On some machines, this will cause a hang at boot time or
  918.       whenever the CPU becomes idle. (On machines with more than one CPU,
  919.       this option does nothing.)
  920.  
  921. config APM_DISPLAY_BLANK
  922.     bool "Enable console blanking using APM"
  923.     depends on APM
  924.     help
  925.       Enable console blanking using the APM. Some laptops can use this to
  926.       turn off the LCD backlight when the screen blanker of the Linux
  927.       virtual console blanks the screen. Note that this is only used by
  928.       the virtual console screen blanker, and won't turn off the backlight
  929.       when using the X Window system. This also doesn't have anything to
  930.       do with your VESA-compliant power-saving monitor. Further, this
  931.       option doesn't work for all laptops -- it might not turn off your
  932.       backlight at all, or it might print a lot of errors to the console,
  933.       especially if you are using gpm.
  934.  
  935. config APM_RTC_IS_GMT
  936.     bool "RTC stores time in GMT"
  937.     depends on APM
  938.     help
  939.       Say Y here if your RTC (Real Time Clock a.k.a. hardware clock)
  940.       stores the time in GMT (Greenwich Mean Time). Say N if your RTC
  941.       stores localtime.
  942.  
  943.       It is in fact recommended to store GMT in your RTC, because then you
  944.       don't have to worry about daylight savings time changes. The only
  945.       reason not to use GMT in your RTC is if you also run a broken OS
  946.       that doesn't understand GMT.
  947.  
  948. config APM_ALLOW_INTS
  949.     bool "Allow interrupts during APM BIOS calls"
  950.     depends on APM
  951.     help
  952.       Normally we disable external interrupts while we are making calls to
  953.       the APM BIOS as a measure to lessen the effects of a badly behaving
  954.       BIOS implementation.  The BIOS should reenable interrupts if it
  955.       needs to.  Unfortunately, some BIOSes do not -- especially those in
  956.       many of the newer IBM Thinkpads.  If you experience hangs when you
  957.       suspend, try setting this to Y.  Otherwise, say N.
  958.  
  959. config APM_REAL_MODE_POWER_OFF
  960.     bool "Use real mode APM BIOS call to power off"
  961.     depends on APM
  962.     help
  963.       Use real mode APM BIOS calls to switch off the computer. This is
  964.       a work-around for a number of buggy BIOSes. Switch this option on if
  965.       your computer crashes instead of powering off properly.
  966.  
  967. endmenu
  968.  
  969. source "arch/i386/kernel/cpu/cpufreq/Kconfig"
  970.  
  971. endmenu
  972.  
  973. menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
  974.  
  975. config PCI
  976.     bool "PCI support" if !X86_VISWS
  977.     depends on !X86_VOYAGER
  978.     default y if X86_VISWS
  979.     help
  980.       Find out whether you have a PCI motherboard. PCI is the name of a
  981.       bus system, i.e. the way the CPU talks to the other stuff inside
  982.       your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
  983.       VESA. If you have PCI, say Y, otherwise N.
  984.  
  985.       The PCI-HOWTO, available from
  986.       <http://www.tldp.org/docs.html#howto>, contains valuable
  987.       information about which PCI hardware does work under Linux and which
  988.       doesn't.
  989.  
  990. choice
  991.     prompt "PCI access mode"
  992.     depends on PCI && !X86_VISWS
  993.     default PCI_GOANY
  994.     ---help---
  995.       On PCI systems, the BIOS can be used to detect the PCI devices and
  996.       determine their configuration. However, some old PCI motherboards
  997.       have BIOS bugs and may crash if this is done. Also, some embedded
  998.       PCI-based systems don't have any BIOS at all. Linux can also try to
  999.       detect the PCI hardware directly without using the BIOS.
  1000.  
  1001.       With this option, you can specify how Linux should detect the
  1002.       PCI devices. If you choose "BIOS", the BIOS will be used,
  1003.       if you choose "Direct", the BIOS won't be used, and if you
  1004.       choose "MMConfig", then PCI Express MMCONFIG will be used.
  1005.       If you choose "Any", the kernel will try MMCONFIG, then the
  1006.       direct access method and falls back to the BIOS if that doesn't
  1007.       work. If unsure, go with the default, which is "Any".
  1008.  
  1009. config PCI_GOBIOS
  1010.     bool "BIOS"
  1011.  
  1012. config PCI_GOMMCONFIG
  1013.     bool "MMConfig"
  1014.  
  1015. config PCI_GODIRECT
  1016.     bool "Direct"
  1017.  
  1018. config PCI_GOANY
  1019.     bool "Any"
  1020.  
  1021. endchoice
  1022.  
  1023. config PCI_BIOS
  1024.     bool
  1025.     depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
  1026.     default y
  1027.  
  1028. config PCI_DIRECT
  1029.     bool
  1030.      depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
  1031.     default y
  1032.  
  1033. config PCI_MMCONFIG
  1034.     bool
  1035.     depends on PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY)
  1036.     default y
  1037.  
  1038. source "drivers/pci/pcie/Kconfig"
  1039.  
  1040. source "drivers/pci/Kconfig"
  1041.  
  1042. config ISA_DMA_API
  1043.     bool
  1044.     default y
  1045.  
  1046. config ISA
  1047.     bool "ISA support"
  1048.     depends on !(X86_VOYAGER || X86_VISWS)
  1049.     help
  1050.       Find out whether you have ISA slots on your motherboard.  ISA is the
  1051.       name of a bus system, i.e. the way the CPU talks to the other stuff
  1052.       inside your box.  Other bus systems are PCI, EISA, MicroChannel
  1053.       (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
  1054.       newer boards don't support it.  If you have ISA, say Y, otherwise N.
  1055.  
  1056. config EISA
  1057.     bool "EISA support"
  1058.     depends on ISA
  1059.     ---help---
  1060.       The Extended Industry Standard Architecture (EISA) bus was
  1061.       developed as an open alternative to the IBM MicroChannel bus.
  1062.  
  1063.       The EISA bus provided some of the features of the IBM MicroChannel
  1064.       bus while maintaining backward compatibility with cards made for
  1065.       the older ISA bus.  The EISA bus saw limited use between 1988 and
  1066.       1995 when it was made obsolete by the PCI bus.
  1067.  
  1068.       Say Y here if you are building a kernel for an EISA-based machine.
  1069.  
  1070.       Otherwise, say N.
  1071.  
  1072. source "drivers/eisa/Kconfig"
  1073.  
  1074. config MCA
  1075.     bool "MCA support" if !(X86_VISWS || X86_VOYAGER)
  1076.     default y if X86_VOYAGER
  1077.     help
  1078.       MicroChannel Architecture is found in some IBM PS/2 machines and
  1079.       laptops.  It is a bus system similar to PCI or ISA. See
  1080.       <file:Documentation/mca.txt> (and especially the web page given
  1081.       there) before attempting to build an MCA bus kernel.
  1082.  
  1083. source "drivers/mca/Kconfig"
  1084.  
  1085. config SCx200
  1086.     tristate "NatSemi SCx200 support"
  1087.     depends on !X86_VOYAGER
  1088.     help
  1089.       This provides basic support for the National Semiconductor SCx200
  1090.       processor.  Right now this is just a driver for the GPIO pins.
  1091.  
  1092.       If you don't know what to do here, say N.
  1093.  
  1094.       This support is also available as a module.  If compiled as a
  1095.       module, it will be called scx200.
  1096.  
  1097. source "drivers/pcmcia/Kconfig"
  1098.  
  1099. source "drivers/pci/hotplug/Kconfig"
  1100.  
  1101. endmenu
  1102.  
  1103. menu "Executable file formats"
  1104.  
  1105. source "fs/Kconfig.binfmt"
  1106.  
  1107. endmenu
  1108.  
  1109. source "net/Kconfig"
  1110.  
  1111. source "drivers/Kconfig"
  1112.  
  1113. source "fs/Kconfig"
  1114.  
  1115. menu "Instrumentation Support"
  1116.     depends on EXPERIMENTAL
  1117.  
  1118. source "arch/i386/oprofile/Kconfig"
  1119.  
  1120. config KPROBES
  1121.     bool "Kprobes (EXPERIMENTAL)"
  1122.     depends on EXPERIMENTAL && MODULES
  1123.     help
  1124.       Kprobes allows you to trap at almost any kernel address and
  1125.       execute a callback function.  register_kprobe() establishes
  1126.       a probepoint and specifies the callback.  Kprobes is useful
  1127.       for kernel debugging, non-intrusive instrumentation and testing.
  1128.       If in doubt, say "N".
  1129. endmenu
  1130.  
  1131. source "arch/i386/Kconfig.debug"
  1132.  
  1133. source "security/Kconfig"
  1134.  
  1135. source "crypto/Kconfig"
  1136.  
  1137. source "lib/Kconfig"
  1138.  
  1139.  
  1140.  
  1141. #
  1142. # Use the generic interrupt handling code in kernel/irq/:
  1143. #
  1144. config GENERIC_HARDIRQS
  1145.     bool
  1146.     default y
  1147.  
  1148. config GENERIC_IRQ_PROBE
  1149.     bool
  1150.     default y
  1151.  
  1152. config GENERIC_PENDING_IRQ
  1153.     bool
  1154.     depends on GENERIC_HARDIRQS && SMP
  1155.     default y
  1156.  
  1157. config X86_SMP
  1158.     bool
  1159.     depends on SMP && !X86_VOYAGER
  1160.     default y
  1161.  
  1162. config X86_HT
  1163.     bool
  1164.     depends on SMP && !(X86_VISWS || X86_VOYAGER)
  1165.     default y
  1166.  
  1167. config X86_HT_DISABLE
  1168.     bool
  1169.     depends on X86_HT
  1170.     default y
  1171.  
  1172. config X86_BIOS_REBOOT
  1173.     bool
  1174.     depends on !(X86_VISWS || X86_VOYAGER)
  1175.     default y
  1176.  
  1177. config X86_TRAMPOLINE
  1178.     bool
  1179.     depends on X86_SMP || (X86_VOYAGER && SMP)
  1180.     default y
  1181.  
  1182. config KTIME_SCALAR
  1183.     bool
  1184.     default y
  1185.