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