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