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