at v2.6.21 760 lines 21 kB view raw
1# 2# For a description of the syntax of this configuration file, 3# see Documentation/kbuild/kconfig-language.txt. 4# 5# Note: ISA is disabled and will hopefully never be enabled. 6# If you managed to buy an ISA x86-64 box you'll have to fix all the 7# ISA drivers you need yourself. 8# 9 10mainmenu "Linux Kernel Configuration" 11 12config X86_64 13 bool 14 default y 15 help 16 Port to the x86-64 architecture. x86-64 is a 64-bit extension to the 17 classical 32-bit x86 architecture. For details see 18 <http://www.x86-64.org/>. 19 20config 64BIT 21 def_bool y 22 23config X86 24 bool 25 default y 26 27config GENERIC_TIME 28 bool 29 default y 30 31config GENERIC_TIME_VSYSCALL 32 bool 33 default y 34 35config ZONE_DMA32 36 bool 37 default y 38 39config LOCKDEP_SUPPORT 40 bool 41 default y 42 43config STACKTRACE_SUPPORT 44 bool 45 default y 46 47config SEMAPHORE_SLEEPERS 48 bool 49 default y 50 51config MMU 52 bool 53 default y 54 55config ZONE_DMA 56 bool 57 default y 58 59config ISA 60 bool 61 62config SBUS 63 bool 64 65config RWSEM_GENERIC_SPINLOCK 66 bool 67 default y 68 69config RWSEM_XCHGADD_ALGORITHM 70 bool 71 72config GENERIC_HWEIGHT 73 bool 74 default y 75 76config GENERIC_CALIBRATE_DELAY 77 bool 78 default y 79 80config X86_CMPXCHG 81 bool 82 default y 83 84config EARLY_PRINTK 85 bool 86 default y 87 88config GENERIC_ISA_DMA 89 bool 90 default y 91 92config GENERIC_IOMAP 93 bool 94 default y 95 96config ARCH_MAY_HAVE_PC_FDC 97 bool 98 default y 99 100config ARCH_POPULATES_NODE_MAP 101 def_bool y 102 103config DMI 104 bool 105 default y 106 107config AUDIT_ARCH 108 bool 109 default y 110 111config GENERIC_BUG 112 bool 113 default y 114 depends on BUG 115 116config ARCH_HAS_ILOG2_U32 117 bool 118 default n 119 120config ARCH_HAS_ILOG2_U64 121 bool 122 default n 123 124source "init/Kconfig" 125 126 127menu "Processor type and features" 128 129choice 130 prompt "Subarchitecture Type" 131 default X86_PC 132 133config X86_PC 134 bool "PC-compatible" 135 help 136 Choose this option if your computer is a standard PC or compatible. 137 138config X86_VSMP 139 bool "Support for ScaleMP vSMP" 140 depends on PCI 141 help 142 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is 143 supposed to run on these EM64T-based machines. Only choose this option 144 if you have one of these machines. 145 146endchoice 147 148choice 149 prompt "Processor family" 150 default GENERIC_CPU 151 152config MK8 153 bool "AMD-Opteron/Athlon64" 154 help 155 Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs. 156 157config MPSC 158 bool "Intel P4 / older Netburst based Xeon" 159 help 160 Optimize for Intel Pentium 4 and older Nocona/Dempsey Xeon CPUs 161 with Intel Extended Memory 64 Technology(EM64T). For details see 162 <http://www.intel.com/technology/64bitextensions/>. 163 Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the 164 Netburst core and shouldn't use this option. You can distinguish them 165 using the cpu family field 166 in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one 167 (this rule only applies to systems that support EM64T) 168 169config MCORE2 170 bool "Intel Core2 / newer Xeon" 171 help 172 Optimize for Intel Core2 and newer Xeons (51xx) 173 You can distinguish the newer Xeons from the older ones using 174 the cpu family field in /proc/cpuinfo. 15 is an older Xeon 175 (use CONFIG_MPSC then), 6 is a newer one. This rule only 176 applies to CPUs that support EM64T. 177 178config GENERIC_CPU 179 bool "Generic-x86-64" 180 help 181 Generic x86-64 CPU. 182 Run equally well on all x86-64 CPUs. 183 184endchoice 185 186# 187# Define implied options from the CPU selection here 188# 189config X86_L1_CACHE_BYTES 190 int 191 default "128" if GENERIC_CPU || MPSC 192 default "64" if MK8 || MCORE2 193 194config X86_L1_CACHE_SHIFT 195 int 196 default "7" if GENERIC_CPU || MPSC 197 default "6" if MK8 || MCORE2 198 199config X86_INTERNODE_CACHE_BYTES 200 int 201 default "4096" if X86_VSMP 202 default X86_L1_CACHE_BYTES if !X86_VSMP 203 204config X86_TSC 205 bool 206 default y 207 208config X86_GOOD_APIC 209 bool 210 default y 211 212config MICROCODE 213 tristate "/dev/cpu/microcode - Intel CPU microcode support" 214 select FW_LOADER 215 ---help--- 216 If you say Y here the 'File systems' section, you will be 217 able to update the microcode on Intel processors. You will 218 obviously need the actual microcode binary data itself which is 219 not shipped with the Linux kernel. 220 221 For latest news and information on obtaining all the required 222 ingredients for this driver, check: 223 <http://www.urbanmyth.org/microcode/>. 224 225 To compile this driver as a module, choose M here: the 226 module will be called microcode. 227 If you use modprobe or kmod you may also want to add the line 228 'alias char-major-10-184 microcode' to your /etc/modules.conf file. 229 230config MICROCODE_OLD_INTERFACE 231 bool 232 depends on MICROCODE 233 default y 234 235config X86_MSR 236 tristate "/dev/cpu/*/msr - Model-specific register support" 237 help 238 This device gives privileged processes access to the x86 239 Model-Specific Registers (MSRs). It is a character device with 240 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr. 241 MSR accesses are directed to a specific CPU on multi-processor 242 systems. 243 244config X86_CPUID 245 tristate "/dev/cpu/*/cpuid - CPU information support" 246 help 247 This device gives processes access to the x86 CPUID instruction to 248 be executed on a specific processor. It is a character device 249 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to 250 /dev/cpu/31/cpuid. 251 252config X86_HT 253 bool 254 depends on SMP && !MK8 255 default y 256 257config MATH_EMULATION 258 bool 259 260config MCA 261 bool 262 263config EISA 264 bool 265 266config X86_IO_APIC 267 bool 268 default y 269 270config X86_LOCAL_APIC 271 bool 272 default y 273 274config MTRR 275 bool "MTRR (Memory Type Range Register) support" 276 ---help--- 277 On Intel P6 family processors (Pentium Pro, Pentium II and later) 278 the Memory Type Range Registers (MTRRs) may be used to control 279 processor access to memory ranges. This is most useful if you have 280 a video (VGA) card on a PCI or AGP bus. Enabling write-combining 281 allows bus write transfers to be combined into a larger transfer 282 before bursting over the PCI/AGP bus. This can increase performance 283 of image write operations 2.5 times or more. Saying Y here creates a 284 /proc/mtrr file which may be used to manipulate your processor's 285 MTRRs. Typically the X server should use this. 286 287 This code has a reasonably generic interface so that similar 288 control registers on other processors can be easily supported 289 as well. 290 291 Saying Y here also fixes a problem with buggy SMP BIOSes which only 292 set the MTRRs for the boot CPU and not for the secondary CPUs. This 293 can lead to all sorts of problems, so it's good to say Y here. 294 295 Just say Y here, all x86-64 machines support MTRRs. 296 297 See <file:Documentation/mtrr.txt> for more information. 298 299config SMP 300 bool "Symmetric multi-processing support" 301 ---help--- 302 This enables support for systems with more than one CPU. If you have 303 a system with only one CPU, like most personal computers, say N. If 304 you have a system with more than one CPU, say Y. 305 306 If you say N here, the kernel will run on single and multiprocessor 307 machines, but will use only one CPU of a multiprocessor machine. If 308 you say Y here, the kernel will run on many, but not all, 309 singleprocessor machines. On a singleprocessor machine, the kernel 310 will run faster if you say N here. 311 312 If you don't know what to do here, say N. 313 314config SCHED_SMT 315 bool "SMT (Hyperthreading) scheduler support" 316 depends on SMP 317 default n 318 help 319 SMT scheduler support improves the CPU scheduler's decision making 320 when dealing with Intel Pentium 4 chips with HyperThreading at a 321 cost of slightly increased overhead in some places. If unsure say 322 N here. 323 324config SCHED_MC 325 bool "Multi-core scheduler support" 326 depends on SMP 327 default y 328 help 329 Multi-core scheduler support improves the CPU scheduler's decision 330 making when dealing with multi-core CPU chips at a cost of slightly 331 increased overhead in some places. If unsure say N here. 332 333source "kernel/Kconfig.preempt" 334 335config NUMA 336 bool "Non Uniform Memory Access (NUMA) Support" 337 depends on SMP 338 help 339 Enable NUMA (Non Uniform Memory Access) support. The kernel 340 will try to allocate memory used by a CPU on the local memory 341 controller of the CPU and add some more NUMA awareness to the kernel. 342 This code is recommended on all multiprocessor Opteron systems. 343 If the system is EM64T, you should say N unless your system is EM64T 344 NUMA. 345 346config K8_NUMA 347 bool "Old style AMD Opteron NUMA detection" 348 depends on NUMA && PCI 349 default y 350 help 351 Enable K8 NUMA node topology detection. You should say Y here if 352 you have a multi processor AMD K8 system. This uses an old 353 method to read the NUMA configuration directly from the builtin 354 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA 355 instead, which also takes priority if both are compiled in. 356 357config NODES_SHIFT 358 int 359 default "6" 360 depends on NEED_MULTIPLE_NODES 361 362# Dummy CONFIG option to select ACPI_NUMA from drivers/acpi/Kconfig. 363 364config X86_64_ACPI_NUMA 365 bool "ACPI NUMA detection" 366 depends on NUMA 367 select ACPI 368 select PCI 369 select ACPI_NUMA 370 default y 371 help 372 Enable ACPI SRAT based node topology detection. 373 374config NUMA_EMU 375 bool "NUMA emulation" 376 depends on NUMA 377 help 378 Enable NUMA emulation. A flat machine will be split 379 into virtual nodes when booted with "numa=fake=N", where N is the 380 number of nodes. This is only useful for debugging. 381 382config ARCH_DISCONTIGMEM_ENABLE 383 bool 384 depends on NUMA 385 default y 386 387config ARCH_DISCONTIGMEM_DEFAULT 388 def_bool y 389 depends on NUMA 390 391config ARCH_SPARSEMEM_ENABLE 392 def_bool y 393 depends on (NUMA || EXPERIMENTAL) 394 395config ARCH_MEMORY_PROBE 396 def_bool y 397 depends on MEMORY_HOTPLUG 398 399config ARCH_FLATMEM_ENABLE 400 def_bool y 401 depends on !NUMA 402 403source "mm/Kconfig" 404 405config MEMORY_HOTPLUG_RESERVE 406 def_bool y 407 depends on (MEMORY_HOTPLUG && DISCONTIGMEM) 408 409config HAVE_ARCH_EARLY_PFN_TO_NID 410 def_bool y 411 depends on NUMA 412 413config OUT_OF_LINE_PFN_TO_PAGE 414 def_bool y 415 depends on DISCONTIGMEM 416 417config NR_CPUS 418 int "Maximum number of CPUs (2-256)" 419 range 2 255 420 depends on SMP 421 default "8" 422 help 423 This allows you to specify the maximum number of CPUs which this 424 kernel will support. Current maximum is 256 CPUs due to 425 APIC addressing limits. Less depending on the hardware. 426 427 This is purely to save memory - each supported CPU requires 428 memory in the static kernel configuration. 429 430config HOTPLUG_CPU 431 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" 432 depends on SMP && HOTPLUG && EXPERIMENTAL 433 help 434 Say Y here to experiment with turning CPUs off and on. CPUs 435 can be controlled through /sys/devices/system/cpu/cpu#. 436 Say N if you want to disable CPU hotplug. 437 438config ARCH_ENABLE_MEMORY_HOTPLUG 439 def_bool y 440 441config HPET_TIMER 442 bool 443 default y 444 help 445 Use the IA-PC HPET (High Precision Event Timer) to manage 446 time in preference to the PIT and RTC, if a HPET is 447 present. The HPET provides a stable time base on SMP 448 systems, unlike the TSC, but it is more expensive to access, 449 as it is off-chip. You can find the HPET spec at 450 <http://www.intel.com/hardwaredesign/hpetspec.htm>. 451 452config HPET_EMULATE_RTC 453 bool "Provide RTC interrupt" 454 depends on HPET_TIMER && RTC=y 455 456# Mark as embedded because too many people got it wrong. 457# The code disables itself when not needed. 458config IOMMU 459 bool "IOMMU support" if EMBEDDED 460 default y 461 select SWIOTLB 462 select AGP 463 depends on PCI 464 help 465 Support for full DMA access of devices with 32bit memory access only 466 on systems with more than 3GB. This is usually needed for USB, 467 sound, many IDE/SATA chipsets and some other devices. 468 Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART 469 based hardware IOMMU and a software bounce buffer based IOMMU used 470 on Intel systems and as fallback. 471 The code is only active when needed (enough memory and limited 472 device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified 473 too. 474 475config CALGARY_IOMMU 476 bool "IBM Calgary IOMMU support" 477 select SWIOTLB 478 depends on PCI && EXPERIMENTAL 479 help 480 Support for hardware IOMMUs in IBM's xSeries x366 and x460 481 systems. Needed to run systems with more than 3GB of memory 482 properly with 32-bit PCI devices that do not support DAC 483 (Double Address Cycle). Calgary also supports bus level 484 isolation, where all DMAs pass through the IOMMU. This 485 prevents them from going anywhere except their intended 486 destination. This catches hard-to-find kernel bugs and 487 mis-behaving drivers and devices that do not use the DMA-API 488 properly to set up their DMA buffers. The IOMMU can be 489 turned off at boot time with the iommu=off parameter. 490 Normally the kernel will make the right choice by itself. 491 If unsure, say Y. 492 493config CALGARY_IOMMU_ENABLED_BY_DEFAULT 494 bool "Should Calgary be enabled by default?" 495 default y 496 depends on CALGARY_IOMMU 497 help 498 Should Calgary be enabled by default? if you choose 'y', Calgary 499 will be used (if it exists). If you choose 'n', Calgary will not be 500 used even if it exists. If you choose 'n' and would like to use 501 Calgary anyway, pass 'iommu=calgary' on the kernel command line. 502 If unsure, say Y. 503 504# need this always selected by IOMMU for the VIA workaround 505config SWIOTLB 506 bool 507 help 508 Support for software bounce buffers used on x86-64 systems 509 which don't have a hardware IOMMU (e.g. the current generation 510 of Intel's x86-64 CPUs). Using this PCI devices which can only 511 access 32-bits of memory can be used on systems with more than 512 3 GB of memory. If unsure, say Y. 513 514config X86_MCE 515 bool "Machine check support" if EMBEDDED 516 default y 517 help 518 Include a machine check error handler to report hardware errors. 519 This version will require the mcelog utility to decode some 520 machine check error logs. See 521 ftp://ftp.x86-64.org/pub/linux/tools/mcelog 522 523config X86_MCE_INTEL 524 bool "Intel MCE features" 525 depends on X86_MCE && X86_LOCAL_APIC 526 default y 527 help 528 Additional support for intel specific MCE features such as 529 the thermal monitor. 530 531config X86_MCE_AMD 532 bool "AMD MCE features" 533 depends on X86_MCE && X86_LOCAL_APIC 534 default y 535 help 536 Additional support for AMD specific MCE features such as 537 the DRAM Error Threshold. 538 539config KEXEC 540 bool "kexec system call" 541 help 542 kexec is a system call that implements the ability to shutdown your 543 current kernel, and to start another kernel. It is like a reboot 544 but it is independent of the system firmware. And like a reboot 545 you can start any kernel with it, not just Linux. 546 547 The name comes from the similarity to the exec system call. 548 549 It is an ongoing process to be certain the hardware in a machine 550 is properly shutdown, so do not be surprised if this code does not 551 initially work for you. It may help to enable device hotplugging 552 support. As of this writing the exact hardware interface is 553 strongly in flux, so no good recommendation can be made. 554 555config CRASH_DUMP 556 bool "kernel crash dumps (EXPERIMENTAL)" 557 depends on EXPERIMENTAL 558 help 559 Generate crash dump after being started by kexec. 560 This should be normally only set in special crash dump kernels 561 which are loaded in the main kernel with kexec-tools into 562 a specially reserved region and then later executed after 563 a crash by kdump/kexec. The crash dump kernel must be compiled 564 to a memory address not used by the main kernel or BIOS using 565 PHYSICAL_START. 566 For more details see Documentation/kdump/kdump.txt 567 568config PHYSICAL_START 569 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) 570 default "0x1000000" if CRASH_DUMP 571 default "0x200000" 572 help 573 This gives the physical address where the kernel is loaded. Normally 574 for regular kernels this value is 0x200000 (2MB). But in the case 575 of kexec on panic the fail safe kernel needs to run at a different 576 address than the panic-ed kernel. This option is used to set the load 577 address for kernels used to capture crash dump on being kexec'ed 578 after panic. The default value for crash dump kernels is 579 0x1000000 (16MB). This can also be set based on the "X" value as 580 specified in the "crashkernel=YM@XM" command line boot parameter 581 passed to the panic-ed kernel. Typically this parameter is set as 582 crashkernel=64M@16M. Please take a look at 583 Documentation/kdump/kdump.txt for more details about crash dumps. 584 585 Don't change this unless you know what you are doing. 586 587config SECCOMP 588 bool "Enable seccomp to safely compute untrusted bytecode" 589 depends on PROC_FS 590 default y 591 help 592 This kernel feature is useful for number crunching applications 593 that may need to compute untrusted bytecode during their 594 execution. By using pipes or other transports made available to 595 the process as file descriptors supporting the read/write 596 syscalls, it's possible to isolate those applications in 597 their own address space using seccomp. Once seccomp is 598 enabled via /proc/<pid>/seccomp, it cannot be disabled 599 and the task is only allowed to execute a few safe syscalls 600 defined by each seccomp mode. 601 602 If unsure, say Y. Only embedded should say N here. 603 604config CC_STACKPROTECTOR 605 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" 606 depends on EXPERIMENTAL 607 help 608 This option turns on the -fstack-protector GCC feature. This 609 feature puts, at the beginning of critical functions, a canary 610 value on the stack just before the return address, and validates 611 the value just before actually returning. Stack based buffer 612 overflows (that need to overwrite this return address) now also 613 overwrite the canary, which gets detected and the attack is then 614 neutralized via a kernel panic. 615 616 This feature requires gcc version 4.2 or above, or a distribution 617 gcc with the feature backported. Older versions are automatically 618 detected and for those versions, this configuration option is ignored. 619 620config CC_STACKPROTECTOR_ALL 621 bool "Use stack-protector for all functions" 622 depends on CC_STACKPROTECTOR 623 help 624 Normally, GCC only inserts the canary value protection for 625 functions that use large-ish on-stack buffers. By enabling 626 this option, GCC will be asked to do this for ALL functions. 627 628source kernel/Kconfig.hz 629 630config REORDER 631 bool "Function reordering" 632 default n 633 help 634 This option enables the toolchain to reorder functions for a more 635 optimal TLB usage. If you have pretty much any version of binutils, 636 this can increase your kernel build time by roughly one minute. 637 638config K8_NB 639 def_bool y 640 depends on AGP_AMD64 || IOMMU || (PCI && NUMA) 641 642endmenu 643 644# 645# Use the generic interrupt handling code in kernel/irq/: 646# 647config GENERIC_HARDIRQS 648 bool 649 default y 650 651config GENERIC_IRQ_PROBE 652 bool 653 default y 654 655# we have no ISA slots, but we do have ISA-style DMA. 656config ISA_DMA_API 657 bool 658 default y 659 660config GENERIC_PENDING_IRQ 661 bool 662 depends on GENERIC_HARDIRQS && SMP 663 default y 664 665menu "Power management options" 666 667source kernel/power/Kconfig 668 669source "drivers/acpi/Kconfig" 670 671source "arch/x86_64/kernel/cpufreq/Kconfig" 672 673endmenu 674 675menu "Bus options (PCI etc.)" 676 677config PCI 678 bool "PCI support" 679 680# x86-64 doesn't support PCI BIOS access from long mode so always go direct. 681config PCI_DIRECT 682 bool 683 depends on PCI 684 default y 685 686config PCI_MMCONFIG 687 bool "Support mmconfig PCI config space access" 688 depends on PCI && ACPI 689 690source "drivers/pci/pcie/Kconfig" 691 692source "drivers/pci/Kconfig" 693 694source "drivers/pcmcia/Kconfig" 695 696source "drivers/pci/hotplug/Kconfig" 697 698endmenu 699 700 701menu "Executable file formats / Emulations" 702 703source "fs/Kconfig.binfmt" 704 705config IA32_EMULATION 706 bool "IA32 Emulation" 707 help 708 Include code to run 32-bit programs under a 64-bit kernel. You should likely 709 turn this on, unless you're 100% sure that you don't have any 32-bit programs 710 left. 711 712config IA32_AOUT 713 tristate "IA32 a.out support" 714 depends on IA32_EMULATION 715 help 716 Support old a.out binaries in the 32bit emulation. 717 718config COMPAT 719 bool 720 depends on IA32_EMULATION 721 default y 722 723config SYSVIPC_COMPAT 724 bool 725 depends on COMPAT && SYSVIPC 726 default y 727 728endmenu 729 730source "net/Kconfig" 731 732source drivers/Kconfig 733 734source "drivers/firmware/Kconfig" 735 736source fs/Kconfig 737 738menu "Instrumentation Support" 739 depends on EXPERIMENTAL 740 741source "arch/x86_64/oprofile/Kconfig" 742 743config KPROBES 744 bool "Kprobes (EXPERIMENTAL)" 745 depends on KALLSYMS && EXPERIMENTAL && MODULES 746 help 747 Kprobes allows you to trap at almost any kernel address and 748 execute a callback function. register_kprobe() establishes 749 a probepoint and specifies the callback. Kprobes is useful 750 for kernel debugging, non-intrusive instrumentation and testing. 751 If in doubt, say "N". 752endmenu 753 754source "arch/x86_64/Kconfig.debug" 755 756source "security/Kconfig" 757 758source "crypto/Kconfig" 759 760source "lib/Kconfig"