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