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