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