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