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