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