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