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