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