PageRenderTime 110ms CodeModel.GetById 66ms app.highlight 20ms RepoModel.GetById 1ms app.codeStats 1ms

#! | 1269 lines | 1038 code | 231 blank | 0 comment | 0 complexity | 8d48f3505885287dddc0f7aadcca4aad MD5 | raw file
   2# For a description of the syntax of this configuration file,
   3# see Documentation/kbuild/kconfig-language.txt.
   6mainmenu "Linux Kernel Configuration"
   8config X86
   9	bool
  10	default y
  11	help
  12	  This is Linux's home port.  Linux was originally native to the Intel
  13	  386, and runs on all the later x86 processors including the Intel
  14	  486, 586, Pentiums, and various instruction-set-compatible chips by
  15	  AMD, Cyrix, and others.
  17config MMU
  18	bool
  19	default y
  21config SBUS
  22	bool
  24config UID16
  25	bool
  26	default y
  28config GENERIC_ISA_DMA
  29	bool
  30	default y
  32config GENERIC_IOMAP
  33	bool
  34	default y
  36source "init/Kconfig"
  38menu "Processor type and features"
  41	prompt "Subarchitecture Type"
  42	default X86_PC
  44config X86_PC
  45	bool "PC-compatible"
  46	help
  47	  Choose this option if your computer is a standard PC or compatible.
  49config X86_ELAN
  50	bool "AMD Elan"
  51	help
  52	  Select this for an AMD Elan processor.
  54	  Do not use this option for K6/Athlon/Opteron processors!
  56	  If unsure, choose "PC-compatible" instead.
  58config X86_VOYAGER
  59	bool "Voyager (NCR)"
  60	help
  61	  Voyager is an MCA-based 32-way capable SMP architecture proprietary
  62	  to NCR Corp.  Machine classes 345x/35xx/4100/51xx are Voyager-based.
  64	  *** WARNING ***
  66	  If you do not specifically know you have a Voyager based machine,
  67	  say N here, otherwise the kernel you build will not be bootable.
  69config X86_NUMAQ
  70	bool "NUMAQ (IBM/Sequent)"
  71	select DISCONTIGMEM
  72	select NUMA
  73	help
  74	  This option is used for getting Linux to run on a (IBM/Sequent) NUMA
  75	  multiquad box. This changes the way that processors are bootstrapped,
  76	  and uses Clustered Logical APIC addressing mode instead of Flat Logical.
  77	  You will need a new lynxer.elf file to flash your firmware with - send
  78	  email to <>.
  80config X86_SUMMIT
  81	bool "Summit/EXA (IBM x440)"
  82	depends on SMP
  83	help
  84	  This option is needed for IBM systems that use the Summit/EXA chipset.
  85	  In particular, it is needed for the x440.
  87	  If you don't have one of these computers, you should say N here.
  89config X86_BIGSMP
  90	bool "Support for other sub-arch SMP systems with more than 8 CPUs"
  91	depends on SMP
  92	help
  93	  This option is needed for the systems that have more than 8 CPUs
  94	  and if the system is not of any sub-arch type above.
  96	  If you don't have such a system, you should say N here.
  98config X86_VISWS
  99	bool "SGI 320/540 (Visual Workstation)"
 100	help
 101	  The SGI Visual Workstation series is an IA32-based workstation
 102	  based on SGI systems chips with some legacy PC hardware attached.
 104	  Say Y here to create a kernel to run on the SGI 320 or 540.
 106	  A kernel compiled for the Visual Workstation will not run on PCs
 107	  and vice versa. See <file:Documentation/sgi-visws.txt> for details.
 109config X86_GENERICARCH
 110       bool "Generic architecture (Summit, bigsmp, ES7000, default)"
 111       depends on SMP
 112       help
 113          This option compiles in the Summit, bigsmp, ES7000, default subarchitectures.
 114	  It is intended for a generic binary kernel.
 116config X86_ES7000
 117	bool "Support for Unisys ES7000 IA32 series"
 118	depends on SMP
 119	help
 120	  Support for Unisys ES7000 systems.  Say 'Y' here if this kernel is
 121	  supposed to run on an IA32-based Unisys ES7000 system.
 122	  Only choose this option if you have such a system, otherwise you
 123	  should say N here.
 127config ACPI_SRAT
 128	bool
 129	default y
 130	depends on NUMA && (X86_SUMMIT || X86_GENERICARCH)
 132config X86_SUMMIT_NUMA
 133	bool
 134	default y
 135	depends on NUMA && (X86_SUMMIT || X86_GENERICARCH)
 137config X86_CYCLONE_TIMER
 138	bool
 139	default y
 140	depends on X86_SUMMIT || X86_GENERICARCH
 142config ES7000_CLUSTERED_APIC
 143	bool
 144	default y
 145	depends on SMP && X86_ES7000 && MPENTIUMIII
 147if !X86_ELAN
 150	prompt "Processor family"
 151	default M686
 153config M386
 154	bool "386"
 155	---help---
 156	  This is the processor type of your CPU. This information is used for
 157	  optimizing purposes. In order to compile a kernel that can run on
 158	  all x86 CPU types (albeit not optimally fast), you can specify
 159	  "386" here.
 161	  The kernel will not necessarily run on earlier architectures than
 162	  the one you have chosen, e.g. a Pentium optimized kernel will run on
 163	  a PPro, but not necessarily on a i486.
 165	  Here are the settings recommended for greatest speed:
 166	  - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI
 167	  486DLC/DLC2, UMC 486SX-S and NexGen Nx586.  Only "386" kernels
 168	  will run on a 386 class machine.
 169	  - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
 170	  SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
 171	  - "586" for generic Pentium CPUs lacking the TSC
 172	  (time stamp counter) register.
 173	  - "Pentium-Classic" for the Intel Pentium.
 174	  - "Pentium-MMX" for the Intel Pentium MMX.
 175	  - "Pentium-Pro" for the Intel Pentium Pro.
 176	  - "Pentium-II" for the Intel Pentium II or pre-Coppermine Celeron.
 177	  - "Pentium-III" for the Intel Pentium III or Coppermine Celeron.
 178	  - "Pentium-4" for the Intel Pentium 4 or P4-based Celeron.
 179	  - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
 180	  - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
 181	  - "Crusoe" for the Transmeta Crusoe series.
 182	  - "Efficeon" for the Transmeta Efficeon series.
 183	  - "Winchip-C6" for original IDT Winchip.
 184	  - "Winchip-2" for IDT Winchip 2.
 185	  - "Winchip-2A" for IDT Winchips with 3dNow! capabilities.
 186	  - "MediaGX/Geode" for Cyrix MediaGX aka Geode.
 187	  - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
 188	  - "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above).
 190	  If you don't know what to do, choose "386".
 192config M486
 193	bool "486"
 194	help
 195	  Select this for a 486 series processor, either Intel or one of the
 196	  compatible processors from AMD, Cyrix, IBM, or Intel.  Includes DX,
 197	  DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or
 198	  U5S.
 200config M586
 201	bool "586/K5/5x86/6x86/6x86MX"
 202	help
 203	  Select this for an 586 or 686 series processor such as the AMD K5,
 204	  the Cyrix 5x86, 6x86 and 6x86MX.  This choice does not
 205	  assume the RDTSC (Read Time Stamp Counter) instruction.
 207config M586TSC
 208	bool "Pentium-Classic"
 209	help
 210	  Select this for a Pentium Classic processor with the RDTSC (Read
 211	  Time Stamp Counter) instruction for benchmarking.
 213config M586MMX
 214	bool "Pentium-MMX"
 215	help
 216	  Select this for a Pentium with the MMX graphics/multimedia
 217	  extended instructions.
 219config M686
 220	bool "Pentium-Pro"
 221	help
 222	  Select this for Intel Pentium Pro chips.  This enables the use of
 223	  Pentium Pro extended instructions, and disables the init-time guard
 224	  against the f00f bug found in earlier Pentiums.
 226config MPENTIUMII
 227	bool "Pentium-II/Celeron(pre-Coppermine)"
 228	help
 229	  Select this for Intel chips based on the Pentium-II and
 230	  pre-Coppermine Celeron core.  This option enables an unaligned
 231	  copy optimization, compiles the kernel with optimization flags
 232	  tailored for the chip, and applies any applicable Pentium Pro
 233	  optimizations.
 235config MPENTIUMIII
 236	bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
 237	help
 238	  Select this for Intel chips based on the Pentium-III and
 239	  Celeron-Coppermine core.  This option enables use of some
 240	  extended prefetch instructions in addition to the Pentium II
 241	  extensions.
 243config MPENTIUMM
 244	bool "Pentium M"
 245	help
 246	  Select this for Intel Pentium M (not Pentium-4 M)
 247	  notebook chips.
 249config MPENTIUM4
 250	bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon"
 251	help
 252	  Select this for Intel Pentium 4 chips.  This includes the
 253	  Pentium 4, P4-based Celeron and Xeon, and Pentium-4 M
 254	  (not Pentium M) chips.  This option enables compile flags
 255	  optimized for the chip, uses the correct cache shift, and
 256	  applies any applicable Pentium III optimizations.
 258config MK6
 259	bool "K6/K6-II/K6-III"
 260	help
 261	  Select this for an AMD K6-family processor.  Enables use of
 262	  some extended instructions, and passes appropriate optimization
 263	  flags to GCC.
 265config MK7
 266	bool "Athlon/Duron/K7"
 267	help
 268	  Select this for an AMD Athlon K7-family processor.  Enables use of
 269	  some extended instructions, and passes appropriate optimization
 270	  flags to GCC.
 272config MK8
 273	bool "Opteron/Athlon64/Hammer/K8"
 274	help
 275	  Select this for an AMD Opteron or Athlon64 Hammer-family processor.  Enables
 276	  use of some extended instructions, and passes appropriate optimization
 277	  flags to GCC.
 279config MCRUSOE
 280	bool "Crusoe"
 281	help
 282	  Select this for a Transmeta Crusoe processor.  Treats the processor
 283	  like a 586 with TSC, and sets some GCC optimization flags (like a
 284	  Pentium Pro with no alignment requirements).
 286config MEFFICEON
 287	bool "Efficeon"
 288	help
 289	  Select this for a Transmeta Efficeon processor.
 291config MWINCHIPC6
 292	bool "Winchip-C6"
 293	help
 294	  Select this for an IDT Winchip C6 chip.  Linux and GCC
 295	  treat this chip as a 586TSC with some extended instructions
 296	  and alignment requirements.
 298config MWINCHIP2
 299	bool "Winchip-2"
 300	help
 301	  Select this for an IDT Winchip-2.  Linux and GCC
 302	  treat this chip as a 586TSC with some extended instructions
 303	  and alignment requirements.
 305config MWINCHIP3D
 306	bool "Winchip-2A/Winchip-3"
 307	help
 308	  Select this for an IDT Winchip-2A or 3.  Linux and GCC
 309	  treat this chip as a 586TSC with some extended instructions
 310	  and alignment reqirements.  Also enable out of order memory
 311	  stores for this CPU, which can increase performance of some
 312	  operations.
 314config MGEODE
 315	bool "MediaGX/Geode"
 316	help
 317	  Select this for a Cyrix MediaGX aka Geode chip. Linux and GCC
 318          treat this chip as a 586TSC with some extended instructions
 319          and alignment reqirements.
 321config MCYRIXIII
 322	bool "CyrixIII/VIA-C3"
 323	help
 324	  Select this for a Cyrix III or C3 chip.  Presently Linux and GCC
 325	  treat this chip as a generic 586. Whilst the CPU is 686 class,
 326	  it lacks the cmov extension which gcc assumes is present when
 327	  generating 686 code.
 328	  Note that Nehemiah (Model 9) and above will not boot with this
 329	  kernel due to them lacking the 3DNow! instructions used in earlier
 330	  incarnations of the CPU.
 332config MVIAC3_2
 333	bool "VIA C3-2 (Nehemiah)"
 334	help
 335	  Select this for a VIA C3 "Nehemiah". Selecting this enables usage
 336	  of SSE and tells gcc to treat the CPU as a 686.
 337	  Note, this kernel will not boot on older (pre model 9) C3s.
 341config X86_GENERIC
 342       bool "Generic x86 support"
 343       help
 344	  Instead of just including optimizations for the selected
 345	  x86 variant (e.g. PII, Crusoe or Athlon), include some more
 346	  generic optimizations as well. This will make the kernel
 347	  perform better on x86 CPUs other than that selected.
 349	  This is really intended for distributors who need more
 350	  generic optimizations.
 355# Define implied options from the CPU selection here
 357config X86_CMPXCHG
 358	bool
 359	depends on !M386
 360	default y
 362config X86_XADD
 363	bool
 364	depends on !M386
 365	default y
 367config X86_L1_CACHE_SHIFT
 368	int
 369	default "7" if MPENTIUM4 || X86_GENERIC
 370	default "4" if X86_ELAN || M486 || M386
 371	default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE
 372	default "6" if MK7 || MK8 || MPENTIUMM
 375	bool
 376	depends on M386
 377	default y
 380	bool
 381	depends on !M386
 382	default y
 385	bool
 386	default y
 388config X86_PPRO_FENCE
 389	bool
 390	depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODE
 391	default y
 393config X86_F00F_BUG
 394	bool
 395	depends on M586MMX || M586TSC || M586 || M486 || M386
 396	default y
 398config X86_WP_WORKS_OK
 399	bool
 400	depends on !M386
 401	default y
 403config X86_INVLPG
 404	bool
 405	depends on !M386
 406	default y
 408config X86_BSWAP
 409	bool
 410	depends on !M386
 411	default y
 413config X86_POPAD_OK
 414	bool
 415	depends on !M386
 416	default y
 418config X86_ALIGNMENT_16
 419	bool
 420	depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODE
 421	default y
 423config X86_GOOD_APIC
 424	bool
 425	depends on MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8 || MEFFICEON
 426	default y
 428config X86_INTEL_USERCOPY
 429	bool
 431	default y
 433config X86_USE_PPRO_CHECKSUM
 434	bool
 436	default y
 438config X86_USE_3DNOW
 439	bool
 440	depends on MCYRIXIII || MK7
 441	default y
 443config X86_OOSTORE
 444	bool
 445	depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MGEODE) && MTRR
 446	default y
 448config HPET_TIMER
 449	bool "HPET Timer Support"
 450	help
 451	  This enables the use of the HPET for the kernel's internal timer.
 452	  HPET is the next generation timer replacing legacy 8254s.
 453	  You can safely choose Y here.  However, HPET will only be
 454	  activated if the platform and the BIOS support this feature.
 455	  Otherwise the 8254 will be used for timing services.
 457	  Choose N to continue using the legacy 8254 timer.
 460	bool "Provide RTC interrupt"
 461	depends on HPET_TIMER && RTC=y
 463config SMP
 464	bool "Symmetric multi-processing support"
 465	---help---
 466	  This enables support for systems with more than one CPU. If you have
 467	  a system with only one CPU, like most personal computers, say N. If
 468	  you have a system with more than one CPU, say Y.
 470	  If you say N here, the kernel will run on single and multiprocessor
 471	  machines, but will use only one CPU of a multiprocessor machine. If
 472	  you say Y here, the kernel will run on many, but not all,
 473	  singleprocessor machines. On a singleprocessor machine, the kernel
 474	  will run faster if you say N here.
 476	  Note that if you say Y here and choose architecture "586" or
 477	  "Pentium" under "Processor family", the kernel will not work on 486
 478	  architectures. Similarly, multiprocessor kernels for the "PPro"
 479	  architecture may not work on all Pentium based boards.
 481	  People using multiprocessor machines who say Y here should also say
 482	  Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
 483	  Management" code will be disabled if you say Y here.
 485	  See also the <file:Documentation/smp.txt>,
 486	  <file:Documentation/i386/IO-APIC.txt>,
 487	  <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
 488	  <>.
 490	  If you don't know what to do here, say N.
 492config NR_CPUS
 493	int "Maximum number of CPUs (2-255)"
 494	range 2 255
 495	depends on SMP
 496	default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
 497	default "8"
 498	help
 499	  This allows you to specify the maximum number of CPUs which this
 500	  kernel will support.  The maximum supported value is 255 and the
 501	  minimum value which makes sense is 2.
 503	  This is purely to save memory - each supported CPU adds
 504	  approximately eight kilobytes to the kernel image.
 506config SCHED_SMT
 507	bool "SMT (Hyperthreading) scheduler support"
 508	depends on SMP
 509	default off
 510	help
 511	  SMT scheduler support improves the CPU scheduler's decision making
 512	  when dealing with Intel Pentium 4 chips with HyperThreading at a
 513	  cost of slightly increased overhead in some places. If unsure say
 514	  N here.
 516config PREEMPT
 517	bool "Preemptible Kernel"
 518	help
 519	  This option reduces the latency of the kernel when reacting to
 520	  real-time or interactive events by allowing a low priority process to
 521	  be preempted even if it is in kernel mode executing a system call.
 522	  This allows applications to run more reliably even when the system is
 523	  under load.
 525	  Say Y here if you are building a kernel for a desktop, embedded
 526	  or real-time system.  Say N if you are unsure.
 528config PREEMPT_BKL
 529	bool "Preempt The Big Kernel Lock"
 530	depends on PREEMPT
 531	default y
 532	help
 533	  This option reduces the latency of the kernel by making the
 534	  big kernel lock preemptible.
 536	  Say Y here if you are building a kernel for a desktop system.
 537	  Say N if you are unsure.
 539config X86_UP_APIC
 540	bool "Local APIC support on uniprocessors"
 541	depends on !SMP && !(X86_VISWS || X86_VOYAGER)
 542	help
 543	  A local APIC (Advanced Programmable Interrupt Controller) is an
 544	  integrated interrupt controller in the CPU. If you have a single-CPU
 545	  system which has a processor with a local APIC, you can say Y here to
 546	  enable and use it. If you say Y here even though your machine doesn't
 547	  have a local APIC, then the kernel will still run with no slowdown at
 548	  all. The local APIC supports CPU-generated self-interrupts (timer,
 549	  performance counters), and the NMI watchdog which detects hard
 550	  lockups.
 552config X86_UP_IOAPIC
 553	bool "IO-APIC support on uniprocessors"
 554	depends on X86_UP_APIC
 555	help
 556	  An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
 557	  SMP-capable replacement for PC-style interrupt controllers. Most
 558	  SMP systems and many recent uniprocessor systems have one.
 560	  If you have a single-CPU system with an IO-APIC, you can say Y here
 561	  to use it. If you say Y here even though your machine doesn't have
 562	  an IO-APIC, then the kernel will still run with no slowdown at all.
 564config X86_LOCAL_APIC
 565	bool
 566	depends on X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER)
 567	default y
 569config X86_IO_APIC
 570	bool
 571	depends on X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER))
 572	default y
 574config X86_VISWS_APIC
 575	bool
 576	depends on X86_VISWS
 577	default y
 579config X86_TSC
 580	bool
 582	default y
 584config X86_MCE
 585	bool "Machine Check Exception"
 586	depends on !X86_VOYAGER
 587	---help---
 588	  Machine Check Exception support allows the processor to notify the
 589	  kernel if it detects a problem (e.g. overheating, component failure).
 590	  The action the kernel takes depends on the severity of the problem,
 591	  ranging from a warning message on the console, to halting the machine.
 592	  Your processor must be a Pentium or newer to support this - check the
 593	  flags in /proc/cpuinfo for mce.  Note that some older Pentium systems
 594	  have a design flaw which leads to false MCE events - hence MCE is
 595	  disabled on all P5 processors, unless explicitly enabled with "mce"
 596	  as a boot argument.  Similarly, if MCE is built in and creates a
 597	  problem on some new non-standard machine, you can boot with "nomce"
 598	  to disable it.  MCE support simply ignores non-MCE processors like
 599	  the 386 and 486, so nearly everyone can say Y here.
 601config X86_MCE_NONFATAL
 602	tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
 603	depends on X86_MCE
 604	help
 605	  Enabling this feature starts a timer that triggers every 5 seconds which
 606	  will look at the machine check registers to see if anything happened.
 607	  Non-fatal problems automatically get corrected (but still logged).
 608	  Disable this if you don't want to see these messages.
 609	  Seeing the messages this option prints out may be indicative of dying hardware,
 610	  or out-of-spec (ie, overclocked) hardware.
 611	  This option only does something on certain CPUs.
 612	  (AMD Athlon/Duron and Intel Pentium 4)
 614config X86_MCE_P4THERMAL
 615	bool "check for P4 thermal throttling interrupt."
 616	depends on X86_MCE && (X86_UP_APIC || SMP) && !X86_VISWS
 617	help
 618	  Enabling this feature will cause a message to be printed when the P4
 619	  enters thermal throttling.
 621config TOSHIBA
 622	tristate "Toshiba Laptop support"
 623	---help---
 624	  This adds a driver to safely access the System Management Mode of
 625	  the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
 626	  not work on models with a Phoenix BIOS. The System Management Mode
 627	  is used to set the BIOS and power saving options on Toshiba portables.
 629	  For information on utilities to make use of this driver see the
 630	  Toshiba Linux utilities web site at:
 631	  <>.
 633	  Say Y if you intend to run this kernel on a Toshiba portable.
 634	  Say N otherwise.
 636config I8K
 637	tristate "Dell laptop support"
 638	---help---
 639	  This adds a driver to safely access the System Management Mode
 640	  of the CPU on the Dell Inspiron 8000. The System Management Mode
 641	  is used to read cpu temperature and cooling fan status and to
 642	  control the fans on the I8K portables.
 644	  This driver has been tested only on the Inspiron 8000 but it may
 645	  also work with other Dell laptops. You can force loading on other
 646	  models by passing the parameter `force=1' to the module. Use at
 647	  your own risk.
 649	  For information on utilities to make use of this driver see the
 650	  I8K Linux utilities web site at:
 651	  <>
 653	  Say Y if you intend to run this kernel on a Dell Inspiron 8000.
 654	  Say N otherwise.
 656config MICROCODE
 657	tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
 658	---help---
 659	  If you say Y here and also to "/dev file system support" in the
 660	  'File systems' section, you will be able to update the microcode on
 661	  Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
 662	  Pentium III, Pentium 4, Xeon etc.  You will obviously need the
 663	  actual microcode binary data itself which is not shipped with the
 664	  Linux kernel.
 666	  For latest news and information on obtaining all the required
 667	  ingredients for this driver, check:
 668	  <>.
 670	  To compile this driver as a module, choose M here: the
 671	  module will be called microcode.
 673config X86_MSR
 674	tristate "/dev/cpu/*/msr - Model-specific register support"
 675	help
 676	  This device gives privileged processes access to the x86
 677	  Model-Specific Registers (MSRs).  It is a character device with
 678	  major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
 679	  MSR accesses are directed to a specific CPU on multi-processor
 680	  systems.
 682config X86_CPUID
 683	tristate "/dev/cpu/*/cpuid - CPU information support"
 684	help
 685	  This device gives processes access to the x86 CPUID instruction to
 686	  be executed on a specific processor.  It is a character device
 687	  with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
 688	  /dev/cpu/31/cpuid.
 690source "drivers/firmware/Kconfig"
 693	prompt "High Memory Support"
 694	default NOHIGHMEM
 696config NOHIGHMEM
 697	bool "off"
 698	---help---
 699	  Linux can use up to 64 Gigabytes of physical memory on x86 systems.
 700	  However, the address space of 32-bit x86 processors is only 4
 701	  Gigabytes large. That means that, if you have a large amount of
 702	  physical memory, not all of it can be "permanently mapped" by the
 703	  kernel. The physical memory that's not permanently mapped is called
 704	  "high memory".
 706	  If you are compiling a kernel which will never run on a machine with
 707	  more than 1 Gigabyte total physical RAM, answer "off" here (default
 708	  choice and suitable for most users). This will result in a "3GB/1GB"
 709	  split: 3GB are mapped so that each process sees a 3GB virtual memory
 710	  space and the remaining part of the 4GB virtual memory space is used
 711	  by the kernel to permanently map as much physical memory as
 712	  possible.
 714	  If the machine has between 1 and 4 Gigabytes physical RAM, then
 715	  answer "4GB" here.
 717	  If more than 4 Gigabytes is used then answer "64GB" here. This
 718	  selection turns Intel PAE (Physical Address Extension) mode on.
 719	  PAE implements 3-level paging on IA32 processors. PAE is fully
 720	  supported by Linux, PAE mode is implemented on all recent Intel
 721	  processors (Pentium Pro and better). NOTE: If you say "64GB" here,
 722	  then the kernel will not boot on CPUs that don't support PAE!
 724	  The actual amount of total physical memory will either be
 725	  auto detected or can be forced by using a kernel command line option
 726	  such as "mem=256M". (Try "man bootparam" or see the documentation of
 727	  your boot loader (lilo or loadlin) about how to pass options to the
 728	  kernel at boot time.)
 730	  If unsure, say "off".
 732config HIGHMEM4G
 733	bool "4GB"
 734	help
 735	  Select this if you have a 32-bit processor and between 1 and 4
 736	  gigabytes of physical RAM.
 738config HIGHMEM64G
 739	bool "64GB"
 740	help
 741	  Select this if you have a 32-bit processor and more than 4
 742	  gigabytes of physical RAM.
 746config HIGHMEM
 747	bool
 748	depends on HIGHMEM64G || HIGHMEM4G
 749	default y
 751config X86_PAE
 752	bool
 753	depends on HIGHMEM64G
 754	default y
 756# Common NUMA Features
 757config NUMA
 758	bool "Numa Memory Allocation and Scheduler Support"
 759	depends on SMP && HIGHMEM64G && (X86_NUMAQ || X86_GENERICARCH || (X86_SUMMIT && ACPI))
 760	default n if X86_PC
 761	default y if (X86_NUMAQ || X86_SUMMIT)
 763# Need comments to help the hapless user trying to turn on NUMA support
 764comment "NUMA (NUMA-Q) requires SMP, 64GB highmem support"
 765	depends on X86_NUMAQ && (!HIGHMEM64G || !SMP)
 767comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
 768	depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI)
 771	bool
 772	depends on NUMA
 773	default y
 776	bool
 777	depends on NUMA
 778	default y
 781	bool
 782	depends on DISCONTIGMEM
 783	default y
 786	bool
 787	depends on DISCONTIGMEM
 788	default y
 790config HIGHPTE
 791	bool "Allocate 3rd-level pagetables from highmem"
 792	depends on HIGHMEM4G || HIGHMEM64G
 793	help
 794	  The VM uses one page table entry for each page of physical memory.
 795	  For systems with a lot of RAM, this can be wasteful of precious
 796	  low memory.  Setting this option will put user-space page table
 797	  entries in high memory.
 800	bool "Math emulation"
 801	---help---
 802	  Linux can emulate a math coprocessor (used for floating point
 803	  operations) if you don't have one. 486DX and Pentium processors have
 804	  a math coprocessor built in, 486SX and 386 do not, unless you added
 805	  a 487DX or 387, respectively. (The messages during boot time can
 806	  give you some hints here ["man dmesg"].) Everyone needs either a
 807	  coprocessor or this emulation.
 809	  If you don't have a math coprocessor, you need to say Y here; if you
 810	  say Y here even though you have a coprocessor, the coprocessor will
 811	  be used nevertheless. (This behavior can be changed with the kernel
 812	  command line option "no387", which comes handy if your coprocessor
 813	  is broken. Try "man bootparam" or see the documentation of your boot
 814	  loader (lilo or loadlin) about how to pass options to the kernel at
 815	  boot time.) This means that it is a good idea to say Y here if you
 816	  intend to use this kernel on different machines.
 818	  More information about the internals of the Linux math coprocessor
 819	  emulation can be found in <file:arch/i386/math-emu/README>.
 821	  If you are not sure, say Y; apart from resulting in a 66 KB bigger
 822	  kernel, it won't hurt.
 824config MTRR
 825	bool "MTRR (Memory Type Range Register) support"
 826	---help---
 827	  On Intel P6 family processors (Pentium Pro, Pentium II and later)
 828	  the Memory Type Range Registers (MTRRs) may be used to control
 829	  processor access to memory ranges. This is most useful if you have
 830	  a video (VGA) card on a PCI or AGP bus. Enabling write-combining
 831	  allows bus write transfers to be combined into a larger transfer
 832	  before bursting over the PCI/AGP bus. This can increase performance
 833	  of image write operations 2.5 times or more. Saying Y here creates a
 834	  /proc/mtrr file which may be used to manipulate your processor's
 835	  MTRRs. Typically the X server should use this.
 837	  This code has a reasonably generic interface so that similar
 838	  control registers on other processors can be easily supported
 839	  as well:
 841	  The Cyrix 6x86, 6x86MX and M II processors have Address Range
 842	  Registers (ARRs) which provide a similar functionality to MTRRs. For
 843	  these, the ARRs are used to emulate the MTRRs.
 844	  The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
 845	  MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
 846	  write-combining. All of these processors are supported by this code
 847	  and it makes sense to say Y here if you have one of them.
 849	  Saying Y here also fixes a problem with buggy SMP BIOSes which only
 850	  set the MTRRs for the boot CPU and not for the secondary CPUs. This
 851	  can lead to all sorts of problems, so it's good to say Y here.
 853	  You can safely say Y even if your machine doesn't have MTRRs, you'll
 854	  just add about 9 KB to your kernel.
 856	  See <file:Documentation/mtrr.txt> for more information.
 858config EFI
 859	bool "Boot from EFI support (EXPERIMENTAL)"
 860	depends on ACPI
 861	default n
 862	---help---
 863	This enables the the kernel to boot on EFI platforms using
 864	system configuration information passed to it from the firmware.
 865	This also enables the kernel to use any EFI runtime services that are
 866	available (such as the EFI variable services).
 868	This option is only useful on systems that have EFI firmware
 869	and will result in a kernel image that is ~8k larger.  In addition,
 870	you must use the latest ELILO loader available at
 871	<> in order to take advantage of
 872	kernel initialization using EFI information (neither GRUB nor LILO know
 873	anything about EFI).  However, even with this option, the resultant
 874	kernel should continue to boot on existing non-EFI platforms.
 876config IRQBALANCE
 877 	bool "Enable kernel irq balancing"
 878	depends on SMP && X86_IO_APIC
 879	default y
 880	help
 881 	  The default yes will allow the kernel to do irq load balancing.
 882	  Saying no will keep the kernel from doing irq load balancing.
 884config HAVE_DEC_LOCK
 885	bool
 886	depends on (SMP || PREEMPT) && X86_CMPXCHG
 887	default y
 889# turning this on wastes a bunch of space.
 890# Summit needs it only when NUMA is on
 891config BOOT_IOREMAP
 892	bool
 893	depends on (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI))
 894	default y
 896config REGPARM
 897	bool "Use register arguments (EXPERIMENTAL)"
 898	depends on EXPERIMENTAL
 899	default n
 900	help
 901	Compile the kernel with -mregparm=3. This uses a different ABI
 902	and passes the first three arguments of a function call in registers.
 903	This will probably break binary only modules.
 905	This feature is only enabled for gcc-3.0 and later - earlier compilers
 906	generate incorrect output with certain kernel constructs when
 907	-mregparm=3 is used.
 909config SECCOMP
 910	bool "Enable seccomp to safely compute untrusted bytecode"
 911	depends on PROC_FS
 912	default y
 913	help
 914	  This kernel feature is useful for number crunching applications
 915	  that may need to compute untrusted bytecode during their
 916	  execution. By using pipes or other transports made available to
 917	  the process as file descriptors supporting the read/write
 918	  syscalls, it's possible to isolate those applications in
 919	  their own address space using seccomp. Once seccomp is
 920	  enabled via /proc/<pid>/seccomp, it cannot be disabled
 921	  and the task is only allowed to execute a few safe syscalls
 922	  defined by each seccomp mode.
 924	  If unsure, say Y. Only embedded should say N here.
 929menu "Power management options (ACPI, APM)"
 930	depends on !X86_VOYAGER
 932source kernel/power/Kconfig
 934source "drivers/acpi/Kconfig"
 936menu "APM (Advanced Power Management) BIOS Support"
 937depends on PM && !X86_VISWS
 939config APM
 940	tristate "APM (Advanced Power Management) BIOS support"
 941	depends on PM
 942	---help---
 943	  APM is a BIOS specification for saving power using several different
 944	  techniques. This is mostly useful for battery powered laptops with
 945	  APM compliant BIOSes. If you say Y here, the system time will be
 946	  reset after a RESUME operation, the /proc/apm device will provide
 947	  battery status information, and user-space programs will receive
 948	  notification of APM "events" (e.g. battery status change).
 950	  If you select "Y" here, you can disable actual use of the APM
 951	  BIOS by passing the "apm=off" option to the kernel at boot time.
 953	  Note that the APM support is almost completely disabled for
 954	  machines with more than one CPU.
 956	  In order to use APM, you will need supporting software. For location
 957	  and more information, read <file:Documentation/pm.txt> and the
 958	  Battery Powered Linux mini-HOWTO, available from
 959	  <>.
 961	  This driver does not spin down disk drives (see the hdparm(8)
 962	  manpage ("man 8 hdparm") for that), and it doesn't turn off
 963	  VESA-compliant "green" monitors.
 965	  This driver does not support the TI 4000M TravelMate and the ACER
 966	  486/DX4/75 because they don't have compliant BIOSes. Many "green"
 967	  desktop machines also don't have compliant BIOSes, and this driver
 968	  may cause those machines to panic during the boot phase.
 970	  Generally, if you don't have a battery in your machine, there isn't
 971	  much point in using this driver and you should say N. If you get
 972	  random kernel OOPSes or reboots that don't seem to be related to
 973	  anything, try disabling/enabling this option (or disabling/enabling
 974	  APM in your BIOS).
 976	  Some other things you should try when experiencing seemingly random,
 977	  "weird" problems:
 979	  1) make sure that you have enough swap space and that it is
 980	  enabled.
 981	  2) pass the "no-hlt" option to the kernel
 982	  3) switch on floating point emulation in the kernel and pass
 983	  the "no387" option to the kernel
 984	  4) pass the "floppy=nodma" option to the kernel
 985	  5) pass the "mem=4M" option to the kernel (thereby disabling
 986	  all but the first 4 MB of RAM)
 987	  6) make sure that the CPU is not over clocked.
 988	  7) read the sig11 FAQ at <>
 989	  8) disable the cache from your BIOS settings
 990	  9) install a fan for the video card or exchange video RAM
 991	  10) install a better fan for the CPU
 992	  11) exchange RAM chips
 993	  12) exchange the motherboard.
 995	  To compile this driver as a module, choose M here: the
 996	  module will be called apm.
 999	bool "Ignore USER SUSPEND"
1000	depends on APM
1001	help
1002	  This option will ignore USER SUSPEND requests. On machines with a
1003	  compliant APM BIOS, you want to say N. However, on the NEC Versa M
1004	  series notebooks, it is necessary to say Y because of a BIOS bug.
1006config APM_DO_ENABLE
1007	bool "Enable PM at boot time"
1008	depends on APM
1009	---help---
1010	  Enable APM features at boot time. From page 36 of the APM BIOS
1011	  specification: "When disabled, the APM BIOS does not automatically
1012	  power manage devices, enter the Standby State, enter the Suspend
1013	  State, or take power saving steps in response to CPU Idle calls."
1014	  This driver will make CPU Idle calls when Linux is idle (unless this
1015	  feature is turned off -- see "Do CPU IDLE calls", below). This
1016	  should always save battery power, but more complicated APM features
1017	  will be dependent on your BIOS implementation. You may need to turn
1018	  this option off if your computer hangs at boot time when using APM
1019	  support, or if it beeps continuously instead of suspending. Turn
1020	  this off if you have a NEC UltraLite Versa 33/C or a Toshiba
1021	  T400CDT. This is off by default since most machines do fine without
1022	  this feature.
1024config APM_CPU_IDLE
1025	bool "Make CPU Idle calls when idle"
1026	depends on APM
1027	help
1028	  Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
1029	  On some machines, this can activate improved power savings, such as
1030	  a slowed CPU clock rate, when the machine is idle. These idle calls
1031	  are made after the idle loop has run for some length of time (e.g.,
1032	  333 mS). On some machines, this will cause a hang at boot time or
1033	  whenever the CPU becomes idle. (On machines with more than one CPU,
1034	  this option does nothing.)
1037	bool "Enable console blanking using APM"
1038	depends on APM
1039	help
1040	  Enable console blanking using the APM. Some laptops can use this to
1041	  turn off the LCD backlight when the screen blanker of the Linux
1042	  virtual console blanks the screen. Note that this is only used by
1043	  the virtual console screen blanker, and won't turn off the backlight
1044	  when using the X Window system. This also doesn't have anything to
1045	  do with your VESA-compliant power-saving monitor. Further, this
1046	  option doesn't work for all laptops -- it might not turn off your
1047	  backlight at all, or it might print a lot of errors to the console,
1048	  especially if you are using gpm.
1050config APM_RTC_IS_GMT
1051	bool "RTC stores time in GMT"
1052	depends on APM
1053	help
1054	  Say Y here if your RTC (Real Time Clock a.k.a. hardware clock)
1055	  stores the time in GMT (Greenwich Mean Time). Say N if your RTC
1056	  stores localtime.
1058	  It is in fact recommended to store GMT in your RTC, because then you
1059	  don't have to worry about daylight savings time changes. The only
1060	  reason not to use GMT in your RTC is if you also run a broken OS
1061	  that doesn't understand GMT.
1063config APM_ALLOW_INTS
1064	bool "Allow interrupts during APM BIOS calls"
1065	depends on APM
1066	help
1067	  Normally we disable external interrupts while we are making calls to
1068	  the APM BIOS as a measure to lessen the effects of a badly behaving
1069	  BIOS implementation.  The BIOS should reenable interrupts if it
1070	  needs to.  Unfortunately, some BIOSes do not -- especially those in
1071	  many of the newer IBM Thinkpads.  If you experience hangs when you
1072	  suspend, try setting this to Y.  Otherwise, say N.
1075	bool "Use real mode APM BIOS call to power off"
1076	depends on APM
1077	help
1078	  Use real mode APM BIOS calls to switch off the computer. This is
1079	  a work-around for a number of buggy BIOSes. Switch this option on if
1080	  your computer crashes instead of powering off properly.
1084source "arch/i386/kernel/cpu/cpufreq/Kconfig"
1088menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
1090config PCI
1091	bool "PCI support" if !X86_VISWS
1092	depends on !X86_VOYAGER
1093	default y if X86_VISWS
1094	help
1095	  Find out whether you have a PCI motherboard. PCI is the name of a
1096	  bus system, i.e. the way the CPU talks to the other stuff inside
1097	  your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
1098	  VESA. If you have PCI, say Y, otherwise N.
1100	  The PCI-HOWTO, available from
1101	  <>, contains valuable
1102	  information about which PCI hardware does work under Linux and which
1103	  doesn't.
1106	prompt "PCI access mode"
1107	depends on PCI && !X86_VISWS
1108	default PCI_GOANY
1109	---help---
1110	  On PCI systems, the BIOS can be used to detect the PCI devices and
1111	  determine their configuration. However, some old PCI motherboards
1112	  have BIOS bugs and may crash if this is done. Also, some embedded
1113	  PCI-based systems don't have any BIOS at all. Linux can also try to
1114	  detect the PCI hardware directly without using the BIOS.
1116	  With this option, you can specify how Linux should detect the
1117	  PCI devices. If you choose "BIOS", the BIOS will be used,
1118	  if you choose "Direct", the BIOS won't be used, and if you
1119	  choose "MMConfig", then PCI Express MMCONFIG will be used.
1120	  If you choose "Any", the kernel will try MMCONFIG, then the
1121	  direct access method and falls back to the BIOS if that doesn't
1122	  work. If unsure, go with the default, which is "Any".
1124config PCI_GOBIOS
1125	bool "BIOS"
1128	bool "MMConfig"
1130config PCI_GODIRECT
1131	bool "Direct"
1133config PCI_GOANY
1134	bool "Any"
1138config PCI_BIOS
1139	bool
1140	depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
1141	default y
1143config PCI_DIRECT
1144	bool
1145 	depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
1146	default y
1148config PCI_MMCONFIG
1149	bool
1150	depends on PCI && (PCI_GOMMCONFIG || (PCI_GOANY && ACPI))
1151	select ACPI_BOOT
1152	default y
1154source "drivers/pci/pcie/Kconfig"
1156source "drivers/pci/Kconfig"
1158config ISA
1159	bool "ISA support"
1160	depends on !(X86_VOYAGER || X86_VISWS)
1161	help
1162	  Find out whether you have ISA slots on your motherboard.  ISA is the
1163	  name of a bus system, i.e. the way the CPU talks to the other stuff
1164	  inside your box.  Other bus systems are PCI, EISA, MicroChannel
1165	  (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
1166	  newer boards don't support it.  If you have ISA, say Y, otherwise N.
1168config EISA
1169	bool "EISA support"
1170	depends on ISA
1171	---help---
1172	  The Extended Industry Standard Architecture (EISA) bus was
1173	  developed as an open alternative to the IBM MicroChannel bus.
1175	  The EISA bus provided some of the features of the IBM MicroChannel
1176	  bus while maintaining backward compatibility with cards made for
1177	  the older ISA bus.  The EISA bus saw limited use between 1988 and
1178	  1995 when it was made obsolete by the PCI bus.
1180	  Say Y here if you are building a kernel for an EISA-based machine.
1182	  Otherwise, say N.
1184source "drivers/eisa/Kconfig"
1186config MCA
1187	bool "MCA support" if !(X86_VISWS || X86_VOYAGER)
1188	default y if X86_VOYAGER
1189	help
1190	  MicroChannel Architecture is found in some IBM PS/2 machines and
1191	  laptops.  It is a bus system similar to PCI or ISA. See
1192	  <file:Documentation/mca.txt> (and especially the web page given
1193	  there) before attempting to build an MCA bus kernel.
1195source "drivers/mca/Kconfig"
1197config SCx200
1198	tristate "NatSemi SCx200 support"
1199	depends on !X86_VOYAGER
1200	help
1201	  This provides basic support for the National Semiconductor SCx200
1202	  processor.  Right now this is just a driver for the GPIO pins.
1204	  If you don't know what to do here, say N.
1206	  This support is also available as a module.  If compiled as a
1207	  module, it will be called scx200.
1209source "drivers/pcmcia/Kconfig"
1211source "drivers/pci/hotplug/Kconfig"
1215menu "Executable file formats"
1217source "fs/Kconfig.binfmt"
1221source "drivers/Kconfig"
1223source "fs/Kconfig"
1225source "arch/i386/oprofile/Kconfig"
1227source "arch/i386/Kconfig.debug"
1229source "security/Kconfig"
1231source "crypto/Kconfig"
1233source "lib/Kconfig"
1236# Use the generic interrupt handling code in kernel/irq/:
1239	bool
1240	default y
1243	bool
1244	default y
1246config X86_SMP
1247	bool
1248	depends on SMP && !X86_VOYAGER
1249	default y
1251config X86_HT
1252	bool
1253	depends on SMP && !(X86_VISWS || X86_VOYAGER)
1254	default y
1256config X86_BIOS_REBOOT
1257	bool
1258	depends on !(X86_VISWS || X86_VOYAGER)
1259	default y
1261config X86_TRAMPOLINE
1262	bool
1263	depends on X86_SMP || (X86_VOYAGER && SMP)
1264	default y
1266config PC
1267	bool
1268	depends on X86 && !EMBEDDED
1269	default y