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