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