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