Merge to Fedora kernel-2.6.17-1.2187_FC5 patched with stable patch-2.6.17.13-vs2...
[linux-2.6.git] / arch / i386 / Kconfig
1 #
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
4 #
5
6 mainmenu "Linux Kernel Configuration"
7
8 config X86_32
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.
16
17 config SEMAPHORE_SLEEPERS
18         bool
19         default y
20
21 config X86
22         bool
23         default y
24
25 config MMU
26         bool
27         default y
28
29 config SBUS
30         bool
31
32 config GENERIC_ISA_DMA
33         bool
34         default y
35
36 config GENERIC_IOMAP
37         bool
38         default y
39
40 config GENERIC_HWEIGHT
41         bool
42         default y
43
44 config ARCH_MAY_HAVE_PC_FDC
45         bool
46         default y
47
48 config DMI
49         bool
50         default y
51
52 source "init/Kconfig"
53
54 menu "Processor type and features"
55
56 config SMP
57         bool "Symmetric multi-processing support"
58         ---help---
59           This enables support for systems with more than one CPU. If you have
60           a system with only one CPU, like most personal computers, say N. If
61           you have a system with more than one CPU, say Y.
62
63           If you say N here, the kernel will run on single and multiprocessor
64           machines, but will use only one CPU of a multiprocessor machine. If
65           you say Y here, the kernel will run on many, but not all,
66           singleprocessor machines. On a singleprocessor machine, the kernel
67           will run faster if you say N here.
68
69           Note that if you say Y here and choose architecture "586" or
70           "Pentium" under "Processor family", the kernel will not work on 486
71           architectures. Similarly, multiprocessor kernels for the "PPro"
72           architecture may not work on all Pentium based boards.
73
74           People using multiprocessor machines who say Y here should also say
75           Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
76           Management" code will be disabled if you say Y here.
77
78           See also the <file:Documentation/smp.txt>,
79           <file:Documentation/i386/IO-APIC.txt>,
80           <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
81           <http://www.tldp.org/docs.html#howto>.
82
83           If you don't know what to do here, say N.
84
85 choice
86         prompt "Subarchitecture Type"
87         default X86_PC
88
89 config X86_PC
90         bool "PC-compatible"
91         help
92           Choose this option if your computer is a standard PC or compatible.
93
94 config X86_XEN
95         bool "Xen-compatible"
96         select X86_UP_APIC if !SMP && XEN_PRIVILEGED_GUEST
97         select X86_UP_IOAPIC if !SMP && XEN_PRIVILEGED_GUEST
98         select SWIOTLB
99         help
100           Choose this option if you plan to run this kernel on top of the
101           Xen Hypervisor.
102
103 config X86_ELAN
104         bool "AMD Elan"
105         help
106           Select this for an AMD Elan processor.
107
108           Do not use this option for K6/Athlon/Opteron processors!
109
110           If unsure, choose "PC-compatible" instead.
111
112 config X86_VOYAGER
113         bool "Voyager (NCR)"
114         help
115           Voyager is an MCA-based 32-way capable SMP architecture proprietary
116           to NCR Corp.  Machine classes 345x/35xx/4100/51xx are Voyager-based.
117
118           *** WARNING ***
119
120           If you do not specifically know you have a Voyager based machine,
121           say N here, otherwise the kernel you build will not be bootable.
122
123 config X86_NUMAQ
124         bool "NUMAQ (IBM/Sequent)"
125         select SMP
126         select NUMA
127         help
128           This option is used for getting Linux to run on a (IBM/Sequent) NUMA
129           multiquad box. This changes the way that processors are bootstrapped,
130           and uses Clustered Logical APIC addressing mode instead of Flat Logical.
131           You will need a new lynxer.elf file to flash your firmware with - send
132           email to <Martin.Bligh@us.ibm.com>.
133
134 config X86_SUMMIT
135         bool "Summit/EXA (IBM x440)"
136         depends on SMP
137         help
138           This option is needed for IBM systems that use the Summit/EXA chipset.
139           In particular, it is needed for the x440.
140
141           If you don't have one of these computers, you should say N here.
142
143 config X86_BIGSMP
144         bool "Support for other sub-arch SMP systems with more than 8 CPUs"
145         depends on SMP
146         help
147           This option is needed for the systems that have more than 8 CPUs
148           and if the system is not of any sub-arch type above.
149
150           If you don't have such a system, you should say N here.
151
152 config X86_VISWS
153         bool "SGI 320/540 (Visual Workstation)"
154         help
155           The SGI Visual Workstation series is an IA32-based workstation
156           based on SGI systems chips with some legacy PC hardware attached.
157
158           Say Y here to create a kernel to run on the SGI 320 or 540.
159
160           A kernel compiled for the Visual Workstation will not run on PCs
161           and vice versa. See <file:Documentation/sgi-visws.txt> for details.
162
163 config X86_GENERICARCH
164        bool "Generic architecture (Summit, bigsmp, ES7000, default)"
165        depends on SMP
166        help
167           This option compiles in the Summit, bigsmp, ES7000, default subarchitectures.
168           It is intended for a generic binary kernel.
169
170 config X86_ES7000
171         bool "Support for Unisys ES7000 IA32 series"
172         depends on SMP
173         help
174           Support for Unisys ES7000 systems.  Say 'Y' here if this kernel is
175           supposed to run on an IA32-based Unisys ES7000 system.
176           Only choose this option if you have such a system, otherwise you
177           should say N here.
178
179 endchoice
180
181 config ACPI_SRAT
182         bool
183         default y
184         depends on NUMA && (X86_SUMMIT || X86_GENERICARCH)
185
186 config X86_SUMMIT_NUMA
187         bool
188         default y
189         depends on NUMA && (X86_SUMMIT || X86_GENERICARCH)
190
191 config X86_CYCLONE_TIMER
192         bool
193         default y
194         depends on X86_SUMMIT || X86_GENERICARCH
195
196 config ES7000_CLUSTERED_APIC
197         bool
198         default y
199         depends on SMP && X86_ES7000 && MPENTIUMIII
200
201 source "arch/i386/Kconfig.cpu"
202
203 config HPET_TIMER
204         bool "HPET Timer Support"
205         depends on !X86_XEN
206         help
207           This enables the use of the HPET for the kernel's internal timer.
208           HPET is the next generation timer replacing legacy 8254s.
209           You can safely choose Y here.  However, HPET will only be
210           activated if the platform and the BIOS support this feature.
211           Otherwise the 8254 will be used for timing services.
212
213           Choose N to continue using the legacy 8254 timer.
214
215 config HPET_EMULATE_RTC
216         bool
217         depends on HPET_TIMER && RTC=y
218         default y
219
220 config NR_CPUS
221         int "Maximum number of CPUs (2-255)"
222         range 2 255
223         depends on SMP
224         default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
225         default "8"
226         help
227           This allows you to specify the maximum number of CPUs which this
228           kernel will support.  The maximum supported value is 255 and the
229           minimum value which makes sense is 2.
230
231           This is purely to save memory - each supported CPU adds
232           approximately eight kilobytes to the kernel image.
233
234 config SCHED_SMT
235         bool "SMT (Hyperthreading) scheduler support"
236         depends on SMP && !X86_XEN
237         default off
238         help
239           SMT scheduler support improves the CPU scheduler's decision making
240           when dealing with Intel Pentium 4 chips with HyperThreading at a
241           cost of slightly increased overhead in some places. If unsure say
242           N here.
243
244 config SCHED_MC
245         bool "Multi-core scheduler support"
246         depends on SMP && !X86_XEN
247         default y
248         help
249           Multi-core scheduler support improves the CPU scheduler's decision
250           making when dealing with multi-core CPU chips at a cost of slightly
251           increased overhead in some places. If unsure say N here.
252
253 source "kernel/Kconfig.preempt"
254
255 config X86_UP_APIC
256         bool "Local APIC support on uniprocessors"
257         depends on !SMP && !(X86_VISWS || X86_VOYAGER || XEN_UNPRIVILEGED_GUEST)
258         help
259           A local APIC (Advanced Programmable Interrupt Controller) is an
260           integrated interrupt controller in the CPU. If you have a single-CPU
261           system which has a processor with a local APIC, you can say Y here to
262           enable and use it. If you say Y here even though your machine doesn't
263           have a local APIC, then the kernel will still run with no slowdown at
264           all. The local APIC supports CPU-generated self-interrupts (timer,
265           performance counters), and the NMI watchdog which detects hard
266           lockups.
267
268 config X86_UP_IOAPIC
269         bool "IO-APIC support on uniprocessors"
270         depends on X86_UP_APIC
271         help
272           An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
273           SMP-capable replacement for PC-style interrupt controllers. Most
274           SMP systems and many recent uniprocessor systems have one.
275
276           If you have a single-CPU system with an IO-APIC, you can say Y here
277           to use it. If you say Y here even though your machine doesn't have
278           an IO-APIC, then the kernel will still run with no slowdown at all.
279
280 config X86_LOCAL_APIC
281         bool
282         depends on X86_UP_APIC || ((X86_VISWS || SMP) && !(X86_VOYAGER || XEN_UNPRIVILEGED_GUEST))
283         default y
284
285 config X86_IO_APIC
286         bool
287         depends on X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER || XEN_UNPRIVILEGED_GUEST))
288         default y
289
290 config X86_VISWS_APIC
291         bool
292         depends on X86_VISWS
293         default y
294
295 config X86_TSC
296         bool
297         depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODEGX1) && !X86_NUMAQ && !X86_XEN
298         default y
299
300 config X86_MCE
301         bool "Machine Check Exception"
302         depends on !(X86_VOYAGER || X86_XEN)
303         ---help---
304           Machine Check Exception support allows the processor to notify the
305           kernel if it detects a problem (e.g. overheating, component failure).
306           The action the kernel takes depends on the severity of the problem,
307           ranging from a warning message on the console, to halting the machine.
308           Your processor must be a Pentium or newer to support this - check the
309           flags in /proc/cpuinfo for mce.  Note that some older Pentium systems
310           have a design flaw which leads to false MCE events - hence MCE is
311           disabled on all P5 processors, unless explicitly enabled with "mce"
312           as a boot argument.  Similarly, if MCE is built in and creates a
313           problem on some new non-standard machine, you can boot with "nomce"
314           to disable it.  MCE support simply ignores non-MCE processors like
315           the 386 and 486, so nearly everyone can say Y here.
316
317 config X86_MCE_NONFATAL
318         tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
319         depends on X86_MCE
320         help
321           Enabling this feature starts a timer that triggers every 5 seconds which
322           will look at the machine check registers to see if anything happened.
323           Non-fatal problems automatically get corrected (but still logged).
324           Disable this if you don't want to see these messages.
325           Seeing the messages this option prints out may be indicative of dying hardware,
326           or out-of-spec (ie, overclocked) hardware.
327           This option only does something on certain CPUs.
328           (AMD Athlon/Duron and Intel Pentium 4)
329
330 config X86_MCE_P4THERMAL
331         bool "check for P4 thermal throttling interrupt."
332         depends on X86_MCE && (X86_UP_APIC || SMP) && !X86_VISWS
333         help
334           Enabling this feature will cause a message to be printed when the P4
335           enters thermal throttling.
336
337 config TOSHIBA
338         tristate "Toshiba Laptop support"
339         ---help---
340           This adds a driver to safely access the System Management Mode of
341           the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
342           not work on models with a Phoenix BIOS. The System Management Mode
343           is used to set the BIOS and power saving options on Toshiba portables.
344
345           For information on utilities to make use of this driver see the
346           Toshiba Linux utilities web site at:
347           <http://www.buzzard.org.uk/toshiba/>.
348
349           Say Y if you intend to run this kernel on a Toshiba portable.
350           Say N otherwise.
351
352 config I8K
353         tristate "Dell laptop support"
354         ---help---
355           This adds a driver to safely access the System Management Mode
356           of the CPU on the Dell Inspiron 8000. The System Management Mode
357           is used to read cpu temperature and cooling fan status and to
358           control the fans on the I8K portables.
359
360           This driver has been tested only on the Inspiron 8000 but it may
361           also work with other Dell laptops. You can force loading on other
362           models by passing the parameter `force=1' to the module. Use at
363           your own risk.
364
365           For information on utilities to make use of this driver see the
366           I8K Linux utilities web site at:
367           <http://people.debian.org/~dz/i8k/>
368
369           Say Y if you intend to run this kernel on a Dell Inspiron 8000.
370           Say N otherwise.
371
372 config X86_REBOOTFIXUPS
373         bool "Enable X86 board specific fixups for reboot"
374         depends on X86
375         default n
376         ---help---
377           This enables chipset and/or board specific fixups to be done
378           in order to get reboot to work correctly. This is only needed on
379           some combinations of hardware and BIOS. The symptom, for which
380           this config is intended, is when reboot ends with a stalled/hung
381           system.
382
383           Currently, the only fixup is for the Geode GX1/CS5530A/TROM2.1.
384           combination.
385
386           Say Y if you want to enable the fixup. Currently, it's safe to
387           enable this option even if you don't need it.
388           Say N otherwise.
389
390 config MICROCODE
391         tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
392         depends on !XEN_UNPRIVILEGED_GUEST
393         ---help---
394           If you say Y here and also to "/dev file system support" in the
395           'File systems' section, you will be able to update the microcode on
396           Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
397           Pentium III, Pentium 4, Xeon etc.  You will obviously need the
398           actual microcode binary data itself which is not shipped with the
399           Linux kernel.
400
401           For latest news and information on obtaining all the required
402           ingredients for this driver, check:
403           <http://www.urbanmyth.org/microcode/>.
404
405           To compile this driver as a module, choose M here: the
406           module will be called microcode.
407
408 config X86_MSR
409         tristate "/dev/cpu/*/msr - Model-specific register support"
410         depends on !X86_XEN
411         help
412           This device gives privileged processes access to the x86
413           Model-Specific Registers (MSRs).  It is a character device with
414           major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
415           MSR accesses are directed to a specific CPU on multi-processor
416           systems.
417
418 config X86_CPUID
419         tristate "/dev/cpu/*/cpuid - CPU information support"
420         help
421           This device gives processes access to the x86 CPUID instruction to
422           be executed on a specific processor.  It is a character device
423           with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
424           /dev/cpu/31/cpuid.
425
426 config SWIOTLB
427         bool
428         default n
429
430 source "drivers/firmware/Kconfig"
431
432 choice
433         prompt "High Memory Support"
434         default NOHIGHMEM
435
436 config NOHIGHMEM
437         bool "off"
438         depends on !X86_NUMAQ
439         ---help---
440           Linux can use up to 64 Gigabytes of physical memory on x86 systems.
441           However, the address space of 32-bit x86 processors is only 4
442           Gigabytes large. That means that, if you have a large amount of
443           physical memory, not all of it can be "permanently mapped" by the
444           kernel. The physical memory that's not permanently mapped is called
445           "high memory".
446
447           If you are compiling a kernel which will never run on a machine with
448           more than 1 Gigabyte total physical RAM, answer "off" here (default
449           choice and suitable for most users). This will result in a "3GB/1GB"
450           split: 3GB are mapped so that each process sees a 3GB virtual memory
451           space and the remaining part of the 4GB virtual memory space is used
452           by the kernel to permanently map as much physical memory as
453           possible.
454
455           If the machine has between 1 and 4 Gigabytes physical RAM, then
456           answer "4GB" here.
457
458           If more than 4 Gigabytes is used then answer "64GB" here. This
459           selection turns Intel PAE (Physical Address Extension) mode on.
460           PAE implements 3-level paging on IA32 processors. PAE is fully
461           supported by Linux, PAE mode is implemented on all recent Intel
462           processors (Pentium Pro and better). NOTE: If you say "64GB" here,
463           then the kernel will not boot on CPUs that don't support PAE!
464
465           The actual amount of total physical memory will either be
466           auto detected or can be forced by using a kernel command line option
467           such as "mem=256M". (Try "man bootparam" or see the documentation of
468           your boot loader (lilo or loadlin) about how to pass options to the
469           kernel at boot time.)
470
471           If unsure, say "off".
472
473 config HIGHMEM4G
474         bool "4GB"
475         depends on !X86_NUMAQ
476         help
477           Select this if you have a 32-bit processor and between 1 and 4
478           gigabytes of physical RAM.
479
480 config HIGHMEM64G
481         bool "64GB"
482         depends on X86_CMPXCHG64
483         help
484           Select this if you have a 32-bit processor and more than 4
485           gigabytes of physical RAM.
486
487 endchoice
488
489 choice
490         depends on EXPERIMENTAL && !X86_PAE
491         prompt "Memory split" if EMBEDDED
492         default VMSPLIT_3G
493         help
494           Select the desired split between kernel and user memory.
495
496           If the address range available to the kernel is less than the
497           physical memory installed, the remaining memory will be available
498           as "high memory". Accessing high memory is a little more costly
499           than low memory, as it needs to be mapped into the kernel first.
500           Note that increasing the kernel address space limits the range
501           available to user programs, making the address space there
502           tighter.  Selecting anything other than the default 3G/1G split
503           will also likely make your kernel incompatible with binary-only
504           kernel modules.
505
506           If you are not absolutely sure what you are doing, leave this
507           option alone!
508
509         config VMSPLIT_3G
510                 bool "3G/1G user/kernel split"
511         config VMSPLIT_3G_OPT
512                 bool "3G/1G user/kernel split (for full 1G low memory)"
513         config VMSPLIT_2G
514                 bool "2G/2G user/kernel split"
515         config VMSPLIT_1G
516                 bool "1G/3G user/kernel split"
517 endchoice
518
519 config PAGE_OFFSET
520         hex
521         default 0xB0000000 if VMSPLIT_3G_OPT
522         default 0x78000000 if VMSPLIT_2G
523         default 0x40000000 if VMSPLIT_1G
524         default 0xC0000000
525
526 config HIGHMEM
527         bool
528         depends on HIGHMEM64G || HIGHMEM4G
529         default y
530
531 config X86_PAE
532         bool
533         depends on HIGHMEM64G
534         default y
535
536 # Common NUMA Features
537 config NUMA
538         bool "Numa Memory Allocation and Scheduler Support"
539         depends on SMP && HIGHMEM64G && (X86_NUMAQ || X86_GENERICARCH || (X86_SUMMIT && ACPI))
540         default n if X86_PC
541         default y if (X86_NUMAQ || X86_SUMMIT)
542
543 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
544         depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI)
545
546 config NODES_SHIFT
547         int
548         default "4" if X86_NUMAQ
549         default "3"
550         depends on NEED_MULTIPLE_NODES
551
552 config HAVE_ARCH_BOOTMEM_NODE
553         bool
554         depends on NUMA
555         default y
556
557 config ARCH_HAVE_MEMORY_PRESENT
558         bool
559         depends on DISCONTIGMEM
560         default y
561
562 config NEED_NODE_MEMMAP_SIZE
563         bool
564         depends on DISCONTIGMEM || SPARSEMEM
565         default y
566
567 config HAVE_ARCH_ALLOC_REMAP
568         bool
569         depends on NUMA
570         default y
571
572 config ARCH_FLATMEM_ENABLE
573         def_bool y
574         depends on (ARCH_SELECT_MEMORY_MODEL && X86_PC)
575
576 config ARCH_DISCONTIGMEM_ENABLE
577         def_bool y
578         depends on NUMA
579
580 config ARCH_DISCONTIGMEM_DEFAULT
581         def_bool y
582         depends on NUMA
583
584 config ARCH_SPARSEMEM_ENABLE
585         def_bool y
586         depends on (NUMA || (X86_PC && EXPERIMENTAL))
587         select SPARSEMEM_STATIC
588
589 config ARCH_SELECT_MEMORY_MODEL
590         def_bool y
591         depends on ARCH_SPARSEMEM_ENABLE
592
593 source "mm/Kconfig"
594
595 config HAVE_ARCH_EARLY_PFN_TO_NID
596         bool
597         default y
598         depends on NUMA
599
600 config HIGHPTE
601         bool "Allocate 3rd-level pagetables from highmem"
602         depends on (HIGHMEM4G || HIGHMEM64G) && !X86_XEN
603         help
604           The VM uses one page table entry for each page of physical memory.
605           For systems with a lot of RAM, this can be wasteful of precious
606           low memory.  Setting this option will put user-space page table
607           entries in high memory.
608
609 config MATH_EMULATION
610         bool "Math emulation"
611         depends on !X86_XEN
612         ---help---
613           Linux can emulate a math coprocessor (used for floating point
614           operations) if you don't have one. 486DX and Pentium processors have
615           a math coprocessor built in, 486SX and 386 do not, unless you added
616           a 487DX or 387, respectively. (The messages during boot time can
617           give you some hints here ["man dmesg"].) Everyone needs either a
618           coprocessor or this emulation.
619
620           If you don't have a math coprocessor, you need to say Y here; if you
621           say Y here even though you have a coprocessor, the coprocessor will
622           be used nevertheless. (This behavior can be changed with the kernel
623           command line option "no387", which comes handy if your coprocessor
624           is broken. Try "man bootparam" or see the documentation of your boot
625           loader (lilo or loadlin) about how to pass options to the kernel at
626           boot time.) This means that it is a good idea to say Y here if you
627           intend to use this kernel on different machines.
628
629           More information about the internals of the Linux math coprocessor
630           emulation can be found in <file:arch/i386/math-emu/README>.
631
632           If you are not sure, say Y; apart from resulting in a 66 KB bigger
633           kernel, it won't hurt.
634
635 config MTRR
636         bool "MTRR (Memory Type Range Register) support"
637         depends on !XEN_UNPRIVILEGED_GUEST
638         default y if X86_XEN
639         ---help---
640           On Intel P6 family processors (Pentium Pro, Pentium II and later)
641           the Memory Type Range Registers (MTRRs) may be used to control
642           processor access to memory ranges. This is most useful if you have
643           a video (VGA) card on a PCI or AGP bus. Enabling write-combining
644           allows bus write transfers to be combined into a larger transfer
645           before bursting over the PCI/AGP bus. This can increase performance
646           of image write operations 2.5 times or more. Saying Y here creates a
647           /proc/mtrr file which may be used to manipulate your processor's
648           MTRRs. Typically the X server should use this.
649
650           This code has a reasonably generic interface so that similar
651           control registers on other processors can be easily supported
652           as well:
653
654           The Cyrix 6x86, 6x86MX and M II processors have Address Range
655           Registers (ARRs) which provide a similar functionality to MTRRs. For
656           these, the ARRs are used to emulate the MTRRs.
657           The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
658           MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
659           write-combining. All of these processors are supported by this code
660           and it makes sense to say Y here if you have one of them.
661
662           Saying Y here also fixes a problem with buggy SMP BIOSes which only
663           set the MTRRs for the boot CPU and not for the secondary CPUs. This
664           can lead to all sorts of problems, so it's good to say Y here.
665
666           You can safely say Y even if your machine doesn't have MTRRs, you'll
667           just add about 9 KB to your kernel.
668
669           See <file:Documentation/mtrr.txt> for more information.
670
671 config EFI
672         bool "Boot from EFI support (EXPERIMENTAL)"
673         depends on ACPI && !X86_XEN
674         default n
675         ---help---
676         This enables the the kernel to boot on EFI platforms using
677         system configuration information passed to it from the firmware.
678         This also enables the kernel to use any EFI runtime services that are
679         available (such as the EFI variable services).
680
681         This option is only useful on systems that have EFI firmware
682         and will result in a kernel image that is ~8k larger.  In addition,
683         you must use the latest ELILO loader available at
684         <http://elilo.sourceforge.net> in order to take advantage of
685         kernel initialization using EFI information (neither GRUB nor LILO know
686         anything about EFI).  However, even with this option, the resultant
687         kernel should continue to boot on existing non-EFI platforms.
688
689 config IRQBALANCE
690         bool "Enable kernel irq balancing"
691         depends on SMP && X86_IO_APIC && !X86_XEN
692         default y
693         help
694           The default yes will allow the kernel to do irq load balancing.
695           Saying no will keep the kernel from doing irq load balancing.
696
697 # turning this on wastes a bunch of space.
698 # Summit needs it only when NUMA is on
699 config BOOT_IOREMAP
700         bool
701         depends on (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI))
702         default y
703
704 config REGPARM
705         bool "Use register arguments"
706         default y
707         help
708         Compile the kernel with -mregparm=3. This instructs gcc to use
709         a more efficient function call ABI which passes the first three
710         arguments of a function call via registers, which results in denser
711         and faster code.
712
713         If this option is disabled, then the default ABI of passing
714         arguments via the stack is used.
715
716         If unsure, say Y.
717
718 config SECCOMP
719         bool "Enable seccomp to safely compute untrusted bytecode"
720         depends on PROC_FS
721         default y
722         help
723           This kernel feature is useful for number crunching applications
724           that may need to compute untrusted bytecode during their
725           execution. By using pipes or other transports made available to
726           the process as file descriptors supporting the read/write
727           syscalls, it's possible to isolate those applications in
728           their own address space using seccomp. Once seccomp is
729           enabled via /proc/<pid>/seccomp, it cannot be disabled
730           and the task is only allowed to execute a few safe syscalls
731           defined by each seccomp mode.
732
733           If unsure, say Y. Only embedded should say N here.
734
735 source kernel/Kconfig.hz
736
737 config KEXEC
738         bool "kexec system call (EXPERIMENTAL)"
739         depends on EXPERIMENTAL && !X86_XEN
740         help
741           kexec is a system call that implements the ability to shutdown your
742           current kernel, and to start another kernel.  It is like a reboot
743           but it is indepedent of the system firmware.   And like a reboot
744           you can start any kernel with it, not just Linux.
745
746           The name comes from the similiarity to the exec system call.
747
748           It is an ongoing process to be certain the hardware in a machine
749           is properly shutdown, so do not be surprised if this code does not
750           initially work for you.  It may help to enable device hotplugging
751           support.  As of this writing the exact hardware interface is
752           strongly in flux, so no good recommendation can be made.
753
754 config CRASH_DUMP
755         bool "kernel crash dumps (EXPERIMENTAL)"
756         depends on EXPERIMENTAL
757         depends on HIGHMEM
758         help
759           Generate crash dump after being started by kexec.
760
761 config PHYSICAL_START
762         hex "Physical address where the kernel is loaded"
763
764         default "0x1000000" if CRASH_DUMP
765         default "0x100000"
766         help
767           This gives the physical address where the kernel is loaded. Normally
768           for regular kernels this value is 0x100000 (1MB). But in the case
769           of kexec on panic the fail safe kernel needs to run at a different
770           address than the panic-ed kernel. This option is used to set the load
771           address for kernels used to capture crash dump on being kexec'ed
772           after panic. The default value for crash dump kernels is
773           0x1000000 (16MB). This can also be set based on the "X" value as
774           specified in the "crashkernel=YM@XM" command line boot parameter
775           passed to the panic-ed kernel. Typically this parameter is set as
776           crashkernel=64M@16M. Please take a look at
777           Documentation/kdump/kdump.txt for more details about crash dumps.
778
779           Don't change this unless you know what you are doing.
780
781 config HOTPLUG_CPU
782         bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
783         depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER
784         ---help---
785           Say Y here to experiment with turning CPUs off and on, and to
786           enable suspend on SMP systems. CPUs can be controlled through
787           /sys/devices/system/cpu.
788
789
790 endmenu
791
792 config ARCH_ENABLE_MEMORY_HOTPLUG
793         def_bool y
794         depends on HIGHMEM
795
796 menu "Power management options (ACPI, APM)"
797         depends on !(X86_VOYAGER || XEN_UNPRIVILEGED_GUEST)
798
799 if !X86_XEN
800 source kernel/power/Kconfig
801 endif
802
803 source "drivers/acpi/Kconfig"
804
805 menu "APM (Advanced Power Management) BIOS Support"
806 depends on PM && !(X86_VISWS || X86_XEN)
807
808 config APM
809         tristate "APM (Advanced Power Management) BIOS support"
810         depends on PM && PM_LEGACY
811         ---help---
812           APM is a BIOS specification for saving power using several different
813           techniques. This is mostly useful for battery powered laptops with
814           APM compliant BIOSes. If you say Y here, the system time will be
815           reset after a RESUME operation, the /proc/apm device will provide
816           battery status information, and user-space programs will receive
817           notification of APM "events" (e.g. battery status change).
818
819           If you select "Y" here, you can disable actual use of the APM
820           BIOS by passing the "apm=off" option to the kernel at boot time.
821
822           Note that the APM support is almost completely disabled for
823           machines with more than one CPU.
824
825           In order to use APM, you will need supporting software. For location
826           and more information, read <file:Documentation/pm.txt> and the
827           Battery Powered Linux mini-HOWTO, available from
828           <http://www.tldp.org/docs.html#howto>.
829
830           This driver does not spin down disk drives (see the hdparm(8)
831           manpage ("man 8 hdparm") for that), and it doesn't turn off
832           VESA-compliant "green" monitors.
833
834           This driver does not support the TI 4000M TravelMate and the ACER
835           486/DX4/75 because they don't have compliant BIOSes. Many "green"
836           desktop machines also don't have compliant BIOSes, and this driver
837           may cause those machines to panic during the boot phase.
838
839           Generally, if you don't have a battery in your machine, there isn't
840           much point in using this driver and you should say N. If you get
841           random kernel OOPSes or reboots that don't seem to be related to
842           anything, try disabling/enabling this option (or disabling/enabling
843           APM in your BIOS).
844
845           Some other things you should try when experiencing seemingly random,
846           "weird" problems:
847
848           1) make sure that you have enough swap space and that it is
849           enabled.
850           2) pass the "no-hlt" option to the kernel
851           3) switch on floating point emulation in the kernel and pass
852           the "no387" option to the kernel
853           4) pass the "floppy=nodma" option to the kernel
854           5) pass the "mem=4M" option to the kernel (thereby disabling
855           all but the first 4 MB of RAM)
856           6) make sure that the CPU is not over clocked.
857           7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
858           8) disable the cache from your BIOS settings
859           9) install a fan for the video card or exchange video RAM
860           10) install a better fan for the CPU
861           11) exchange RAM chips
862           12) exchange the motherboard.
863
864           To compile this driver as a module, choose M here: the
865           module will be called apm.
866
867 config APM_IGNORE_USER_SUSPEND
868         bool "Ignore USER SUSPEND"
869         depends on APM
870         help
871           This option will ignore USER SUSPEND requests. On machines with a
872           compliant APM BIOS, you want to say N. However, on the NEC Versa M
873           series notebooks, it is necessary to say Y because of a BIOS bug.
874
875 config APM_DO_ENABLE
876         bool "Enable PM at boot time"
877         depends on APM
878         ---help---
879           Enable APM features at boot time. From page 36 of the APM BIOS
880           specification: "When disabled, the APM BIOS does not automatically
881           power manage devices, enter the Standby State, enter the Suspend
882           State, or take power saving steps in response to CPU Idle calls."
883           This driver will make CPU Idle calls when Linux is idle (unless this
884           feature is turned off -- see "Do CPU IDLE calls", below). This
885           should always save battery power, but more complicated APM features
886           will be dependent on your BIOS implementation. You may need to turn
887           this option off if your computer hangs at boot time when using APM
888           support, or if it beeps continuously instead of suspending. Turn
889           this off if you have a NEC UltraLite Versa 33/C or a Toshiba
890           T400CDT. This is off by default since most machines do fine without
891           this feature.
892
893 config APM_CPU_IDLE
894         bool "Make CPU Idle calls when idle"
895         depends on APM
896         help
897           Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
898           On some machines, this can activate improved power savings, such as
899           a slowed CPU clock rate, when the machine is idle. These idle calls
900           are made after the idle loop has run for some length of time (e.g.,
901           333 mS). On some machines, this will cause a hang at boot time or
902           whenever the CPU becomes idle. (On machines with more than one CPU,
903           this option does nothing.)
904
905 config APM_DISPLAY_BLANK
906         bool "Enable console blanking using APM"
907         depends on APM
908         help
909           Enable console blanking using the APM. Some laptops can use this to
910           turn off the LCD backlight when the screen blanker of the Linux
911           virtual console blanks the screen. Note that this is only used by
912           the virtual console screen blanker, and won't turn off the backlight
913           when using the X Window system. This also doesn't have anything to
914           do with your VESA-compliant power-saving monitor. Further, this
915           option doesn't work for all laptops -- it might not turn off your
916           backlight at all, or it might print a lot of errors to the console,
917           especially if you are using gpm.
918
919 config APM_RTC_IS_GMT
920         bool "RTC stores time in GMT"
921         depends on APM
922         help
923           Say Y here if your RTC (Real Time Clock a.k.a. hardware clock)
924           stores the time in GMT (Greenwich Mean Time). Say N if your RTC
925           stores localtime.
926
927           It is in fact recommended to store GMT in your RTC, because then you
928           don't have to worry about daylight savings time changes. The only
929           reason not to use GMT in your RTC is if you also run a broken OS
930           that doesn't understand GMT.
931
932 config APM_ALLOW_INTS
933         bool "Allow interrupts during APM BIOS calls"
934         depends on APM
935         help
936           Normally we disable external interrupts while we are making calls to
937           the APM BIOS as a measure to lessen the effects of a badly behaving
938           BIOS implementation.  The BIOS should reenable interrupts if it
939           needs to.  Unfortunately, some BIOSes do not -- especially those in
940           many of the newer IBM Thinkpads.  If you experience hangs when you
941           suspend, try setting this to Y.  Otherwise, say N.
942
943 config APM_REAL_MODE_POWER_OFF
944         bool "Use real mode APM BIOS call to power off"
945         depends on APM
946         help
947           Use real mode APM BIOS calls to switch off the computer. This is
948           a work-around for a number of buggy BIOSes. Switch this option on if
949           your computer crashes instead of powering off properly.
950
951 endmenu
952
953 source "arch/i386/kernel/cpu/cpufreq/Kconfig"
954
955 endmenu
956
957 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
958
959 config PCI
960         bool "PCI support" if !X86_VISWS
961         depends on !X86_VOYAGER
962         default y if X86_VISWS
963         help
964           Find out whether you have a PCI motherboard. PCI is the name of a
965           bus system, i.e. the way the CPU talks to the other stuff inside
966           your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
967           VESA. If you have PCI, say Y, otherwise N.
968
969           The PCI-HOWTO, available from
970           <http://www.tldp.org/docs.html#howto>, contains valuable
971           information about which PCI hardware does work under Linux and which
972           doesn't.
973
974 choice
975         prompt "PCI access mode"
976         depends on PCI && !X86_VISWS
977         default PCI_GOANY
978         ---help---
979           On PCI systems, the BIOS can be used to detect the PCI devices and
980           determine their configuration. However, some old PCI motherboards
981           have BIOS bugs and may crash if this is done. Also, some embedded
982           PCI-based systems don't have any BIOS at all. Linux can also try to
983           detect the PCI hardware directly without using the BIOS.
984
985           With this option, you can specify how Linux should detect the
986           PCI devices. If you choose "BIOS", the BIOS will be used,
987           if you choose "Direct", the BIOS won't be used, and if you
988           choose "MMConfig", then PCI Express MMCONFIG will be used.
989           If you choose "Any", the kernel will try MMCONFIG, then the
990           direct access method and falls back to the BIOS if that doesn't
991           work. If unsure, go with the default, which is "Any".
992
993 config PCI_GOBIOS
994         bool "BIOS"
995         depends on !X86_XEN
996
997 config PCI_GOMMCONFIG
998         bool "MMConfig"
999
1000 config PCI_GODIRECT
1001         bool "Direct"
1002
1003 config PCI_GOXEN_FE
1004         bool "Xen PCI Frontend"
1005         depends on X86_XEN
1006         help
1007           The PCI device frontend driver allows the kernel to import arbitrary
1008           PCI devices from a PCI backend to support PCI driver domains.
1009
1010 config PCI_GOANY
1011         bool "Any"
1012
1013 endchoice
1014
1015 config PCI_BIOS
1016         bool
1017         depends on !(X86_VISWS || X86_XEN) && PCI && (PCI_GOBIOS || PCI_GOANY)
1018         default y
1019
1020 config PCI_DIRECT
1021         bool
1022         depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
1023         default y
1024
1025 config PCI_MMCONFIG
1026         bool
1027         depends on PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY)
1028         default y
1029
1030 config XEN_PCIDEV_FRONTEND
1031         bool
1032         depends on PCI && X86_XEN && (PCI_GOXEN_FE || PCI_GOANY)
1033         default y
1034
1035 config XEN_PCIDEV_FE_DEBUG
1036         bool "Xen PCI Frontend Debugging"
1037         depends on XEN_PCIDEV_FRONTEND
1038         default n
1039         help
1040           Enables some debug statements within the PCI Frontend.
1041
1042 source "drivers/pci/pcie/Kconfig"
1043
1044 source "drivers/pci/Kconfig"
1045
1046 config ISA_DMA_API
1047         bool
1048         default y
1049
1050 config ISA
1051         bool "ISA support"
1052         depends on !(X86_VOYAGER || X86_VISWS || X86_XEN)
1053         help
1054           Find out whether you have ISA slots on your motherboard.  ISA is the
1055           name of a bus system, i.e. the way the CPU talks to the other stuff
1056           inside your box.  Other bus systems are PCI, EISA, MicroChannel
1057           (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
1058           newer boards don't support it.  If you have ISA, say Y, otherwise N.
1059
1060 config EISA
1061         bool "EISA support"
1062         depends on ISA
1063         ---help---
1064           The Extended Industry Standard Architecture (EISA) bus was
1065           developed as an open alternative to the IBM MicroChannel bus.
1066
1067           The EISA bus provided some of the features of the IBM MicroChannel
1068           bus while maintaining backward compatibility with cards made for
1069           the older ISA bus.  The EISA bus saw limited use between 1988 and
1070           1995 when it was made obsolete by the PCI bus.
1071
1072           Say Y here if you are building a kernel for an EISA-based machine.
1073
1074           Otherwise, say N.
1075
1076 source "drivers/eisa/Kconfig"
1077
1078 config MCA
1079         bool "MCA support" if !(X86_VISWS || X86_VOYAGER || X86_XEN)
1080         default y if X86_VOYAGER
1081         help
1082           MicroChannel Architecture is found in some IBM PS/2 machines and
1083           laptops.  It is a bus system similar to PCI or ISA. See
1084           <file:Documentation/mca.txt> (and especially the web page given
1085           there) before attempting to build an MCA bus kernel.
1086
1087 source "drivers/mca/Kconfig"
1088
1089 config SCx200
1090         tristate "NatSemi SCx200 support"
1091         depends on !X86_VOYAGER
1092         help
1093           This provides basic support for the National Semiconductor SCx200
1094           processor.  Right now this is just a driver for the GPIO pins.
1095
1096           If you don't know what to do here, say N.
1097
1098           This support is also available as a module.  If compiled as a
1099           module, it will be called scx200.
1100
1101 source "drivers/pcmcia/Kconfig"
1102
1103 source "drivers/pci/hotplug/Kconfig"
1104
1105 endmenu
1106
1107 menu "Executable file formats"
1108
1109 source "fs/Kconfig.binfmt"
1110
1111 endmenu
1112
1113 source "net/Kconfig"
1114
1115 source "drivers/Kconfig"
1116
1117 source "fs/Kconfig"
1118
1119 menu "Instrumentation Support"
1120         depends on EXPERIMENTAL
1121
1122 source "arch/i386/oprofile/Kconfig"
1123
1124 config KPROBES
1125         bool "Kprobes (EXPERIMENTAL)"
1126         depends on EXPERIMENTAL && MODULES
1127         help
1128           Kprobes allows you to trap at almost any kernel address and
1129           execute a callback function.  register_kprobe() establishes
1130           a probepoint and specifies the callback.  Kprobes is useful
1131           for kernel debugging, non-intrusive instrumentation and testing.
1132           If in doubt, say "N".
1133 endmenu
1134
1135 source "arch/i386/Kconfig.debug"
1136
1137 source "kernel/vserver/Kconfig"
1138
1139 source "security/Kconfig"
1140
1141 source "crypto/Kconfig"
1142
1143 source "drivers/xen/Kconfig"
1144
1145 source "lib/Kconfig"
1146
1147 #
1148 # Use the generic interrupt handling code in kernel/irq/:
1149 #
1150 config GENERIC_HARDIRQS
1151         bool
1152         default y
1153
1154 config GENERIC_IRQ_PROBE
1155         bool
1156         default y
1157
1158 config GENERIC_PENDING_IRQ
1159         bool
1160         depends on GENERIC_HARDIRQS && SMP
1161         default y
1162
1163 config X86_SMP
1164         bool
1165         depends on SMP && !X86_VOYAGER
1166         default y
1167
1168 config X86_HT
1169         bool
1170         depends on SMP && !(X86_VISWS || X86_VOYAGER || X86_XEN)
1171         default y
1172
1173 config X86_BIOS_REBOOT
1174         bool
1175         depends on !(X86_VISWS || X86_VOYAGER)
1176         default y
1177
1178 config X86_TRAMPOLINE
1179         bool
1180         depends on X86_SMP || (X86_VOYAGER && SMP)
1181         default y
1182
1183 config X86_NO_TSS
1184         bool
1185         depends on X86_XEN
1186         default y
1187
1188 config X86_NO_IDT
1189         bool
1190         depends on X86_XEN
1191         default y
1192
1193 config KTIME_SCALAR
1194         bool
1195         default y