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