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