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