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_IDE 22 select HAVE_OPROFILE 23 select HAVE_KPROBES 24 select HAVE_KRETPROBES 25 select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64) 26 27 28config GENERIC_LOCKBREAK 29 def_bool n 30 31config GENERIC_TIME 32 def_bool y 33 34config GENERIC_CMOS_UPDATE 35 def_bool y 36 37config CLOCKSOURCE_WATCHDOG 38 def_bool y 39 40config GENERIC_CLOCKEVENTS 41 def_bool y 42 43config GENERIC_CLOCKEVENTS_BROADCAST 44 def_bool y 45 depends on X86_64 || (X86_32 && X86_LOCAL_APIC) 46 47config LOCKDEP_SUPPORT 48 def_bool y 49 50config STACKTRACE_SUPPORT 51 def_bool y 52 53config HAVE_LATENCYTOP_SUPPORT 54 def_bool y 55 56config SEMAPHORE_SLEEPERS 57 def_bool y 58 59config FAST_CMPXCHG_LOCAL 60 bool 61 default y 62 63config MMU 64 def_bool y 65 66config ZONE_DMA 67 def_bool y 68 69config SBUS 70 bool 71 72config GENERIC_ISA_DMA 73 def_bool y 74 75config GENERIC_IOMAP 76 def_bool y 77 78config GENERIC_BUG 79 def_bool y 80 depends on BUG 81 82config GENERIC_HWEIGHT 83 def_bool y 84 85config GENERIC_GPIO 86 def_bool n 87 88config ARCH_MAY_HAVE_PC_FDC 89 def_bool y 90 91config DMI 92 def_bool y 93 94config RWSEM_GENERIC_SPINLOCK 95 def_bool !X86_XADD 96 97config RWSEM_XCHGADD_ALGORITHM 98 def_bool X86_XADD 99 100config ARCH_HAS_ILOG2_U32 101 def_bool n 102 103config ARCH_HAS_ILOG2_U64 104 def_bool n 105 106config ARCH_HAS_CPU_IDLE_WAIT 107 def_bool y 108 109config GENERIC_CALIBRATE_DELAY 110 def_bool y 111 112config GENERIC_TIME_VSYSCALL 113 bool 114 default X86_64 115 116config ARCH_HAS_CPU_RELAX 117 def_bool y 118 119config HAVE_SETUP_PER_CPU_AREA 120 def_bool X86_64 121 122config ARCH_HIBERNATION_POSSIBLE 123 def_bool y 124 depends on !SMP || !X86_VOYAGER 125 126config ARCH_SUSPEND_POSSIBLE 127 def_bool y 128 depends on !X86_VOYAGER 129 130config ZONE_DMA32 131 bool 132 default X86_64 133 134config ARCH_POPULATES_NODE_MAP 135 def_bool y 136 137config AUDIT_ARCH 138 bool 139 default X86_64 140 141config ARCH_SUPPORTS_AOUT 142 def_bool y 143 144# Use the generic interrupt handling code in kernel/irq/: 145config GENERIC_HARDIRQS 146 bool 147 default y 148 149config GENERIC_IRQ_PROBE 150 bool 151 default y 152 153config GENERIC_PENDING_IRQ 154 bool 155 depends on GENERIC_HARDIRQS && SMP 156 default y 157 158config X86_SMP 159 bool 160 depends on SMP && ((X86_32 && !X86_VOYAGER) || X86_64) 161 default y 162 163config X86_32_SMP 164 def_bool y 165 depends on X86_32 && SMP 166 167config X86_64_SMP 168 def_bool y 169 depends on X86_64 && SMP 170 171config X86_HT 172 bool 173 depends on SMP 174 depends on (X86_32 && !(X86_VISWS || X86_VOYAGER)) || (X86_64 && !MK8) 175 default y 176 177config X86_BIOS_REBOOT 178 bool 179 depends on X86_32 && !(X86_VISWS || X86_VOYAGER) 180 default y 181 182config X86_TRAMPOLINE 183 bool 184 depends on X86_SMP || (X86_VOYAGER && SMP) 185 default y 186 187config KTIME_SCALAR 188 def_bool X86_32 189source "init/Kconfig" 190 191menu "Processor type and features" 192 193source "kernel/time/Kconfig" 194 195config SMP 196 bool "Symmetric multi-processing support" 197 ---help--- 198 This enables support for systems with more than one CPU. If you have 199 a system with only one CPU, like most personal computers, say N. If 200 you have a system with more than one CPU, say Y. 201 202 If you say N here, the kernel will run on single and multiprocessor 203 machines, but will use only one CPU of a multiprocessor machine. If 204 you say Y here, the kernel will run on many, but not all, 205 singleprocessor machines. On a singleprocessor machine, the kernel 206 will run faster if you say N here. 207 208 Note that if you say Y here and choose architecture "586" or 209 "Pentium" under "Processor family", the kernel will not work on 486 210 architectures. Similarly, multiprocessor kernels for the "PPro" 211 architecture may not work on all Pentium based boards. 212 213 People using multiprocessor machines who say Y here should also say 214 Y to "Enhanced Real Time Clock Support", below. The "Advanced Power 215 Management" code will be disabled if you say Y here. 216 217 See also <file:Documentation/i386/IO-APIC.txt>, 218 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at 219 <http://www.tldp.org/docs.html#howto>. 220 221 If you don't know what to do here, say N. 222 223choice 224 prompt "Subarchitecture Type" 225 default X86_PC 226 227config X86_PC 228 bool "PC-compatible" 229 help 230 Choose this option if your computer is a standard PC or compatible. 231 232config X86_ELAN 233 bool "AMD Elan" 234 depends on X86_32 235 help 236 Select this for an AMD Elan processor. 237 238 Do not use this option for K6/Athlon/Opteron processors! 239 240 If unsure, choose "PC-compatible" instead. 241 242config X86_VOYAGER 243 bool "Voyager (NCR)" 244 depends on X86_32 245 select SMP if !BROKEN 246 help 247 Voyager is an MCA-based 32-way capable SMP architecture proprietary 248 to NCR Corp. Machine classes 345x/35xx/4100/51xx are Voyager-based. 249 250 *** WARNING *** 251 252 If you do not specifically know you have a Voyager based machine, 253 say N here, otherwise the kernel you build will not be bootable. 254 255config X86_NUMAQ 256 bool "NUMAQ (IBM/Sequent)" 257 select SMP 258 select NUMA 259 depends on X86_32 260 help 261 This option is used for getting Linux to run on a (IBM/Sequent) NUMA 262 multiquad box. This changes the way that processors are bootstrapped, 263 and uses Clustered Logical APIC addressing mode instead of Flat Logical. 264 You will need a new lynxer.elf file to flash your firmware with - send 265 email to <Martin.Bligh@us.ibm.com>. 266 267config X86_SUMMIT 268 bool "Summit/EXA (IBM x440)" 269 depends on X86_32 && SMP 270 help 271 This option is needed for IBM systems that use the Summit/EXA chipset. 272 In particular, it is needed for the x440. 273 274 If you don't have one of these computers, you should say N here. 275 If you want to build a NUMA kernel, you must select ACPI. 276 277config X86_BIGSMP 278 bool "Support for other sub-arch SMP systems with more than 8 CPUs" 279 depends on X86_32 && SMP 280 help 281 This option is needed for the systems that have more than 8 CPUs 282 and if the system is not of any sub-arch type above. 283 284 If you don't have such a system, you should say N here. 285 286config X86_VISWS 287 bool "SGI 320/540 (Visual Workstation)" 288 depends on X86_32 289 help 290 The SGI Visual Workstation series is an IA32-based workstation 291 based on SGI systems chips with some legacy PC hardware attached. 292 293 Say Y here to create a kernel to run on the SGI 320 or 540. 294 295 A kernel compiled for the Visual Workstation will not run on PCs 296 and vice versa. See <file:Documentation/sgi-visws.txt> for details. 297 298config X86_GENERICARCH 299 bool "Generic architecture (Summit, bigsmp, ES7000, default)" 300 depends on X86_32 301 help 302 This option compiles in the Summit, bigsmp, ES7000, default subarchitectures. 303 It is intended for a generic binary kernel. 304 If you want a NUMA kernel, select ACPI. We need SRAT for NUMA. 305 306config X86_ES7000 307 bool "Support for Unisys ES7000 IA32 series" 308 depends on X86_32 && SMP 309 help 310 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is 311 supposed to run on an IA32-based Unisys ES7000 system. 312 Only choose this option if you have such a system, otherwise you 313 should say N here. 314 315config X86_RDC321X 316 bool "RDC R-321x SoC" 317 depends on X86_32 318 select M486 319 select X86_REBOOTFIXUPS 320 select GENERIC_GPIO 321 select LEDS_CLASS 322 select LEDS_GPIO 323 help 324 This option is needed for RDC R-321x system-on-chip, also known 325 as R-8610-(G). 326 If you don't have one of these chips, you should say N here. 327 328config X86_VSMP 329 bool "Support for ScaleMP vSMP" 330 depends on X86_64 && PCI 331 help 332 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is 333 supposed to run on these EM64T-based machines. Only choose this option 334 if you have one of these machines. 335 336endchoice 337 338config SCHED_NO_NO_OMIT_FRAME_POINTER 339 def_bool y 340 prompt "Single-depth WCHAN output" 341 depends on X86_32 342 help 343 Calculate simpler /proc/<PID>/wchan values. If this option 344 is disabled then wchan values will recurse back to the 345 caller function. This provides more accurate wchan values, 346 at the expense of slightly more scheduling overhead. 347 348 If in doubt, say "Y". 349 350menuconfig PARAVIRT_GUEST 351 bool "Paravirtualized guest support" 352 help 353 Say Y here to get to see options related to running Linux under 354 various hypervisors. This option alone does not add any kernel code. 355 356 If you say N, all options in this submenu will be skipped and disabled. 357 358if PARAVIRT_GUEST 359 360source "arch/x86/xen/Kconfig" 361 362config VMI 363 bool "VMI Guest support" 364 select PARAVIRT 365 depends on X86_32 366 depends on !(X86_VISWS || X86_VOYAGER) 367 help 368 VMI provides a paravirtualized interface to the VMware ESX server 369 (it could be used by other hypervisors in theory too, but is not 370 at the moment), by linking the kernel to a GPL-ed ROM module 371 provided by the hypervisor. 372 373source "arch/x86/lguest/Kconfig" 374 375config PARAVIRT 376 bool "Enable paravirtualization code" 377 depends on !(X86_VISWS || X86_VOYAGER) 378 help 379 This changes the kernel so it can modify itself when it is run 380 under a hypervisor, potentially improving performance significantly 381 over full virtualization. However, when run without a hypervisor 382 the kernel is theoretically slower and slightly larger. 383 384endif 385 386config ACPI_SRAT 387 def_bool y 388 depends on X86_32 && ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH) 389 select ACPI_NUMA 390 391config HAVE_ARCH_PARSE_SRAT 392 def_bool y 393 depends on ACPI_SRAT 394 395config X86_SUMMIT_NUMA 396 def_bool y 397 depends on X86_32 && NUMA && (X86_SUMMIT || X86_GENERICARCH) 398 399config X86_CYCLONE_TIMER 400 def_bool y 401 depends on X86_32 && X86_SUMMIT || X86_GENERICARCH 402 403config ES7000_CLUSTERED_APIC 404 def_bool y 405 depends on SMP && X86_ES7000 && MPENTIUMIII 406 407source "arch/x86/Kconfig.cpu" 408 409config HPET_TIMER 410 def_bool X86_64 411 prompt "HPET Timer Support" if X86_32 412 help 413 Use the IA-PC HPET (High Precision Event Timer) to manage 414 time in preference to the PIT and RTC, if a HPET is 415 present. 416 HPET is the next generation timer replacing legacy 8254s. 417 The HPET provides a stable time base on SMP 418 systems, unlike the TSC, but it is more expensive to access, 419 as it is off-chip. You can find the HPET spec at 420 <http://www.intel.com/hardwaredesign/hpetspec.htm>. 421 422 You can safely choose Y here. However, HPET will only be 423 activated if the platform and the BIOS support this feature. 424 Otherwise the 8254 will be used for timing services. 425 426 Choose N to continue using the legacy 8254 timer. 427 428config HPET_EMULATE_RTC 429 def_bool y 430 depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y) 431 432# Mark as embedded because too many people got it wrong. 433# The code disables itself when not needed. 434config GART_IOMMU 435 bool "GART IOMMU support" if EMBEDDED 436 default y 437 select SWIOTLB 438 select AGP 439 depends on X86_64 && PCI 440 help 441 Support for full DMA access of devices with 32bit memory access only 442 on systems with more than 3GB. This is usually needed for USB, 443 sound, many IDE/SATA chipsets and some other devices. 444 Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART 445 based hardware IOMMU and a software bounce buffer based IOMMU used 446 on Intel systems and as fallback. 447 The code is only active when needed (enough memory and limited 448 device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified 449 too. 450 451config CALGARY_IOMMU 452 bool "IBM Calgary IOMMU support" 453 select SWIOTLB 454 depends on X86_64 && PCI && EXPERIMENTAL 455 help 456 Support for hardware IOMMUs in IBM's xSeries x366 and x460 457 systems. Needed to run systems with more than 3GB of memory 458 properly with 32-bit PCI devices that do not support DAC 459 (Double Address Cycle). Calgary also supports bus level 460 isolation, where all DMAs pass through the IOMMU. This 461 prevents them from going anywhere except their intended 462 destination. This catches hard-to-find kernel bugs and 463 mis-behaving drivers and devices that do not use the DMA-API 464 properly to set up their DMA buffers. The IOMMU can be 465 turned off at boot time with the iommu=off parameter. 466 Normally the kernel will make the right choice by itself. 467 If unsure, say Y. 468 469config CALGARY_IOMMU_ENABLED_BY_DEFAULT 470 def_bool y 471 prompt "Should Calgary be enabled by default?" 472 depends on CALGARY_IOMMU 473 help 474 Should Calgary be enabled by default? if you choose 'y', Calgary 475 will be used (if it exists). If you choose 'n', Calgary will not be 476 used even if it exists. If you choose 'n' and would like to use 477 Calgary anyway, pass 'iommu=calgary' on the kernel command line. 478 If unsure, say Y. 479 480config IOMMU_HELPER 481 def_bool (CALGARY_IOMMU || GART_IOMMU) 482 483# need this always selected by IOMMU for the VIA workaround 484config SWIOTLB 485 bool 486 help 487 Support for software bounce buffers used on x86-64 systems 488 which don't have a hardware IOMMU (e.g. the current generation 489 of Intel's x86-64 CPUs). Using this PCI devices which can only 490 access 32-bits of memory can be used on systems with more than 491 3 GB of memory. If unsure, say Y. 492 493 494config NR_CPUS 495 int "Maximum number of CPUs (2-255)" 496 range 2 255 497 depends on SMP 498 default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000 499 default "8" 500 help 501 This allows you to specify the maximum number of CPUs which this 502 kernel will support. The maximum supported value is 255 and the 503 minimum value which makes sense is 2. 504 505 This is purely to save memory - each supported CPU adds 506 approximately eight kilobytes to the kernel image. 507 508config SCHED_SMT 509 bool "SMT (Hyperthreading) scheduler support" 510 depends on (X86_64 && SMP) || (X86_32 && X86_HT) 511 help 512 SMT scheduler support improves the CPU scheduler's decision making 513 when dealing with Intel Pentium 4 chips with HyperThreading at a 514 cost of slightly increased overhead in some places. If unsure say 515 N here. 516 517config SCHED_MC 518 def_bool y 519 prompt "Multi-core scheduler support" 520 depends on (X86_64 && SMP) || (X86_32 && X86_HT) 521 help 522 Multi-core scheduler support improves the CPU scheduler's decision 523 making when dealing with multi-core CPU chips at a cost of slightly 524 increased overhead in some places. If unsure say N here. 525 526source "kernel/Kconfig.preempt" 527 528config X86_UP_APIC 529 bool "Local APIC support on uniprocessors" 530 depends on X86_32 && !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH) 531 help 532 A local APIC (Advanced Programmable Interrupt Controller) is an 533 integrated interrupt controller in the CPU. If you have a single-CPU 534 system which has a processor with a local APIC, you can say Y here to 535 enable and use it. If you say Y here even though your machine doesn't 536 have a local APIC, then the kernel will still run with no slowdown at 537 all. The local APIC supports CPU-generated self-interrupts (timer, 538 performance counters), and the NMI watchdog which detects hard 539 lockups. 540 541config X86_UP_IOAPIC 542 bool "IO-APIC support on uniprocessors" 543 depends on X86_UP_APIC 544 help 545 An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an 546 SMP-capable replacement for PC-style interrupt controllers. Most 547 SMP systems and many recent uniprocessor systems have one. 548 549 If you have a single-CPU system with an IO-APIC, you can say Y here 550 to use it. If you say Y here even though your machine doesn't have 551 an IO-APIC, then the kernel will still run with no slowdown at all. 552 553config X86_LOCAL_APIC 554 def_bool y 555 depends on X86_64 || (X86_32 && (X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) || X86_GENERICARCH)) 556 557config X86_IO_APIC 558 def_bool y 559 depends on X86_64 || (X86_32 && (X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH)) 560 561config X86_VISWS_APIC 562 def_bool y 563 depends on X86_32 && X86_VISWS 564 565config X86_MCE 566 bool "Machine Check Exception" 567 depends on !X86_VOYAGER 568 ---help--- 569 Machine Check Exception support allows the processor to notify the 570 kernel if it detects a problem (e.g. overheating, component failure). 571 The action the kernel takes depends on the severity of the problem, 572 ranging from a warning message on the console, to halting the machine. 573 Your processor must be a Pentium or newer to support this - check the 574 flags in /proc/cpuinfo for mce. Note that some older Pentium systems 575 have a design flaw which leads to false MCE events - hence MCE is 576 disabled on all P5 processors, unless explicitly enabled with "mce" 577 as a boot argument. Similarly, if MCE is built in and creates a 578 problem on some new non-standard machine, you can boot with "nomce" 579 to disable it. MCE support simply ignores non-MCE processors like 580 the 386 and 486, so nearly everyone can say Y here. 581 582config X86_MCE_INTEL 583 def_bool y 584 prompt "Intel MCE features" 585 depends on X86_64 && X86_MCE && X86_LOCAL_APIC 586 help 587 Additional support for intel specific MCE features such as 588 the thermal monitor. 589 590config X86_MCE_AMD 591 def_bool y 592 prompt "AMD MCE features" 593 depends on X86_64 && X86_MCE && X86_LOCAL_APIC 594 help 595 Additional support for AMD specific MCE features such as 596 the DRAM Error Threshold. 597 598config X86_MCE_NONFATAL 599 tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4" 600 depends on X86_32 && X86_MCE 601 help 602 Enabling this feature starts a timer that triggers every 5 seconds which 603 will look at the machine check registers to see if anything happened. 604 Non-fatal problems automatically get corrected (but still logged). 605 Disable this if you don't want to see these messages. 606 Seeing the messages this option prints out may be indicative of dying 607 or out-of-spec (ie, overclocked) hardware. 608 This option only does something on certain CPUs. 609 (AMD Athlon/Duron and Intel Pentium 4) 610 611config X86_MCE_P4THERMAL 612 bool "check for P4 thermal throttling interrupt." 613 depends on X86_32 && X86_MCE && (X86_UP_APIC || SMP) && !X86_VISWS 614 help 615 Enabling this feature will cause a message to be printed when the P4 616 enters thermal throttling. 617 618config VM86 619 bool "Enable VM86 support" if EMBEDDED 620 default y 621 depends on X86_32 622 help 623 This option is required by programs like DOSEMU to run 16-bit legacy 624 code on X86 processors. It also may be needed by software like 625 XFree86 to initialize some video cards via BIOS. Disabling this 626 option saves about 6k. 627 628config TOSHIBA 629 tristate "Toshiba Laptop support" 630 depends on X86_32 631 ---help--- 632 This adds a driver to safely access the System Management Mode of 633 the CPU on Toshiba portables with a genuine Toshiba BIOS. It does 634 not work on models with a Phoenix BIOS. The System Management Mode 635 is used to set the BIOS and power saving options on Toshiba portables. 636 637 For information on utilities to make use of this driver see the 638 Toshiba Linux utilities web site at: 639 <http://www.buzzard.org.uk/toshiba/>. 640 641 Say Y if you intend to run this kernel on a Toshiba portable. 642 Say N otherwise. 643 644config I8K 645 tristate "Dell laptop support" 646 ---help--- 647 This adds a driver to safely access the System Management Mode 648 of the CPU on the Dell Inspiron 8000. The System Management Mode 649 is used to read cpu temperature and cooling fan status and to 650 control the fans on the I8K portables. 651 652 This driver has been tested only on the Inspiron 8000 but it may 653 also work with other Dell laptops. You can force loading on other 654 models by passing the parameter `force=1' to the module. Use at 655 your own risk. 656 657 For information on utilities to make use of this driver see the 658 I8K Linux utilities web site at: 659 <http://people.debian.org/~dz/i8k/> 660 661 Say Y if you intend to run this kernel on a Dell Inspiron 8000. 662 Say N otherwise. 663 664config X86_REBOOTFIXUPS 665 def_bool n 666 prompt "Enable X86 board specific fixups for reboot" 667 depends on X86_32 && X86 668 ---help--- 669 This enables chipset and/or board specific fixups to be done 670 in order to get reboot to work correctly. This is only needed on 671 some combinations of hardware and BIOS. The symptom, for which 672 this config is intended, is when reboot ends with a stalled/hung 673 system. 674 675 Currently, the only fixup is for the Geode machines using 676 CS5530A and CS5536 chipsets and the RDC R-321x SoC. 677 678 Say Y if you want to enable the fixup. Currently, it's safe to 679 enable this option even if you don't need it. 680 Say N otherwise. 681 682config MICROCODE 683 tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support" 684 select FW_LOADER 685 ---help--- 686 If you say Y here, you will be able to update the microcode on 687 Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II, 688 Pentium III, Pentium 4, Xeon etc. You will obviously need the 689 actual microcode binary data itself which is not shipped with the 690 Linux kernel. 691 692 For latest news and information on obtaining all the required 693 ingredients for this driver, check: 694 <http://www.urbanmyth.org/microcode/>. 695 696 To compile this driver as a module, choose M here: the 697 module will be called microcode. 698 699config MICROCODE_OLD_INTERFACE 700 def_bool y 701 depends on MICROCODE 702 703config X86_MSR 704 tristate "/dev/cpu/*/msr - Model-specific register support" 705 help 706 This device gives privileged processes access to the x86 707 Model-Specific Registers (MSRs). It is a character device with 708 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr. 709 MSR accesses are directed to a specific CPU on multi-processor 710 systems. 711 712config X86_CPUID 713 tristate "/dev/cpu/*/cpuid - CPU information support" 714 help 715 This device gives processes access to the x86 CPUID instruction to 716 be executed on a specific processor. It is a character device 717 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to 718 /dev/cpu/31/cpuid. 719 720choice 721 prompt "High Memory Support" 722 default HIGHMEM4G if !X86_NUMAQ 723 default HIGHMEM64G if X86_NUMAQ 724 depends on X86_32 725 726config NOHIGHMEM 727 bool "off" 728 depends on !X86_NUMAQ 729 ---help--- 730 Linux can use up to 64 Gigabytes of physical memory on x86 systems. 731 However, the address space of 32-bit x86 processors is only 4 732 Gigabytes large. That means that, if you have a large amount of 733 physical memory, not all of it can be "permanently mapped" by the 734 kernel. The physical memory that's not permanently mapped is called 735 "high memory". 736 737 If you are compiling a kernel which will never run on a machine with 738 more than 1 Gigabyte total physical RAM, answer "off" here (default 739 choice and suitable for most users). This will result in a "3GB/1GB" 740 split: 3GB are mapped so that each process sees a 3GB virtual memory 741 space and the remaining part of the 4GB virtual memory space is used 742 by the kernel to permanently map as much physical memory as 743 possible. 744 745 If the machine has between 1 and 4 Gigabytes physical RAM, then 746 answer "4GB" here. 747 748 If more than 4 Gigabytes is used then answer "64GB" here. This 749 selection turns Intel PAE (Physical Address Extension) mode on. 750 PAE implements 3-level paging on IA32 processors. PAE is fully 751 supported by Linux, PAE mode is implemented on all recent Intel 752 processors (Pentium Pro and better). NOTE: If you say "64GB" here, 753 then the kernel will not boot on CPUs that don't support PAE! 754 755 The actual amount of total physical memory will either be 756 auto detected or can be forced by using a kernel command line option 757 such as "mem=256M". (Try "man bootparam" or see the documentation of 758 your boot loader (lilo or loadlin) about how to pass options to the 759 kernel at boot time.) 760 761 If unsure, say "off". 762 763config HIGHMEM4G 764 bool "4GB" 765 depends on !X86_NUMAQ 766 help 767 Select this if you have a 32-bit processor and between 1 and 4 768 gigabytes of physical RAM. 769 770config HIGHMEM64G 771 bool "64GB" 772 depends on !M386 && !M486 773 select X86_PAE 774 help 775 Select this if you have a 32-bit processor and more than 4 776 gigabytes of physical RAM. 777 778endchoice 779 780choice 781 depends on EXPERIMENTAL 782 prompt "Memory split" if EMBEDDED 783 default VMSPLIT_3G 784 depends on X86_32 785 help 786 Select the desired split between kernel and user memory. 787 788 If the address range available to the kernel is less than the 789 physical memory installed, the remaining memory will be available 790 as "high memory". Accessing high memory is a little more costly 791 than low memory, as it needs to be mapped into the kernel first. 792 Note that increasing the kernel address space limits the range 793 available to user programs, making the address space there 794 tighter. Selecting anything other than the default 3G/1G split 795 will also likely make your kernel incompatible with binary-only 796 kernel modules. 797 798 If you are not absolutely sure what you are doing, leave this 799 option alone! 800 801 config VMSPLIT_3G 802 bool "3G/1G user/kernel split" 803 config VMSPLIT_3G_OPT 804 depends on !X86_PAE 805 bool "3G/1G user/kernel split (for full 1G low memory)" 806 config VMSPLIT_2G 807 bool "2G/2G user/kernel split" 808 config VMSPLIT_2G_OPT 809 depends on !X86_PAE 810 bool "2G/2G user/kernel split (for full 2G low memory)" 811 config VMSPLIT_1G 812 bool "1G/3G user/kernel split" 813endchoice 814 815config PAGE_OFFSET 816 hex 817 default 0xB0000000 if VMSPLIT_3G_OPT 818 default 0x80000000 if VMSPLIT_2G 819 default 0x78000000 if VMSPLIT_2G_OPT 820 default 0x40000000 if VMSPLIT_1G 821 default 0xC0000000 822 depends on X86_32 823 824config HIGHMEM 825 def_bool y 826 depends on X86_32 && (HIGHMEM64G || HIGHMEM4G) 827 828config X86_PAE 829 def_bool n 830 prompt "PAE (Physical Address Extension) Support" 831 depends on X86_32 && !HIGHMEM4G 832 select RESOURCES_64BIT 833 help 834 PAE is required for NX support, and furthermore enables 835 larger swapspace support for non-overcommit purposes. It 836 has the cost of more pagetable lookup overhead, and also 837 consumes more pagetable space per process. 838 839# Common NUMA Features 840config NUMA 841 bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" 842 depends on SMP 843 depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) && EXPERIMENTAL) 844 default n if X86_PC 845 default y if (X86_NUMAQ || X86_SUMMIT) 846 help 847 Enable NUMA (Non Uniform Memory Access) support. 848 The kernel will try to allocate memory used by a CPU on the 849 local memory controller of the CPU and add some more 850 NUMA awareness to the kernel. 851 852 For i386 this is currently highly experimental and should be only 853 used for kernel development. It might also cause boot failures. 854 For x86_64 this is recommended on all multiprocessor Opteron systems. 855 If the system is EM64T, you should say N unless your system is 856 EM64T NUMA. 857 858comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI" 859 depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI) 860 861config K8_NUMA 862 def_bool y 863 prompt "Old style AMD Opteron NUMA detection" 864 depends on X86_64 && NUMA && PCI 865 help 866 Enable K8 NUMA node topology detection. You should say Y here if 867 you have a multi processor AMD K8 system. This uses an old 868 method to read the NUMA configuration directly from the builtin 869 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA 870 instead, which also takes priority if both are compiled in. 871 872config X86_64_ACPI_NUMA 873 def_bool y 874 prompt "ACPI NUMA detection" 875 depends on X86_64 && NUMA && ACPI && PCI 876 select ACPI_NUMA 877 help 878 Enable ACPI SRAT based node topology detection. 879 880config NUMA_EMU 881 bool "NUMA emulation" 882 depends on X86_64 && NUMA 883 help 884 Enable NUMA emulation. A flat machine will be split 885 into virtual nodes when booted with "numa=fake=N", where N is the 886 number of nodes. This is only useful for debugging. 887 888config NODES_SHIFT 889 int 890 range 1 15 if X86_64 891 default "6" if X86_64 892 default "4" if X86_NUMAQ 893 default "3" 894 depends on NEED_MULTIPLE_NODES 895 896config HAVE_ARCH_BOOTMEM_NODE 897 def_bool y 898 depends on X86_32 && NUMA 899 900config ARCH_HAVE_MEMORY_PRESENT 901 def_bool y 902 depends on X86_32 && DISCONTIGMEM 903 904config NEED_NODE_MEMMAP_SIZE 905 def_bool y 906 depends on X86_32 && (DISCONTIGMEM || SPARSEMEM) 907 908config HAVE_ARCH_ALLOC_REMAP 909 def_bool y 910 depends on X86_32 && NUMA 911 912config ARCH_FLATMEM_ENABLE 913 def_bool y 914 depends on X86_32 && ARCH_SELECT_MEMORY_MODEL && X86_PC && !NUMA 915 916config ARCH_DISCONTIGMEM_ENABLE 917 def_bool y 918 depends on NUMA && X86_32 919 920config ARCH_DISCONTIGMEM_DEFAULT 921 def_bool y 922 depends on NUMA && X86_32 923 924config ARCH_SPARSEMEM_DEFAULT 925 def_bool y 926 depends on X86_64 927 928config ARCH_SPARSEMEM_ENABLE 929 def_bool y 930 depends on X86_64 || NUMA || (EXPERIMENTAL && X86_PC) 931 select SPARSEMEM_STATIC if X86_32 932 select SPARSEMEM_VMEMMAP_ENABLE if X86_64 933 934config ARCH_SELECT_MEMORY_MODEL 935 def_bool y 936 depends on ARCH_SPARSEMEM_ENABLE 937 938config ARCH_MEMORY_PROBE 939 def_bool X86_64 940 depends on MEMORY_HOTPLUG 941 942source "mm/Kconfig" 943 944config HIGHPTE 945 bool "Allocate 3rd-level pagetables from highmem" 946 depends on X86_32 && (HIGHMEM4G || HIGHMEM64G) 947 help 948 The VM uses one page table entry for each page of physical memory. 949 For systems with a lot of RAM, this can be wasteful of precious 950 low memory. Setting this option will put user-space page table 951 entries in high memory. 952 953config MATH_EMULATION 954 bool 955 prompt "Math emulation" if X86_32 956 ---help--- 957 Linux can emulate a math coprocessor (used for floating point 958 operations) if you don't have one. 486DX and Pentium processors have 959 a math coprocessor built in, 486SX and 386 do not, unless you added 960 a 487DX or 387, respectively. (The messages during boot time can 961 give you some hints here ["man dmesg"].) Everyone needs either a 962 coprocessor or this emulation. 963 964 If you don't have a math coprocessor, you need to say Y here; if you 965 say Y here even though you have a coprocessor, the coprocessor will 966 be used nevertheless. (This behavior can be changed with the kernel 967 command line option "no387", which comes handy if your coprocessor 968 is broken. Try "man bootparam" or see the documentation of your boot 969 loader (lilo or loadlin) about how to pass options to the kernel at 970 boot time.) This means that it is a good idea to say Y here if you 971 intend to use this kernel on different machines. 972 973 More information about the internals of the Linux math coprocessor 974 emulation can be found in <file:arch/x86/math-emu/README>. 975 976 If you are not sure, say Y; apart from resulting in a 66 KB bigger 977 kernel, it won't hurt. 978 979config MTRR 980 bool "MTRR (Memory Type Range Register) support" 981 ---help--- 982 On Intel P6 family processors (Pentium Pro, Pentium II and later) 983 the Memory Type Range Registers (MTRRs) may be used to control 984 processor access to memory ranges. This is most useful if you have 985 a video (VGA) card on a PCI or AGP bus. Enabling write-combining 986 allows bus write transfers to be combined into a larger transfer 987 before bursting over the PCI/AGP bus. This can increase performance 988 of image write operations 2.5 times or more. Saying Y here creates a 989 /proc/mtrr file which may be used to manipulate your processor's 990 MTRRs. Typically the X server should use this. 991 992 This code has a reasonably generic interface so that similar 993 control registers on other processors can be easily supported 994 as well: 995 996 The Cyrix 6x86, 6x86MX and M II processors have Address Range 997 Registers (ARRs) which provide a similar functionality to MTRRs. For 998 these, the ARRs are used to emulate the MTRRs. 999 The AMD K6-2 (stepping 8 and above) and K6-3 processors have two 1000 MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing 1001 write-combining. All of these processors are supported by this code 1002 and it makes sense to say Y here if you have one of them. 1003 1004 Saying Y here also fixes a problem with buggy SMP BIOSes which only 1005 set the MTRRs for the boot CPU and not for the secondary CPUs. This 1006 can lead to all sorts of problems, so it's good to say Y here. 1007 1008 You can safely say Y even if your machine doesn't have MTRRs, you'll 1009 just add about 9 KB to your kernel. 1010 1011 See <file:Documentation/mtrr.txt> for more information. 1012 1013config EFI 1014 def_bool n 1015 prompt "EFI runtime service support" 1016 depends on ACPI 1017 ---help--- 1018 This enables the kernel to use EFI runtime services that are 1019 available (such as the EFI variable services). 1020 1021 This option is only useful on systems that have EFI firmware. 1022 In addition, you should use the latest ELILO loader available 1023 at <http://elilo.sourceforge.net> in order to take advantage 1024 of EFI runtime services. However, even with this option, the 1025 resultant kernel should continue to boot on existing non-EFI 1026 platforms. 1027 1028config IRQBALANCE 1029 def_bool y 1030 prompt "Enable kernel irq balancing" 1031 depends on X86_32 && SMP && X86_IO_APIC 1032 help 1033 The default yes will allow the kernel to do irq load balancing. 1034 Saying no will keep the kernel from doing irq load balancing. 1035 1036config SECCOMP 1037 def_bool y 1038 prompt "Enable seccomp to safely compute untrusted bytecode" 1039 depends on PROC_FS 1040 help 1041 This kernel feature is useful for number crunching applications 1042 that may need to compute untrusted bytecode during their 1043 execution. By using pipes or other transports made available to 1044 the process as file descriptors supporting the read/write 1045 syscalls, it's possible to isolate those applications in 1046 their own address space using seccomp. Once seccomp is 1047 enabled via /proc/<pid>/seccomp, it cannot be disabled 1048 and the task is only allowed to execute a few safe syscalls 1049 defined by each seccomp mode. 1050 1051 If unsure, say Y. Only embedded should say N here. 1052 1053config CC_STACKPROTECTOR 1054 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" 1055 depends on X86_64 && EXPERIMENTAL && BROKEN 1056 help 1057 This option turns on the -fstack-protector GCC feature. This 1058 feature puts, at the beginning of critical functions, a canary 1059 value on the stack just before the return address, and validates 1060 the value just before actually returning. Stack based buffer 1061 overflows (that need to overwrite this return address) now also 1062 overwrite the canary, which gets detected and the attack is then 1063 neutralized via a kernel panic. 1064 1065 This feature requires gcc version 4.2 or above, or a distribution 1066 gcc with the feature backported. Older versions are automatically 1067 detected and for those versions, this configuration option is ignored. 1068 1069config CC_STACKPROTECTOR_ALL 1070 bool "Use stack-protector for all functions" 1071 depends on CC_STACKPROTECTOR 1072 help 1073 Normally, GCC only inserts the canary value protection for 1074 functions that use large-ish on-stack buffers. By enabling 1075 this option, GCC will be asked to do this for ALL functions. 1076 1077source kernel/Kconfig.hz 1078 1079config KEXEC 1080 bool "kexec system call" 1081 help 1082 kexec is a system call that implements the ability to shutdown your 1083 current kernel, and to start another kernel. It is like a reboot 1084 but it is independent of the system firmware. And like a reboot 1085 you can start any kernel with it, not just Linux. 1086 1087 The name comes from the similarity to the exec system call. 1088 1089 It is an ongoing process to be certain the hardware in a machine 1090 is properly shutdown, so do not be surprised if this code does not 1091 initially work for you. It may help to enable device hotplugging 1092 support. As of this writing the exact hardware interface is 1093 strongly in flux, so no good recommendation can be made. 1094 1095config CRASH_DUMP 1096 bool "kernel crash dumps (EXPERIMENTAL)" 1097 depends on EXPERIMENTAL 1098 depends on X86_64 || (X86_32 && HIGHMEM) 1099 help 1100 Generate crash dump after being started by kexec. 1101 This should be normally only set in special crash dump kernels 1102 which are loaded in the main kernel with kexec-tools into 1103 a specially reserved region and then later executed after 1104 a crash by kdump/kexec. The crash dump kernel must be compiled 1105 to a memory address not used by the main kernel or BIOS using 1106 PHYSICAL_START, or it must be built as a relocatable image 1107 (CONFIG_RELOCATABLE=y). 1108 For more details see Documentation/kdump/kdump.txt 1109 1110config PHYSICAL_START 1111 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) 1112 default "0x1000000" if X86_NUMAQ 1113 default "0x200000" if X86_64 1114 default "0x100000" 1115 help 1116 This gives the physical address where the kernel is loaded. 1117 1118 If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then 1119 bzImage will decompress itself to above physical address and 1120 run from there. Otherwise, bzImage will run from the address where 1121 it has been loaded by the boot loader and will ignore above physical 1122 address. 1123 1124 In normal kdump cases one does not have to set/change this option 1125 as now bzImage can be compiled as a completely relocatable image 1126 (CONFIG_RELOCATABLE=y) and be used to load and run from a different 1127 address. This option is mainly useful for the folks who don't want 1128 to use a bzImage for capturing the crash dump and want to use a 1129 vmlinux instead. vmlinux is not relocatable hence a kernel needs 1130 to be specifically compiled to run from a specific memory area 1131 (normally a reserved region) and this option comes handy. 1132 1133 So if you are using bzImage for capturing the crash dump, leave 1134 the value here unchanged to 0x100000 and set CONFIG_RELOCATABLE=y. 1135 Otherwise if you plan to use vmlinux for capturing the crash dump 1136 change this value to start of the reserved region (Typically 16MB 1137 0x1000000). In other words, it can be set based on the "X" value as 1138 specified in the "crashkernel=YM@XM" command line boot parameter 1139 passed to the panic-ed kernel. Typically this parameter is set as 1140 crashkernel=64M@16M. Please take a look at 1141 Documentation/kdump/kdump.txt for more details about crash dumps. 1142 1143 Usage of bzImage for capturing the crash dump is recommended as 1144 one does not have to build two kernels. Same kernel can be used 1145 as production kernel and capture kernel. Above option should have 1146 gone away after relocatable bzImage support is introduced. But it 1147 is present because there are users out there who continue to use 1148 vmlinux for dump capture. This option should go away down the 1149 line. 1150 1151 Don't change this unless you know what you are doing. 1152 1153config RELOCATABLE 1154 bool "Build a relocatable kernel (EXPERIMENTAL)" 1155 depends on EXPERIMENTAL 1156 help 1157 This builds a kernel image that retains relocation information 1158 so it can be loaded someplace besides the default 1MB. 1159 The relocations tend to make the kernel binary about 10% larger, 1160 but are discarded at runtime. 1161 1162 One use is for the kexec on panic case where the recovery kernel 1163 must live at a different physical address than the primary 1164 kernel. 1165 1166 Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address 1167 it has been loaded at and the compile time physical address 1168 (CONFIG_PHYSICAL_START) is ignored. 1169 1170config PHYSICAL_ALIGN 1171 hex 1172 prompt "Alignment value to which kernel should be aligned" if X86_32 1173 default "0x100000" if X86_32 1174 default "0x200000" if X86_64 1175 range 0x2000 0x400000 1176 help 1177 This value puts the alignment restrictions on physical address 1178 where kernel is loaded and run from. Kernel is compiled for an 1179 address which meets above alignment restriction. 1180 1181 If bootloader loads the kernel at a non-aligned address and 1182 CONFIG_RELOCATABLE is set, kernel will move itself to nearest 1183 address aligned to above value and run from there. 1184 1185 If bootloader loads the kernel at a non-aligned address and 1186 CONFIG_RELOCATABLE is not set, kernel will ignore the run time 1187 load address and decompress itself to the address it has been 1188 compiled for and run from there. The address for which kernel is 1189 compiled already meets above alignment restrictions. Hence the 1190 end result is that kernel runs from a physical address meeting 1191 above alignment restrictions. 1192 1193 Don't change this unless you know what you are doing. 1194 1195config HOTPLUG_CPU 1196 bool "Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)" 1197 depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER 1198 ---help--- 1199 Say Y here to experiment with turning CPUs off and on, and to 1200 enable suspend on SMP systems. CPUs can be controlled through 1201 /sys/devices/system/cpu. 1202 Say N if you want to disable CPU hotplug and don't need to 1203 suspend. 1204 1205config COMPAT_VDSO 1206 def_bool y 1207 prompt "Compat VDSO support" 1208 depends on X86_32 || IA32_EMULATION 1209 help 1210 Map the 32-bit VDSO to the predictable old-style address too. 1211 ---help--- 1212 Say N here if you are running a sufficiently recent glibc 1213 version (2.3.3 or later), to remove the high-mapped 1214 VDSO mapping and to exclusively use the randomized VDSO. 1215 1216 If unsure, say Y. 1217 1218endmenu 1219 1220config ARCH_ENABLE_MEMORY_HOTPLUG 1221 def_bool y 1222 depends on X86_64 || (X86_32 && HIGHMEM) 1223 1224config HAVE_ARCH_EARLY_PFN_TO_NID 1225 def_bool X86_64 1226 depends on NUMA 1227 1228menu "Power management options" 1229 depends on !X86_VOYAGER 1230 1231config ARCH_HIBERNATION_HEADER 1232 def_bool y 1233 depends on X86_64 && HIBERNATION 1234 1235source "kernel/power/Kconfig" 1236 1237source "drivers/acpi/Kconfig" 1238 1239config X86_APM_BOOT 1240 bool 1241 default y 1242 depends on APM || APM_MODULE 1243 1244menuconfig APM 1245 tristate "APM (Advanced Power Management) BIOS support" 1246 depends on X86_32 && PM_SLEEP && !X86_VISWS 1247 ---help--- 1248 APM is a BIOS specification for saving power using several different 1249 techniques. This is mostly useful for battery powered laptops with 1250 APM compliant BIOSes. If you say Y here, the system time will be 1251 reset after a RESUME operation, the /proc/apm device will provide 1252 battery status information, and user-space programs will receive 1253 notification of APM "events" (e.g. battery status change). 1254 1255 If you select "Y" here, you can disable actual use of the APM 1256 BIOS by passing the "apm=off" option to the kernel at boot time. 1257 1258 Note that the APM support is almost completely disabled for 1259 machines with more than one CPU. 1260 1261 In order to use APM, you will need supporting software. For location 1262 and more information, read <file:Documentation/power/pm.txt> and the 1263 Battery Powered Linux mini-HOWTO, available from 1264 <http://www.tldp.org/docs.html#howto>. 1265 1266 This driver does not spin down disk drives (see the hdparm(8) 1267 manpage ("man 8 hdparm") for that), and it doesn't turn off 1268 VESA-compliant "green" monitors. 1269 1270 This driver does not support the TI 4000M TravelMate and the ACER 1271 486/DX4/75 because they don't have compliant BIOSes. Many "green" 1272 desktop machines also don't have compliant BIOSes, and this driver 1273 may cause those machines to panic during the boot phase. 1274 1275 Generally, if you don't have a battery in your machine, there isn't 1276 much point in using this driver and you should say N. If you get 1277 random kernel OOPSes or reboots that don't seem to be related to 1278 anything, try disabling/enabling this option (or disabling/enabling 1279 APM in your BIOS). 1280 1281 Some other things you should try when experiencing seemingly random, 1282 "weird" problems: 1283 1284 1) make sure that you have enough swap space and that it is 1285 enabled. 1286 2) pass the "no-hlt" option to the kernel 1287 3) switch on floating point emulation in the kernel and pass 1288 the "no387" option to the kernel 1289 4) pass the "floppy=nodma" option to the kernel 1290 5) pass the "mem=4M" option to the kernel (thereby disabling 1291 all but the first 4 MB of RAM) 1292 6) make sure that the CPU is not over clocked. 1293 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/> 1294 8) disable the cache from your BIOS settings 1295 9) install a fan for the video card or exchange video RAM 1296 10) install a better fan for the CPU 1297 11) exchange RAM chips 1298 12) exchange the motherboard. 1299 1300 To compile this driver as a module, choose M here: the 1301 module will be called apm. 1302 1303if APM 1304 1305config APM_IGNORE_USER_SUSPEND 1306 bool "Ignore USER SUSPEND" 1307 help 1308 This option will ignore USER SUSPEND requests. On machines with a 1309 compliant APM BIOS, you want to say N. However, on the NEC Versa M 1310 series notebooks, it is necessary to say Y because of a BIOS bug. 1311 1312config APM_DO_ENABLE 1313 bool "Enable PM at boot time" 1314 ---help--- 1315 Enable APM features at boot time. From page 36 of the APM BIOS 1316 specification: "When disabled, the APM BIOS does not automatically 1317 power manage devices, enter the Standby State, enter the Suspend 1318 State, or take power saving steps in response to CPU Idle calls." 1319 This driver will make CPU Idle calls when Linux is idle (unless this 1320 feature is turned off -- see "Do CPU IDLE calls", below). This 1321 should always save battery power, but more complicated APM features 1322 will be dependent on your BIOS implementation. You may need to turn 1323 this option off if your computer hangs at boot time when using APM 1324 support, or if it beeps continuously instead of suspending. Turn 1325 this off if you have a NEC UltraLite Versa 33/C or a Toshiba 1326 T400CDT. This is off by default since most machines do fine without 1327 this feature. 1328 1329config APM_CPU_IDLE 1330 bool "Make CPU Idle calls when idle" 1331 help 1332 Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop. 1333 On some machines, this can activate improved power savings, such as 1334 a slowed CPU clock rate, when the machine is idle. These idle calls 1335 are made after the idle loop has run for some length of time (e.g., 1336 333 mS). On some machines, this will cause a hang at boot time or 1337 whenever the CPU becomes idle. (On machines with more than one CPU, 1338 this option does nothing.) 1339 1340config APM_DISPLAY_BLANK 1341 bool "Enable console blanking using APM" 1342 help 1343 Enable console blanking using the APM. Some laptops can use this to 1344 turn off the LCD backlight when the screen blanker of the Linux 1345 virtual console blanks the screen. Note that this is only used by 1346 the virtual console screen blanker, and won't turn off the backlight 1347 when using the X Window system. This also doesn't have anything to 1348 do with your VESA-compliant power-saving monitor. Further, this 1349 option doesn't work for all laptops -- it might not turn off your 1350 backlight at all, or it might print a lot of errors to the console, 1351 especially if you are using gpm. 1352 1353config APM_ALLOW_INTS 1354 bool "Allow interrupts during APM BIOS calls" 1355 help 1356 Normally we disable external interrupts while we are making calls to 1357 the APM BIOS as a measure to lessen the effects of a badly behaving 1358 BIOS implementation. The BIOS should reenable interrupts if it 1359 needs to. Unfortunately, some BIOSes do not -- especially those in 1360 many of the newer IBM Thinkpads. If you experience hangs when you 1361 suspend, try setting this to Y. Otherwise, say N. 1362 1363config APM_REAL_MODE_POWER_OFF 1364 bool "Use real mode APM BIOS call to power off" 1365 help 1366 Use real mode APM BIOS calls to switch off the computer. This is 1367 a work-around for a number of buggy BIOSes. Switch this option on if 1368 your computer crashes instead of powering off properly. 1369 1370endif # APM 1371 1372source "arch/x86/kernel/cpu/cpufreq/Kconfig" 1373 1374source "drivers/cpuidle/Kconfig" 1375 1376endmenu 1377 1378 1379menu "Bus options (PCI etc.)" 1380 1381config PCI 1382 bool "PCI support" if !X86_VISWS 1383 depends on !X86_VOYAGER 1384 default y 1385 select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC) 1386 help 1387 Find out whether you have a PCI motherboard. PCI is the name of a 1388 bus system, i.e. the way the CPU talks to the other stuff inside 1389 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or 1390 VESA. If you have PCI, say Y, otherwise N. 1391 1392choice 1393 prompt "PCI access mode" 1394 depends on X86_32 && PCI && !X86_VISWS 1395 default PCI_GOANY 1396 ---help--- 1397 On PCI systems, the BIOS can be used to detect the PCI devices and 1398 determine their configuration. However, some old PCI motherboards 1399 have BIOS bugs and may crash if this is done. Also, some embedded 1400 PCI-based systems don't have any BIOS at all. Linux can also try to 1401 detect the PCI hardware directly without using the BIOS. 1402 1403 With this option, you can specify how Linux should detect the 1404 PCI devices. If you choose "BIOS", the BIOS will be used, 1405 if you choose "Direct", the BIOS won't be used, and if you 1406 choose "MMConfig", then PCI Express MMCONFIG will be used. 1407 If you choose "Any", the kernel will try MMCONFIG, then the 1408 direct access method and falls back to the BIOS if that doesn't 1409 work. If unsure, go with the default, which is "Any". 1410 1411config PCI_GOBIOS 1412 bool "BIOS" 1413 1414config PCI_GOMMCONFIG 1415 bool "MMConfig" 1416 1417config PCI_GODIRECT 1418 bool "Direct" 1419 1420config PCI_GOANY 1421 bool "Any" 1422 1423endchoice 1424 1425config PCI_BIOS 1426 def_bool y 1427 depends on X86_32 && !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY) 1428 1429# x86-64 doesn't support PCI BIOS access from long mode so always go direct. 1430config PCI_DIRECT 1431 def_bool y 1432 depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY) || X86_VISWS) 1433 1434config PCI_MMCONFIG 1435 def_bool y 1436 depends on X86_32 && PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY) 1437 1438config PCI_DOMAINS 1439 def_bool y 1440 depends on PCI 1441 1442config PCI_MMCONFIG 1443 bool "Support mmconfig PCI config space access" 1444 depends on X86_64 && PCI && ACPI 1445 1446config DMAR 1447 bool "Support for DMA Remapping Devices (EXPERIMENTAL)" 1448 depends on X86_64 && PCI_MSI && ACPI && EXPERIMENTAL 1449 help 1450 DMA remapping (DMAR) devices support enables independent address 1451 translations for Direct Memory Access (DMA) from devices. 1452 These DMA remapping devices are reported via ACPI tables 1453 and include PCI device scope covered by these DMA 1454 remapping devices. 1455 1456config DMAR_GFX_WA 1457 def_bool y 1458 prompt "Support for Graphics workaround" 1459 depends on DMAR 1460 help 1461 Current Graphics drivers tend to use physical address 1462 for DMA and avoid using DMA APIs. Setting this config 1463 option permits the IOMMU driver to set a unity map for 1464 all the OS-visible memory. Hence the driver can continue 1465 to use physical addresses for DMA. 1466 1467config DMAR_FLOPPY_WA 1468 def_bool y 1469 depends on DMAR 1470 help 1471 Floppy disk drivers are know to bypass DMA API calls 1472 thereby failing to work when IOMMU is enabled. This 1473 workaround will setup a 1:1 mapping for the first 1474 16M to make floppy (an ISA device) work. 1475 1476source "drivers/pci/pcie/Kconfig" 1477 1478source "drivers/pci/Kconfig" 1479 1480# x86_64 have no ISA slots, but do have ISA-style DMA. 1481config ISA_DMA_API 1482 def_bool y 1483 1484if X86_32 1485 1486config ISA 1487 bool "ISA support" 1488 depends on !(X86_VOYAGER || X86_VISWS) 1489 help 1490 Find out whether you have ISA slots on your motherboard. ISA is the 1491 name of a bus system, i.e. the way the CPU talks to the other stuff 1492 inside your box. Other bus systems are PCI, EISA, MicroChannel 1493 (MCA) or VESA. ISA is an older system, now being displaced by PCI; 1494 newer boards don't support it. If you have ISA, say Y, otherwise N. 1495 1496config EISA 1497 bool "EISA support" 1498 depends on ISA 1499 ---help--- 1500 The Extended Industry Standard Architecture (EISA) bus was 1501 developed as an open alternative to the IBM MicroChannel bus. 1502 1503 The EISA bus provided some of the features of the IBM MicroChannel 1504 bus while maintaining backward compatibility with cards made for 1505 the older ISA bus. The EISA bus saw limited use between 1988 and 1506 1995 when it was made obsolete by the PCI bus. 1507 1508 Say Y here if you are building a kernel for an EISA-based machine. 1509 1510 Otherwise, say N. 1511 1512source "drivers/eisa/Kconfig" 1513 1514config MCA 1515 bool "MCA support" if !(X86_VISWS || X86_VOYAGER) 1516 default y if X86_VOYAGER 1517 help 1518 MicroChannel Architecture is found in some IBM PS/2 machines and 1519 laptops. It is a bus system similar to PCI or ISA. See 1520 <file:Documentation/mca.txt> (and especially the web page given 1521 there) before attempting to build an MCA bus kernel. 1522 1523source "drivers/mca/Kconfig" 1524 1525config SCx200 1526 tristate "NatSemi SCx200 support" 1527 depends on !X86_VOYAGER 1528 help 1529 This provides basic support for National Semiconductor's 1530 (now AMD's) Geode processors. The driver probes for the 1531 PCI-IDs of several on-chip devices, so its a good dependency 1532 for other scx200_* drivers. 1533 1534 If compiled as a module, the driver is named scx200. 1535 1536config SCx200HR_TIMER 1537 tristate "NatSemi SCx200 27MHz High-Resolution Timer Support" 1538 depends on SCx200 && GENERIC_TIME 1539 default y 1540 help 1541 This driver provides a clocksource built upon the on-chip 1542 27MHz high-resolution timer. Its also a workaround for 1543 NSC Geode SC-1100's buggy TSC, which loses time when the 1544 processor goes idle (as is done by the scheduler). The 1545 other workaround is idle=poll boot option. 1546 1547config GEODE_MFGPT_TIMER 1548 def_bool y 1549 prompt "Geode Multi-Function General Purpose Timer (MFGPT) events" 1550 depends on MGEODE_LX && GENERIC_TIME && GENERIC_CLOCKEVENTS 1551 help 1552 This driver provides a clock event source based on the MFGPT 1553 timer(s) in the CS5535 and CS5536 companion chip for the geode. 1554 MFGPTs have a better resolution and max interval than the 1555 generic PIT, and are suitable for use as high-res timers. 1556 1557endif # X86_32 1558 1559config K8_NB 1560 def_bool y 1561 depends on AGP_AMD64 || (X86_64 && (GART_IOMMU || (PCI && NUMA))) 1562 1563source "drivers/pcmcia/Kconfig" 1564 1565source "drivers/pci/hotplug/Kconfig" 1566 1567endmenu 1568 1569 1570menu "Executable file formats / Emulations" 1571 1572source "fs/Kconfig.binfmt" 1573 1574config IA32_EMULATION 1575 bool "IA32 Emulation" 1576 depends on X86_64 1577 select COMPAT_BINFMT_ELF 1578 help 1579 Include code to run 32-bit programs under a 64-bit kernel. You should 1580 likely turn this on, unless you're 100% sure that you don't have any 1581 32-bit programs left. 1582 1583config IA32_AOUT 1584 tristate "IA32 a.out support" 1585 depends on IA32_EMULATION && ARCH_SUPPORTS_AOUT 1586 help 1587 Support old a.out binaries in the 32bit emulation. 1588 1589config COMPAT 1590 def_bool y 1591 depends on IA32_EMULATION 1592 1593config COMPAT_FOR_U64_ALIGNMENT 1594 def_bool COMPAT 1595 depends on X86_64 1596 1597config SYSVIPC_COMPAT 1598 def_bool y 1599 depends on X86_64 && COMPAT && SYSVIPC 1600 1601endmenu 1602 1603 1604source "net/Kconfig" 1605 1606source "drivers/Kconfig" 1607 1608source "drivers/firmware/Kconfig" 1609 1610source "fs/Kconfig" 1611 1612source "arch/x86/Kconfig.debug" 1613 1614source "security/Kconfig" 1615 1616source "crypto/Kconfig" 1617 1618source "arch/x86/kvm/Kconfig" 1619 1620source "lib/Kconfig" 1621