Merge branch 'linus' into irq/numa
[safe/jmp/linux-2.6] / 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         select HAVE_AOUT if X86_32
22         select HAVE_READQ
23         select HAVE_WRITEQ
24         select HAVE_UNSTABLE_SCHED_CLOCK
25         select HAVE_IDE
26         select HAVE_OPROFILE
27         select HAVE_IOREMAP_PROT
28         select HAVE_KPROBES
29         select ARCH_WANT_OPTIONAL_GPIOLIB
30         select ARCH_WANT_FRAME_POINTERS
31         select HAVE_KRETPROBES
32         select HAVE_FTRACE_MCOUNT_RECORD
33         select HAVE_DYNAMIC_FTRACE
34         select HAVE_FUNCTION_TRACER
35         select HAVE_FUNCTION_GRAPH_TRACER
36         select HAVE_FUNCTION_TRACE_MCOUNT_TEST
37         select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE
38         select HAVE_FTRACE_SYSCALLS
39         select HAVE_KVM
40         select HAVE_ARCH_KGDB
41         select HAVE_ARCH_TRACEHOOK
42         select HAVE_GENERIC_DMA_COHERENT if X86_32
43         select HAVE_EFFICIENT_UNALIGNED_ACCESS
44         select USER_STACKTRACE_SUPPORT
45         select HAVE_DMA_API_DEBUG
46         select HAVE_KERNEL_GZIP
47         select HAVE_KERNEL_BZIP2
48         select HAVE_KERNEL_LZMA
49
50 config ARCH_DEFCONFIG
51         string
52         default "arch/x86/configs/i386_defconfig" if X86_32
53         default "arch/x86/configs/x86_64_defconfig" if X86_64
54
55 config GENERIC_TIME
56         def_bool y
57
58 config GENERIC_CMOS_UPDATE
59         def_bool y
60
61 config CLOCKSOURCE_WATCHDOG
62         def_bool y
63
64 config GENERIC_CLOCKEVENTS
65         def_bool y
66
67 config GENERIC_CLOCKEVENTS_BROADCAST
68         def_bool y
69         depends on X86_64 || (X86_32 && X86_LOCAL_APIC)
70
71 config LOCKDEP_SUPPORT
72         def_bool y
73
74 config STACKTRACE_SUPPORT
75         def_bool y
76
77 config HAVE_LATENCYTOP_SUPPORT
78         def_bool y
79
80 config FAST_CMPXCHG_LOCAL
81         bool
82         default y
83
84 config MMU
85         def_bool y
86
87 config ZONE_DMA
88         def_bool y
89
90 config SBUS
91         bool
92
93 config GENERIC_ISA_DMA
94         def_bool y
95
96 config GENERIC_IOMAP
97         def_bool y
98
99 config GENERIC_BUG
100         def_bool y
101         depends on BUG
102         select GENERIC_BUG_RELATIVE_POINTERS if X86_64
103
104 config GENERIC_BUG_RELATIVE_POINTERS
105         bool
106
107 config GENERIC_HWEIGHT
108         def_bool y
109
110 config GENERIC_GPIO
111         bool
112
113 config ARCH_MAY_HAVE_PC_FDC
114         def_bool y
115
116 config RWSEM_GENERIC_SPINLOCK
117         def_bool !X86_XADD
118
119 config RWSEM_XCHGADD_ALGORITHM
120         def_bool X86_XADD
121
122 config ARCH_HAS_CPU_IDLE_WAIT
123         def_bool y
124
125 config GENERIC_CALIBRATE_DELAY
126         def_bool y
127
128 config GENERIC_TIME_VSYSCALL
129         bool
130         default X86_64
131
132 config ARCH_HAS_CPU_RELAX
133         def_bool y
134
135 config ARCH_HAS_DEFAULT_IDLE
136         def_bool y
137
138 config ARCH_HAS_CACHE_LINE_SIZE
139         def_bool y
140
141 config HAVE_SETUP_PER_CPU_AREA
142         def_bool y
143
144 config HAVE_DYNAMIC_PER_CPU_AREA
145         def_bool y
146
147 config HAVE_CPUMASK_OF_CPU_MAP
148         def_bool X86_64_SMP
149
150 config ARCH_HIBERNATION_POSSIBLE
151         def_bool y
152
153 config ARCH_SUSPEND_POSSIBLE
154         def_bool y
155
156 config ZONE_DMA32
157         bool
158         default X86_64
159
160 config ARCH_POPULATES_NODE_MAP
161         def_bool y
162
163 config AUDIT_ARCH
164         bool
165         default X86_64
166
167 config ARCH_SUPPORTS_OPTIMIZED_INLINING
168         def_bool y
169
170 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
171         def_bool y
172
173 # Use the generic interrupt handling code in kernel/irq/:
174 config GENERIC_HARDIRQS
175         bool
176         default y
177
178 config GENERIC_HARDIRQS_NO__DO_IRQ
179        def_bool y
180
181 config GENERIC_IRQ_PROBE
182         bool
183         default y
184
185 config GENERIC_PENDING_IRQ
186         bool
187         depends on GENERIC_HARDIRQS && SMP
188         default y
189
190 config USE_GENERIC_SMP_HELPERS
191         def_bool y
192         depends on SMP
193
194 config X86_32_SMP
195         def_bool y
196         depends on X86_32 && SMP
197
198 config X86_64_SMP
199         def_bool y
200         depends on X86_64 && SMP
201
202 config X86_HT
203         bool
204         depends on SMP
205         default y
206
207 config X86_TRAMPOLINE
208         bool
209         depends on SMP || (64BIT && ACPI_SLEEP)
210         default y
211
212 config X86_32_LAZY_GS
213         def_bool y
214         depends on X86_32 && !CC_STACKPROTECTOR
215
216 config KTIME_SCALAR
217         def_bool X86_32
218 source "init/Kconfig"
219 source "kernel/Kconfig.freezer"
220
221 menu "Processor type and features"
222
223 source "kernel/time/Kconfig"
224
225 config SMP
226         bool "Symmetric multi-processing support"
227         ---help---
228           This enables support for systems with more than one CPU. If you have
229           a system with only one CPU, like most personal computers, say N. If
230           you have a system with more than one CPU, say Y.
231
232           If you say N here, the kernel will run on single and multiprocessor
233           machines, but will use only one CPU of a multiprocessor machine. If
234           you say Y here, the kernel will run on many, but not all,
235           singleprocessor machines. On a singleprocessor machine, the kernel
236           will run faster if you say N here.
237
238           Note that if you say Y here and choose architecture "586" or
239           "Pentium" under "Processor family", the kernel will not work on 486
240           architectures. Similarly, multiprocessor kernels for the "PPro"
241           architecture may not work on all Pentium based boards.
242
243           People using multiprocessor machines who say Y here should also say
244           Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
245           Management" code will be disabled if you say Y here.
246
247           See also <file:Documentation/i386/IO-APIC.txt>,
248           <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
249           <http://www.tldp.org/docs.html#howto>.
250
251           If you don't know what to do here, say N.
252
253 config X86_X2APIC
254         bool "Support x2apic"
255         depends on X86_LOCAL_APIC && X86_64 && INTR_REMAP
256         ---help---
257           This enables x2apic support on CPUs that have this feature.
258
259           This allows 32-bit apic IDs (so it can support very large systems),
260           and accesses the local apic via MSRs not via mmio.
261
262           If you don't know what to do here, say N.
263
264 config SPARSE_IRQ
265         bool "Support sparse irq numbering"
266         depends on PCI_MSI || HT_IRQ
267         ---help---
268           This enables support for sparse irqs. This is useful for distro
269           kernels that want to define a high CONFIG_NR_CPUS value but still
270           want to have low kernel memory footprint on smaller machines.
271
272           ( Sparse IRQs can also be beneficial on NUMA boxes, as they spread
273             out the irq_desc[] array in a more NUMA-friendly way. )
274
275           If you don't know what to do here, say N.
276
277 config NUMA_IRQ_DESC
278         def_bool y
279         depends on SPARSE_IRQ && NUMA
280
281 config X86_MPPARSE
282         bool "Enable MPS table" if ACPI
283         default y
284         depends on X86_LOCAL_APIC
285         ---help---
286           For old smp systems that do not have proper acpi support. Newer systems
287           (esp with 64bit cpus) with acpi support, MADT and DSDT will override it
288
289 config X86_BIGSMP
290         bool "Support for big SMP systems with more than 8 CPUs"
291         depends on X86_32 && SMP
292         ---help---
293           This option is needed for the systems that have more than 8 CPUs
294
295 if X86_32
296 config X86_EXTENDED_PLATFORM
297         bool "Support for extended (non-PC) x86 platforms"
298         default y
299         ---help---
300           If you disable this option then the kernel will only support
301           standard PC platforms. (which covers the vast majority of
302           systems out there.)
303
304           If you enable this option then you'll be able to select support
305           for the following (non-PC) 32 bit x86 platforms:
306                 AMD Elan
307                 NUMAQ (IBM/Sequent)
308                 RDC R-321x SoC
309                 SGI 320/540 (Visual Workstation)
310                 Summit/EXA (IBM x440)
311                 Unisys ES7000 IA32 series
312
313           If you have one of these systems, or if you want to build a
314           generic distribution kernel, say Y here - otherwise say N.
315 endif
316
317 if X86_64
318 config X86_EXTENDED_PLATFORM
319         bool "Support for extended (non-PC) x86 platforms"
320         default y
321         ---help---
322           If you disable this option then the kernel will only support
323           standard PC platforms. (which covers the vast majority of
324           systems out there.)
325
326           If you enable this option then you'll be able to select support
327           for the following (non-PC) 64 bit x86 platforms:
328                 ScaleMP vSMP
329                 SGI Ultraviolet
330
331           If you have one of these systems, or if you want to build a
332           generic distribution kernel, say Y here - otherwise say N.
333 endif
334 # This is an alphabetically sorted list of 64 bit extended platforms
335 # Please maintain the alphabetic order if and when there are additions
336
337 config X86_VSMP
338         bool "ScaleMP vSMP"
339         select PARAVIRT
340         depends on X86_64 && PCI
341         depends on X86_EXTENDED_PLATFORM
342         ---help---
343           Support for ScaleMP vSMP systems.  Say 'Y' here if this kernel is
344           supposed to run on these EM64T-based machines.  Only choose this option
345           if you have one of these machines.
346
347 config X86_UV
348         bool "SGI Ultraviolet"
349         depends on X86_64
350         depends on X86_EXTENDED_PLATFORM
351         depends on NUMA
352         depends on X86_X2APIC
353         ---help---
354           This option is needed in order to support SGI Ultraviolet systems.
355           If you don't have one of these, you should say N here.
356
357 # Following is an alphabetically sorted list of 32 bit extended platforms
358 # Please maintain the alphabetic order if and when there are additions
359
360 config X86_ELAN
361         bool "AMD Elan"
362         depends on X86_32
363         depends on X86_EXTENDED_PLATFORM
364         ---help---
365           Select this for an AMD Elan processor.
366
367           Do not use this option for K6/Athlon/Opteron processors!
368
369           If unsure, choose "PC-compatible" instead.
370
371 config X86_RDC321X
372         bool "RDC R-321x SoC"
373         depends on X86_32
374         depends on X86_EXTENDED_PLATFORM
375         select M486
376         select X86_REBOOTFIXUPS
377         ---help---
378           This option is needed for RDC R-321x system-on-chip, also known
379           as R-8610-(G).
380           If you don't have one of these chips, you should say N here.
381
382 config X86_32_NON_STANDARD
383         bool "Support non-standard 32-bit SMP architectures"
384         depends on X86_32 && SMP
385         depends on X86_EXTENDED_PLATFORM
386         ---help---
387           This option compiles in the NUMAQ, Summit, bigsmp, ES7000, default
388           subarchitectures.  It is intended for a generic binary kernel.
389           if you select them all, kernel will probe it one by one. and will
390           fallback to default.
391
392 # Alphabetically sorted list of Non standard 32 bit platforms
393
394 config X86_NUMAQ
395         bool "NUMAQ (IBM/Sequent)"
396         depends on X86_32_NON_STANDARD
397         select NUMA
398         select X86_MPPARSE
399         ---help---
400           This option is used for getting Linux to run on a NUMAQ (IBM/Sequent)
401           NUMA multiquad box. This changes the way that processors are
402           bootstrapped, and uses Clustered Logical APIC addressing mode instead
403           of Flat Logical.  You will need a new lynxer.elf file to flash your
404           firmware with - send email to <Martin.Bligh@us.ibm.com>.
405
406 config X86_VISWS
407         bool "SGI 320/540 (Visual Workstation)"
408         depends on X86_32 && PCI && X86_MPPARSE && PCI_GODIRECT
409         depends on X86_32_NON_STANDARD
410         ---help---
411           The SGI Visual Workstation series is an IA32-based workstation
412           based on SGI systems chips with some legacy PC hardware attached.
413
414           Say Y here to create a kernel to run on the SGI 320 or 540.
415
416           A kernel compiled for the Visual Workstation will run on general
417           PCs as well. See <file:Documentation/sgi-visws.txt> for details.
418
419 config X86_SUMMIT
420         bool "Summit/EXA (IBM x440)"
421         depends on X86_32_NON_STANDARD
422         ---help---
423           This option is needed for IBM systems that use the Summit/EXA chipset.
424           In particular, it is needed for the x440.
425
426 config X86_ES7000
427         bool "Unisys ES7000 IA32 series"
428         depends on X86_32_NON_STANDARD && X86_BIGSMP
429         ---help---
430           Support for Unisys ES7000 systems.  Say 'Y' here if this kernel is
431           supposed to run on an IA32-based Unisys ES7000 system.
432
433 config SCHED_OMIT_FRAME_POINTER
434         def_bool y
435         prompt "Single-depth WCHAN output"
436         depends on X86
437         ---help---
438           Calculate simpler /proc/<PID>/wchan values. If this option
439           is disabled then wchan values will recurse back to the
440           caller function. This provides more accurate wchan values,
441           at the expense of slightly more scheduling overhead.
442
443           If in doubt, say "Y".
444
445 menuconfig PARAVIRT_GUEST
446         bool "Paravirtualized guest support"
447         ---help---
448           Say Y here to get to see options related to running Linux under
449           various hypervisors.  This option alone does not add any kernel code.
450
451           If you say N, all options in this submenu will be skipped and disabled.
452
453 if PARAVIRT_GUEST
454
455 source "arch/x86/xen/Kconfig"
456
457 config VMI
458         bool "VMI Guest support"
459         select PARAVIRT
460         depends on X86_32
461         ---help---
462           VMI provides a paravirtualized interface to the VMware ESX server
463           (it could be used by other hypervisors in theory too, but is not
464           at the moment), by linking the kernel to a GPL-ed ROM module
465           provided by the hypervisor.
466
467 config KVM_CLOCK
468         bool "KVM paravirtualized clock"
469         select PARAVIRT
470         select PARAVIRT_CLOCK
471         ---help---
472           Turning on this option will allow you to run a paravirtualized clock
473           when running over the KVM hypervisor. Instead of relying on a PIT
474           (or probably other) emulation by the underlying device model, the host
475           provides the guest with timing infrastructure such as time of day, and
476           system time
477
478 config KVM_GUEST
479         bool "KVM Guest support"
480         select PARAVIRT
481         ---help---
482           This option enables various optimizations for running under the KVM
483           hypervisor.
484
485 source "arch/x86/lguest/Kconfig"
486
487 config PARAVIRT
488         bool "Enable paravirtualization code"
489         ---help---
490           This changes the kernel so it can modify itself when it is run
491           under a hypervisor, potentially improving performance significantly
492           over full virtualization.  However, when run without a hypervisor
493           the kernel is theoretically slower and slightly larger.
494
495 config PARAVIRT_SPINLOCKS
496         bool "Paravirtualization layer for spinlocks"
497         depends on PARAVIRT && SMP && EXPERIMENTAL
498         ---help---
499           Paravirtualized spinlocks allow a pvops backend to replace the
500           spinlock implementation with something virtualization-friendly
501           (for example, block the virtual CPU rather than spinning).
502
503           Unfortunately the downside is an up to 5% performance hit on
504           native kernels, with various workloads.
505
506           If you are unsure how to answer this question, answer N.
507
508 config PARAVIRT_CLOCK
509         bool
510         default n
511
512 endif
513
514 config PARAVIRT_DEBUG
515         bool "paravirt-ops debugging"
516         depends on PARAVIRT && DEBUG_KERNEL
517         ---help---
518           Enable to debug paravirt_ops internals.  Specifically, BUG if
519           a paravirt_op is missing when it is called.
520
521 config MEMTEST
522         bool "Memtest"
523         ---help---
524           This option adds a kernel parameter 'memtest', which allows memtest
525           to be set.
526                 memtest=0, mean disabled; -- default
527                 memtest=1, mean do 1 test pattern;
528                 ...
529                 memtest=4, mean do 4 test patterns.
530           If you are unsure how to answer this question, answer N.
531
532 config X86_SUMMIT_NUMA
533         def_bool y
534         depends on X86_32 && NUMA && X86_32_NON_STANDARD
535
536 config X86_CYCLONE_TIMER
537         def_bool y
538         depends on X86_32_NON_STANDARD
539
540 source "arch/x86/Kconfig.cpu"
541
542 config HPET_TIMER
543         def_bool X86_64
544         prompt "HPET Timer Support" if X86_32
545         ---help---
546           Use the IA-PC HPET (High Precision Event Timer) to manage
547           time in preference to the PIT and RTC, if a HPET is
548           present.
549           HPET is the next generation timer replacing legacy 8254s.
550           The HPET provides a stable time base on SMP
551           systems, unlike the TSC, but it is more expensive to access,
552           as it is off-chip.  You can find the HPET spec at
553           <http://www.intel.com/hardwaredesign/hpetspec_1.pdf>.
554
555           You can safely choose Y here.  However, HPET will only be
556           activated if the platform and the BIOS support this feature.
557           Otherwise the 8254 will be used for timing services.
558
559           Choose N to continue using the legacy 8254 timer.
560
561 config HPET_EMULATE_RTC
562         def_bool y
563         depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y)
564
565 # Mark as embedded because too many people got it wrong.
566 # The code disables itself when not needed.
567 config DMI
568         default y
569         bool "Enable DMI scanning" if EMBEDDED
570         ---help---
571           Enabled scanning of DMI to identify machine quirks. Say Y
572           here unless you have verified that your setup is not
573           affected by entries in the DMI blacklist. Required by PNP
574           BIOS code.
575
576 config GART_IOMMU
577         bool "GART IOMMU support" if EMBEDDED
578         default y
579         select SWIOTLB
580         select AGP
581         depends on X86_64 && PCI
582         ---help---
583           Support for full DMA access of devices with 32bit memory access only
584           on systems with more than 3GB. This is usually needed for USB,
585           sound, many IDE/SATA chipsets and some other devices.
586           Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
587           based hardware IOMMU and a software bounce buffer based IOMMU used
588           on Intel systems and as fallback.
589           The code is only active when needed (enough memory and limited
590           device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
591           too.
592
593 config CALGARY_IOMMU
594         bool "IBM Calgary IOMMU support"
595         select SWIOTLB
596         depends on X86_64 && PCI && EXPERIMENTAL
597         ---help---
598           Support for hardware IOMMUs in IBM's xSeries x366 and x460
599           systems. Needed to run systems with more than 3GB of memory
600           properly with 32-bit PCI devices that do not support DAC
601           (Double Address Cycle). Calgary also supports bus level
602           isolation, where all DMAs pass through the IOMMU.  This
603           prevents them from going anywhere except their intended
604           destination. This catches hard-to-find kernel bugs and
605           mis-behaving drivers and devices that do not use the DMA-API
606           properly to set up their DMA buffers.  The IOMMU can be
607           turned off at boot time with the iommu=off parameter.
608           Normally the kernel will make the right choice by itself.
609           If unsure, say Y.
610
611 config CALGARY_IOMMU_ENABLED_BY_DEFAULT
612         def_bool y
613         prompt "Should Calgary be enabled by default?"
614         depends on CALGARY_IOMMU
615         ---help---
616           Should Calgary be enabled by default? if you choose 'y', Calgary
617           will be used (if it exists). If you choose 'n', Calgary will not be
618           used even if it exists. If you choose 'n' and would like to use
619           Calgary anyway, pass 'iommu=calgary' on the kernel command line.
620           If unsure, say Y.
621
622 config AMD_IOMMU
623         bool "AMD IOMMU support"
624         select SWIOTLB
625         select PCI_MSI
626         depends on X86_64 && PCI && ACPI
627         ---help---
628           With this option you can enable support for AMD IOMMU hardware in
629           your system. An IOMMU is a hardware component which provides
630           remapping of DMA memory accesses from devices. With an AMD IOMMU you
631           can isolate the the DMA memory of different devices and protect the
632           system from misbehaving device drivers or hardware.
633
634           You can find out if your system has an AMD IOMMU if you look into
635           your BIOS for an option to enable it or if you have an IVRS ACPI
636           table.
637
638 config AMD_IOMMU_STATS
639         bool "Export AMD IOMMU statistics to debugfs"
640         depends on AMD_IOMMU
641         select DEBUG_FS
642         ---help---
643           This option enables code in the AMD IOMMU driver to collect various
644           statistics about whats happening in the driver and exports that
645           information to userspace via debugfs.
646           If unsure, say N.
647
648 # need this always selected by IOMMU for the VIA workaround
649 config SWIOTLB
650         def_bool y if X86_64
651         ---help---
652           Support for software bounce buffers used on x86-64 systems
653           which don't have a hardware IOMMU (e.g. the current generation
654           of Intel's x86-64 CPUs). Using this PCI devices which can only
655           access 32-bits of memory can be used on systems with more than
656           3 GB of memory. If unsure, say Y.
657
658 config IOMMU_HELPER
659         def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU)
660
661 config IOMMU_API
662         def_bool (AMD_IOMMU || DMAR)
663
664 config MAXSMP
665         bool "Configure Maximum number of SMP Processors and NUMA Nodes"
666         depends on X86_64 && SMP && DEBUG_KERNEL && EXPERIMENTAL
667         select CPUMASK_OFFSTACK
668         default n
669         ---help---
670           Configure maximum number of CPUS and NUMA Nodes for this architecture.
671           If unsure, say N.
672
673 config NR_CPUS
674         int "Maximum number of CPUs" if SMP && !MAXSMP
675         range 2 8 if SMP && X86_32 && !X86_BIGSMP
676         range 2 512 if SMP && !MAXSMP
677         default "1" if !SMP
678         default "4096" if MAXSMP
679         default "32" if SMP && (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000)
680         default "8" if SMP
681         ---help---
682           This allows you to specify the maximum number of CPUs which this
683           kernel will support.  The maximum supported value is 512 and the
684           minimum value which makes sense is 2.
685
686           This is purely to save memory - each supported CPU adds
687           approximately eight kilobytes to the kernel image.
688
689 config SCHED_SMT
690         bool "SMT (Hyperthreading) scheduler support"
691         depends on X86_HT
692         ---help---
693           SMT scheduler support improves the CPU scheduler's decision making
694           when dealing with Intel Pentium 4 chips with HyperThreading at a
695           cost of slightly increased overhead in some places. If unsure say
696           N here.
697
698 config SCHED_MC
699         def_bool y
700         prompt "Multi-core scheduler support"
701         depends on X86_HT
702         ---help---
703           Multi-core scheduler support improves the CPU scheduler's decision
704           making when dealing with multi-core CPU chips at a cost of slightly
705           increased overhead in some places. If unsure say N here.
706
707 source "kernel/Kconfig.preempt"
708
709 config X86_UP_APIC
710         bool "Local APIC support on uniprocessors"
711         depends on X86_32 && !SMP && !X86_32_NON_STANDARD
712         ---help---
713           A local APIC (Advanced Programmable Interrupt Controller) is an
714           integrated interrupt controller in the CPU. If you have a single-CPU
715           system which has a processor with a local APIC, you can say Y here to
716           enable and use it. If you say Y here even though your machine doesn't
717           have a local APIC, then the kernel will still run with no slowdown at
718           all. The local APIC supports CPU-generated self-interrupts (timer,
719           performance counters), and the NMI watchdog which detects hard
720           lockups.
721
722 config X86_UP_IOAPIC
723         bool "IO-APIC support on uniprocessors"
724         depends on X86_UP_APIC
725         ---help---
726           An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
727           SMP-capable replacement for PC-style interrupt controllers. Most
728           SMP systems and many recent uniprocessor systems have one.
729
730           If you have a single-CPU system with an IO-APIC, you can say Y here
731           to use it. If you say Y here even though your machine doesn't have
732           an IO-APIC, then the kernel will still run with no slowdown at all.
733
734 config X86_LOCAL_APIC
735         def_bool y
736         depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC
737
738 config X86_IO_APIC
739         def_bool y
740         depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC
741
742 config X86_VISWS_APIC
743         def_bool y
744         depends on X86_32 && X86_VISWS
745
746 config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
747         bool "Reroute for broken boot IRQs"
748         default n
749         depends on X86_IO_APIC
750         ---help---
751           This option enables a workaround that fixes a source of
752           spurious interrupts. This is recommended when threaded
753           interrupt handling is used on systems where the generation of
754           superfluous "boot interrupts" cannot be disabled.
755
756           Some chipsets generate a legacy INTx "boot IRQ" when the IRQ
757           entry in the chipset's IO-APIC is masked (as, e.g. the RT
758           kernel does during interrupt handling). On chipsets where this
759           boot IRQ generation cannot be disabled, this workaround keeps
760           the original IRQ line masked so that only the equivalent "boot
761           IRQ" is delivered to the CPUs. The workaround also tells the
762           kernel to set up the IRQ handler on the boot IRQ line. In this
763           way only one interrupt is delivered to the kernel. Otherwise
764           the spurious second interrupt may cause the kernel to bring
765           down (vital) interrupt lines.
766
767           Only affects "broken" chipsets. Interrupt sharing may be
768           increased on these systems.
769
770 config X86_MCE
771         bool "Machine Check Exception"
772         ---help---
773           Machine Check Exception support allows the processor to notify the
774           kernel if it detects a problem (e.g. overheating, component failure).
775           The action the kernel takes depends on the severity of the problem,
776           ranging from a warning message on the console, to halting the machine.
777           Your processor must be a Pentium or newer to support this - check the
778           flags in /proc/cpuinfo for mce.  Note that some older Pentium systems
779           have a design flaw which leads to false MCE events - hence MCE is
780           disabled on all P5 processors, unless explicitly enabled with "mce"
781           as a boot argument.  Similarly, if MCE is built in and creates a
782           problem on some new non-standard machine, you can boot with "nomce"
783           to disable it.  MCE support simply ignores non-MCE processors like
784           the 386 and 486, so nearly everyone can say Y here.
785
786 config X86_MCE_INTEL
787         def_bool y
788         prompt "Intel MCE features"
789         depends on X86_64 && X86_MCE && X86_LOCAL_APIC
790         ---help---
791            Additional support for intel specific MCE features such as
792            the thermal monitor.
793
794 config X86_MCE_AMD
795         def_bool y
796         prompt "AMD MCE features"
797         depends on X86_64 && X86_MCE && X86_LOCAL_APIC
798         ---help---
799            Additional support for AMD specific MCE features such as
800            the DRAM Error Threshold.
801
802 config X86_MCE_THRESHOLD
803         depends on X86_MCE_AMD || X86_MCE_INTEL
804         bool
805         default y
806
807 config X86_MCE_NONFATAL
808         tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
809         depends on X86_32 && X86_MCE
810         ---help---
811           Enabling this feature starts a timer that triggers every 5 seconds which
812           will look at the machine check registers to see if anything happened.
813           Non-fatal problems automatically get corrected (but still logged).
814           Disable this if you don't want to see these messages.
815           Seeing the messages this option prints out may be indicative of dying
816           or out-of-spec (ie, overclocked) hardware.
817           This option only does something on certain CPUs.
818           (AMD Athlon/Duron and Intel Pentium 4)
819
820 config X86_MCE_P4THERMAL
821         bool "check for P4 thermal throttling interrupt."
822         depends on X86_32 && X86_MCE && (X86_UP_APIC || SMP)
823         ---help---
824           Enabling this feature will cause a message to be printed when the P4
825           enters thermal throttling.
826
827 config VM86
828         bool "Enable VM86 support" if EMBEDDED
829         default y
830         depends on X86_32
831         ---help---
832           This option is required by programs like DOSEMU to run 16-bit legacy
833           code on X86 processors. It also may be needed by software like
834           XFree86 to initialize some video cards via BIOS. Disabling this
835           option saves about 6k.
836
837 config TOSHIBA
838         tristate "Toshiba Laptop support"
839         depends on X86_32
840         ---help---
841           This adds a driver to safely access the System Management Mode of
842           the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
843           not work on models with a Phoenix BIOS. The System Management Mode
844           is used to set the BIOS and power saving options on Toshiba portables.
845
846           For information on utilities to make use of this driver see the
847           Toshiba Linux utilities web site at:
848           <http://www.buzzard.org.uk/toshiba/>.
849
850           Say Y if you intend to run this kernel on a Toshiba portable.
851           Say N otherwise.
852
853 config I8K
854         tristate "Dell laptop support"
855         ---help---
856           This adds a driver to safely access the System Management Mode
857           of the CPU on the Dell Inspiron 8000. The System Management Mode
858           is used to read cpu temperature and cooling fan status and to
859           control the fans on the I8K portables.
860
861           This driver has been tested only on the Inspiron 8000 but it may
862           also work with other Dell laptops. You can force loading on other
863           models by passing the parameter `force=1' to the module. Use at
864           your own risk.
865
866           For information on utilities to make use of this driver see the
867           I8K Linux utilities web site at:
868           <http://people.debian.org/~dz/i8k/>
869
870           Say Y if you intend to run this kernel on a Dell Inspiron 8000.
871           Say N otherwise.
872
873 config X86_REBOOTFIXUPS
874         bool "Enable X86 board specific fixups for reboot"
875         depends on X86_32
876         ---help---
877           This enables chipset and/or board specific fixups to be done
878           in order to get reboot to work correctly. This is only needed on
879           some combinations of hardware and BIOS. The symptom, for which
880           this config is intended, is when reboot ends with a stalled/hung
881           system.
882
883           Currently, the only fixup is for the Geode machines using
884           CS5530A and CS5536 chipsets and the RDC R-321x SoC.
885
886           Say Y if you want to enable the fixup. Currently, it's safe to
887           enable this option even if you don't need it.
888           Say N otherwise.
889
890 config MICROCODE
891         tristate "/dev/cpu/microcode - microcode support"
892         select FW_LOADER
893         ---help---
894           If you say Y here, you will be able to update the microcode on
895           certain Intel and AMD processors. The Intel support is for the
896           IA32 family, e.g. Pentium Pro, Pentium II, Pentium III,
897           Pentium 4, Xeon etc. The AMD support is for family 0x10 and
898           0x11 processors, e.g. Opteron, Phenom and Turion 64 Ultra.
899           You will obviously need the actual microcode binary data itself
900           which is not shipped with the Linux kernel.
901
902           This option selects the general module only, you need to select
903           at least one vendor specific module as well.
904
905           To compile this driver as a module, choose M here: the
906           module will be called microcode.
907
908 config MICROCODE_INTEL
909         bool "Intel microcode patch loading support"
910         depends on MICROCODE
911         default MICROCODE
912         select FW_LOADER
913         ---help---
914           This options enables microcode patch loading support for Intel
915           processors.
916
917           For latest news and information on obtaining all the required
918           Intel ingredients for this driver, check:
919           <http://www.urbanmyth.org/microcode/>.
920
921 config MICROCODE_AMD
922         bool "AMD microcode patch loading support"
923         depends on MICROCODE
924         select FW_LOADER
925         ---help---
926           If you select this option, microcode patch loading support for AMD
927           processors will be enabled.
928
929 config MICROCODE_OLD_INTERFACE
930         def_bool y
931         depends on MICROCODE
932
933 config X86_MSR
934         tristate "/dev/cpu/*/msr - Model-specific register support"
935         ---help---
936           This device gives privileged processes access to the x86
937           Model-Specific Registers (MSRs).  It is a character device with
938           major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
939           MSR accesses are directed to a specific CPU on multi-processor
940           systems.
941
942 config X86_CPUID
943         tristate "/dev/cpu/*/cpuid - CPU information support"
944         ---help---
945           This device gives processes access to the x86 CPUID instruction to
946           be executed on a specific processor.  It is a character device
947           with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
948           /dev/cpu/31/cpuid.
949
950 config X86_CPU_DEBUG
951         tristate "/sys/kernel/debug/x86/cpu/* - CPU Debug support"
952         ---help---
953           If you select this option, this will provide various x86 CPUs
954           information through debugfs.
955
956 choice
957         prompt "High Memory Support"
958         default HIGHMEM4G if !X86_NUMAQ
959         default HIGHMEM64G if X86_NUMAQ
960         depends on X86_32
961
962 config NOHIGHMEM
963         bool "off"
964         depends on !X86_NUMAQ
965         ---help---
966           Linux can use up to 64 Gigabytes of physical memory on x86 systems.
967           However, the address space of 32-bit x86 processors is only 4
968           Gigabytes large. That means that, if you have a large amount of
969           physical memory, not all of it can be "permanently mapped" by the
970           kernel. The physical memory that's not permanently mapped is called
971           "high memory".
972
973           If you are compiling a kernel which will never run on a machine with
974           more than 1 Gigabyte total physical RAM, answer "off" here (default
975           choice and suitable for most users). This will result in a "3GB/1GB"
976           split: 3GB are mapped so that each process sees a 3GB virtual memory
977           space and the remaining part of the 4GB virtual memory space is used
978           by the kernel to permanently map as much physical memory as
979           possible.
980
981           If the machine has between 1 and 4 Gigabytes physical RAM, then
982           answer "4GB" here.
983
984           If more than 4 Gigabytes is used then answer "64GB" here. This
985           selection turns Intel PAE (Physical Address Extension) mode on.
986           PAE implements 3-level paging on IA32 processors. PAE is fully
987           supported by Linux, PAE mode is implemented on all recent Intel
988           processors (Pentium Pro and better). NOTE: If you say "64GB" here,
989           then the kernel will not boot on CPUs that don't support PAE!
990
991           The actual amount of total physical memory will either be
992           auto detected or can be forced by using a kernel command line option
993           such as "mem=256M". (Try "man bootparam" or see the documentation of
994           your boot loader (lilo or loadlin) about how to pass options to the
995           kernel at boot time.)
996
997           If unsure, say "off".
998
999 config HIGHMEM4G
1000         bool "4GB"
1001         depends on !X86_NUMAQ
1002         ---help---
1003           Select this if you have a 32-bit processor and between 1 and 4
1004           gigabytes of physical RAM.
1005
1006 config HIGHMEM64G
1007         bool "64GB"
1008         depends on !M386 && !M486
1009         select X86_PAE
1010         ---help---
1011           Select this if you have a 32-bit processor and more than 4
1012           gigabytes of physical RAM.
1013
1014 endchoice
1015
1016 choice
1017         depends on EXPERIMENTAL
1018         prompt "Memory split" if EMBEDDED
1019         default VMSPLIT_3G
1020         depends on X86_32
1021         ---help---
1022           Select the desired split between kernel and user memory.
1023
1024           If the address range available to the kernel is less than the
1025           physical memory installed, the remaining memory will be available
1026           as "high memory". Accessing high memory is a little more costly
1027           than low memory, as it needs to be mapped into the kernel first.
1028           Note that increasing the kernel address space limits the range
1029           available to user programs, making the address space there
1030           tighter.  Selecting anything other than the default 3G/1G split
1031           will also likely make your kernel incompatible with binary-only
1032           kernel modules.
1033
1034           If you are not absolutely sure what you are doing, leave this
1035           option alone!
1036
1037         config VMSPLIT_3G
1038                 bool "3G/1G user/kernel split"
1039         config VMSPLIT_3G_OPT
1040                 depends on !X86_PAE
1041                 bool "3G/1G user/kernel split (for full 1G low memory)"
1042         config VMSPLIT_2G
1043                 bool "2G/2G user/kernel split"
1044         config VMSPLIT_2G_OPT
1045                 depends on !X86_PAE
1046                 bool "2G/2G user/kernel split (for full 2G low memory)"
1047         config VMSPLIT_1G
1048                 bool "1G/3G user/kernel split"
1049 endchoice
1050
1051 config PAGE_OFFSET
1052         hex
1053         default 0xB0000000 if VMSPLIT_3G_OPT
1054         default 0x80000000 if VMSPLIT_2G
1055         default 0x78000000 if VMSPLIT_2G_OPT
1056         default 0x40000000 if VMSPLIT_1G
1057         default 0xC0000000
1058         depends on X86_32
1059
1060 config HIGHMEM
1061         def_bool y
1062         depends on X86_32 && (HIGHMEM64G || HIGHMEM4G)
1063
1064 config X86_PAE
1065         bool "PAE (Physical Address Extension) Support"
1066         depends on X86_32 && !HIGHMEM4G
1067         ---help---
1068           PAE is required for NX support, and furthermore enables
1069           larger swapspace support for non-overcommit purposes. It
1070           has the cost of more pagetable lookup overhead, and also
1071           consumes more pagetable space per process.
1072
1073 config ARCH_PHYS_ADDR_T_64BIT
1074         def_bool X86_64 || X86_PAE
1075
1076 config DIRECT_GBPAGES
1077         bool "Enable 1GB pages for kernel pagetables" if EMBEDDED
1078         default y
1079         depends on X86_64
1080         ---help---
1081           Allow the kernel linear mapping to use 1GB pages on CPUs that
1082           support it. This can improve the kernel's performance a tiny bit by
1083           reducing TLB pressure. If in doubt, say "Y".
1084
1085 # Common NUMA Features
1086 config NUMA
1087         bool "Numa Memory Allocation and Scheduler Support"
1088         depends on SMP
1089         depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL)
1090         default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP)
1091         ---help---
1092           Enable NUMA (Non Uniform Memory Access) support.
1093
1094           The kernel will try to allocate memory used by a CPU on the
1095           local memory controller of the CPU and add some more
1096           NUMA awareness to the kernel.
1097
1098           For 64-bit this is recommended if the system is Intel Core i7
1099           (or later), AMD Opteron, or EM64T NUMA.
1100
1101           For 32-bit this is only needed on (rare) 32-bit-only platforms
1102           that support NUMA topologies, such as NUMAQ / Summit, or if you
1103           boot a 32-bit kernel on a 64-bit NUMA platform.
1104
1105           Otherwise, you should say N.
1106
1107 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
1108         depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI)
1109
1110 config K8_NUMA
1111         def_bool y
1112         prompt "Old style AMD Opteron NUMA detection"
1113         depends on X86_64 && NUMA && PCI
1114         ---help---
1115           Enable K8 NUMA node topology detection.  You should say Y here if
1116           you have a multi processor AMD K8 system. This uses an old
1117           method to read the NUMA configuration directly from the builtin
1118           Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
1119           instead, which also takes priority if both are compiled in.
1120
1121 config X86_64_ACPI_NUMA
1122         def_bool y
1123         prompt "ACPI NUMA detection"
1124         depends on X86_64 && NUMA && ACPI && PCI
1125         select ACPI_NUMA
1126         ---help---
1127           Enable ACPI SRAT based node topology detection.
1128
1129 # Some NUMA nodes have memory ranges that span
1130 # other nodes.  Even though a pfn is valid and
1131 # between a node's start and end pfns, it may not
1132 # reside on that node.  See memmap_init_zone()
1133 # for details.
1134 config NODES_SPAN_OTHER_NODES
1135         def_bool y
1136         depends on X86_64_ACPI_NUMA
1137
1138 config NUMA_EMU
1139         bool "NUMA emulation"
1140         depends on X86_64 && NUMA
1141         ---help---
1142           Enable NUMA emulation. A flat machine will be split
1143           into virtual nodes when booted with "numa=fake=N", where N is the
1144           number of nodes. This is only useful for debugging.
1145
1146 config NODES_SHIFT
1147         int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP
1148         range 1 9
1149         default "9" if MAXSMP
1150         default "6" if X86_64
1151         default "4" if X86_NUMAQ
1152         default "3"
1153         depends on NEED_MULTIPLE_NODES
1154         ---help---
1155           Specify the maximum number of NUMA Nodes available on the target
1156           system.  Increases memory reserved to accommodate various tables.
1157
1158 config HAVE_ARCH_BOOTMEM
1159         def_bool y
1160         depends on X86_32 && NUMA
1161
1162 config ARCH_HAVE_MEMORY_PRESENT
1163         def_bool y
1164         depends on X86_32 && DISCONTIGMEM
1165
1166 config NEED_NODE_MEMMAP_SIZE
1167         def_bool y
1168         depends on X86_32 && (DISCONTIGMEM || SPARSEMEM)
1169
1170 config HAVE_ARCH_ALLOC_REMAP
1171         def_bool y
1172         depends on X86_32 && NUMA
1173
1174 config ARCH_FLATMEM_ENABLE
1175         def_bool y
1176         depends on X86_32 && ARCH_SELECT_MEMORY_MODEL && !NUMA
1177
1178 config ARCH_DISCONTIGMEM_ENABLE
1179         def_bool y
1180         depends on NUMA && X86_32
1181
1182 config ARCH_DISCONTIGMEM_DEFAULT
1183         def_bool y
1184         depends on NUMA && X86_32
1185
1186 config ARCH_SPARSEMEM_DEFAULT
1187         def_bool y
1188         depends on X86_64
1189
1190 config ARCH_SPARSEMEM_ENABLE
1191         def_bool y
1192         depends on X86_64 || NUMA || (EXPERIMENTAL && X86_32) || X86_32_NON_STANDARD
1193         select SPARSEMEM_STATIC if X86_32
1194         select SPARSEMEM_VMEMMAP_ENABLE if X86_64
1195
1196 config ARCH_SELECT_MEMORY_MODEL
1197         def_bool y
1198         depends on ARCH_SPARSEMEM_ENABLE
1199
1200 config ARCH_MEMORY_PROBE
1201         def_bool X86_64
1202         depends on MEMORY_HOTPLUG
1203
1204 source "mm/Kconfig"
1205
1206 config HIGHPTE
1207         bool "Allocate 3rd-level pagetables from highmem"
1208         depends on X86_32 && (HIGHMEM4G || HIGHMEM64G)
1209         ---help---
1210           The VM uses one page table entry for each page of physical memory.
1211           For systems with a lot of RAM, this can be wasteful of precious
1212           low memory.  Setting this option will put user-space page table
1213           entries in high memory.
1214
1215 config X86_CHECK_BIOS_CORRUPTION
1216         bool "Check for low memory corruption"
1217         ---help---
1218           Periodically check for memory corruption in low memory, which
1219           is suspected to be caused by BIOS.  Even when enabled in the
1220           configuration, it is disabled at runtime.  Enable it by
1221           setting "memory_corruption_check=1" on the kernel command
1222           line.  By default it scans the low 64k of memory every 60
1223           seconds; see the memory_corruption_check_size and
1224           memory_corruption_check_period parameters in
1225           Documentation/kernel-parameters.txt to adjust this.
1226
1227           When enabled with the default parameters, this option has
1228           almost no overhead, as it reserves a relatively small amount
1229           of memory and scans it infrequently.  It both detects corruption
1230           and prevents it from affecting the running system.
1231
1232           It is, however, intended as a diagnostic tool; if repeatable
1233           BIOS-originated corruption always affects the same memory,
1234           you can use memmap= to prevent the kernel from using that
1235           memory.
1236
1237 config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
1238         bool "Set the default setting of memory_corruption_check"
1239         depends on X86_CHECK_BIOS_CORRUPTION
1240         default y
1241         ---help---
1242           Set whether the default state of memory_corruption_check is
1243           on or off.
1244
1245 config X86_RESERVE_LOW_64K
1246         bool "Reserve low 64K of RAM on AMI/Phoenix BIOSen"
1247         default y
1248         ---help---
1249           Reserve the first 64K of physical RAM on BIOSes that are known
1250           to potentially corrupt that memory range. A numbers of BIOSes are
1251           known to utilize this area during suspend/resume, so it must not
1252           be used by the kernel.
1253
1254           Set this to N if you are absolutely sure that you trust the BIOS
1255           to get all its memory reservations and usages right.
1256
1257           If you have doubts about the BIOS (e.g. suspend/resume does not
1258           work or there's kernel crashes after certain hardware hotplug
1259           events) and it's not AMI or Phoenix, then you might want to enable
1260           X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check typical
1261           corruption patterns.
1262
1263           Say Y if unsure.
1264
1265 config MATH_EMULATION
1266         bool
1267         prompt "Math emulation" if X86_32
1268         ---help---
1269           Linux can emulate a math coprocessor (used for floating point
1270           operations) if you don't have one. 486DX and Pentium processors have
1271           a math coprocessor built in, 486SX and 386 do not, unless you added
1272           a 487DX or 387, respectively. (The messages during boot time can
1273           give you some hints here ["man dmesg"].) Everyone needs either a
1274           coprocessor or this emulation.
1275
1276           If you don't have a math coprocessor, you need to say Y here; if you
1277           say Y here even though you have a coprocessor, the coprocessor will
1278           be used nevertheless. (This behavior can be changed with the kernel
1279           command line option "no387", which comes handy if your coprocessor
1280           is broken. Try "man bootparam" or see the documentation of your boot
1281           loader (lilo or loadlin) about how to pass options to the kernel at
1282           boot time.) This means that it is a good idea to say Y here if you
1283           intend to use this kernel on different machines.
1284
1285           More information about the internals of the Linux math coprocessor
1286           emulation can be found in <file:arch/x86/math-emu/README>.
1287
1288           If you are not sure, say Y; apart from resulting in a 66 KB bigger
1289           kernel, it won't hurt.
1290
1291 config MTRR
1292         bool "MTRR (Memory Type Range Register) support"
1293         ---help---
1294           On Intel P6 family processors (Pentium Pro, Pentium II and later)
1295           the Memory Type Range Registers (MTRRs) may be used to control
1296           processor access to memory ranges. This is most useful if you have
1297           a video (VGA) card on a PCI or AGP bus. Enabling write-combining
1298           allows bus write transfers to be combined into a larger transfer
1299           before bursting over the PCI/AGP bus. This can increase performance
1300           of image write operations 2.5 times or more. Saying Y here creates a
1301           /proc/mtrr file which may be used to manipulate your processor's
1302           MTRRs. Typically the X server should use this.
1303
1304           This code has a reasonably generic interface so that similar
1305           control registers on other processors can be easily supported
1306           as well:
1307
1308           The Cyrix 6x86, 6x86MX and M II processors have Address Range
1309           Registers (ARRs) which provide a similar functionality to MTRRs. For
1310           these, the ARRs are used to emulate the MTRRs.
1311           The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
1312           MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
1313           write-combining. All of these processors are supported by this code
1314           and it makes sense to say Y here if you have one of them.
1315
1316           Saying Y here also fixes a problem with buggy SMP BIOSes which only
1317           set the MTRRs for the boot CPU and not for the secondary CPUs. This
1318           can lead to all sorts of problems, so it's good to say Y here.
1319
1320           You can safely say Y even if your machine doesn't have MTRRs, you'll
1321           just add about 9 KB to your kernel.
1322
1323           See <file:Documentation/x86/mtrr.txt> for more information.
1324
1325 config MTRR_SANITIZER
1326         def_bool y
1327         prompt "MTRR cleanup support"
1328         depends on MTRR
1329         ---help---
1330           Convert MTRR layout from continuous to discrete, so X drivers can
1331           add writeback entries.
1332
1333           Can be disabled with disable_mtrr_cleanup on the kernel command line.
1334           The largest mtrr entry size for a continuous block can be set with
1335           mtrr_chunk_size.
1336
1337           If unsure, say Y.
1338
1339 config MTRR_SANITIZER_ENABLE_DEFAULT
1340         int "MTRR cleanup enable value (0-1)"
1341         range 0 1
1342         default "0"
1343         depends on MTRR_SANITIZER
1344         ---help---
1345           Enable mtrr cleanup default value
1346
1347 config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT
1348         int "MTRR cleanup spare reg num (0-7)"
1349         range 0 7
1350         default "1"
1351         depends on MTRR_SANITIZER
1352         ---help---
1353           mtrr cleanup spare entries default, it can be changed via
1354           mtrr_spare_reg_nr=N on the kernel command line.
1355
1356 config X86_PAT
1357         bool
1358         prompt "x86 PAT support"
1359         depends on MTRR
1360         ---help---
1361           Use PAT attributes to setup page level cache control.
1362
1363           PATs are the modern equivalents of MTRRs and are much more
1364           flexible than MTRRs.
1365
1366           Say N here if you see bootup problems (boot crash, boot hang,
1367           spontaneous reboots) or a non-working video driver.
1368
1369           If unsure, say Y.
1370
1371 config EFI
1372         bool "EFI runtime service support"
1373         depends on ACPI
1374         ---help---
1375           This enables the kernel to use EFI runtime services that are
1376           available (such as the EFI variable services).
1377
1378           This option is only useful on systems that have EFI firmware.
1379           In addition, you should use the latest ELILO loader available
1380           at <http://elilo.sourceforge.net> in order to take advantage
1381           of EFI runtime services. However, even with this option, the
1382           resultant kernel should continue to boot on existing non-EFI
1383           platforms.
1384
1385 config SECCOMP
1386         def_bool y
1387         prompt "Enable seccomp to safely compute untrusted bytecode"
1388         ---help---
1389           This kernel feature is useful for number crunching applications
1390           that may need to compute untrusted bytecode during their
1391           execution. By using pipes or other transports made available to
1392           the process as file descriptors supporting the read/write
1393           syscalls, it's possible to isolate those applications in
1394           their own address space using seccomp. Once seccomp is
1395           enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
1396           and the task is only allowed to execute a few safe syscalls
1397           defined by each seccomp mode.
1398
1399           If unsure, say Y. Only embedded should say N here.
1400
1401 config CC_STACKPROTECTOR_ALL
1402         bool
1403
1404 config CC_STACKPROTECTOR
1405         bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
1406         select CC_STACKPROTECTOR_ALL
1407         ---help---
1408           This option turns on the -fstack-protector GCC feature. This
1409           feature puts, at the beginning of functions, a canary value on
1410           the stack just before the return address, and validates
1411           the value just before actually returning.  Stack based buffer
1412           overflows (that need to overwrite this return address) now also
1413           overwrite the canary, which gets detected and the attack is then
1414           neutralized via a kernel panic.
1415
1416           This feature requires gcc version 4.2 or above, or a distribution
1417           gcc with the feature backported. Older versions are automatically
1418           detected and for those versions, this configuration option is
1419           ignored. (and a warning is printed during bootup)
1420
1421 source kernel/Kconfig.hz
1422
1423 config KEXEC
1424         bool "kexec system call"
1425         ---help---
1426           kexec is a system call that implements the ability to shutdown your
1427           current kernel, and to start another kernel.  It is like a reboot
1428           but it is independent of the system firmware.   And like a reboot
1429           you can start any kernel with it, not just Linux.
1430
1431           The name comes from the similarity to the exec system call.
1432
1433           It is an ongoing process to be certain the hardware in a machine
1434           is properly shutdown, so do not be surprised if this code does not
1435           initially work for you.  It may help to enable device hotplugging
1436           support.  As of this writing the exact hardware interface is
1437           strongly in flux, so no good recommendation can be made.
1438
1439 config CRASH_DUMP
1440         bool "kernel crash dumps"
1441         depends on X86_64 || (X86_32 && HIGHMEM)
1442         ---help---
1443           Generate crash dump after being started by kexec.
1444           This should be normally only set in special crash dump kernels
1445           which are loaded in the main kernel with kexec-tools into
1446           a specially reserved region and then later executed after
1447           a crash by kdump/kexec. The crash dump kernel must be compiled
1448           to a memory address not used by the main kernel or BIOS using
1449           PHYSICAL_START, or it must be built as a relocatable image
1450           (CONFIG_RELOCATABLE=y).
1451           For more details see Documentation/kdump/kdump.txt
1452
1453 config KEXEC_JUMP
1454         bool "kexec jump (EXPERIMENTAL)"
1455         depends on EXPERIMENTAL
1456         depends on KEXEC && HIBERNATION
1457         ---help---
1458           Jump between original kernel and kexeced kernel and invoke
1459           code in physical address mode via KEXEC
1460
1461 config PHYSICAL_START
1462         hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
1463         default "0x1000000" if X86_NUMAQ
1464         default "0x200000" if X86_64
1465         default "0x100000"
1466         ---help---
1467           This gives the physical address where the kernel is loaded.
1468
1469           If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then
1470           bzImage will decompress itself to above physical address and
1471           run from there. Otherwise, bzImage will run from the address where
1472           it has been loaded by the boot loader and will ignore above physical
1473           address.
1474
1475           In normal kdump cases one does not have to set/change this option
1476           as now bzImage can be compiled as a completely relocatable image
1477           (CONFIG_RELOCATABLE=y) and be used to load and run from a different
1478           address. This option is mainly useful for the folks who don't want
1479           to use a bzImage for capturing the crash dump and want to use a
1480           vmlinux instead. vmlinux is not relocatable hence a kernel needs
1481           to be specifically compiled to run from a specific memory area
1482           (normally a reserved region) and this option comes handy.
1483
1484           So if you are using bzImage for capturing the crash dump, leave
1485           the value here unchanged to 0x100000 and set CONFIG_RELOCATABLE=y.
1486           Otherwise if you plan to use vmlinux for capturing the crash dump
1487           change this value to start of the reserved region (Typically 16MB
1488           0x1000000). In other words, it can be set based on the "X" value as
1489           specified in the "crashkernel=YM@XM" command line boot parameter
1490           passed to the panic-ed kernel. Typically this parameter is set as
1491           crashkernel=64M@16M. Please take a look at
1492           Documentation/kdump/kdump.txt for more details about crash dumps.
1493
1494           Usage of bzImage for capturing the crash dump is recommended as
1495           one does not have to build two kernels. Same kernel can be used
1496           as production kernel and capture kernel. Above option should have
1497           gone away after relocatable bzImage support is introduced. But it
1498           is present because there are users out there who continue to use
1499           vmlinux for dump capture. This option should go away down the
1500           line.
1501
1502           Don't change this unless you know what you are doing.
1503
1504 config RELOCATABLE
1505         bool "Build a relocatable kernel (EXPERIMENTAL)"
1506         depends on EXPERIMENTAL
1507         ---help---
1508           This builds a kernel image that retains relocation information
1509           so it can be loaded someplace besides the default 1MB.
1510           The relocations tend to make the kernel binary about 10% larger,
1511           but are discarded at runtime.
1512
1513           One use is for the kexec on panic case where the recovery kernel
1514           must live at a different physical address than the primary
1515           kernel.
1516
1517           Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
1518           it has been loaded at and the compile time physical address
1519           (CONFIG_PHYSICAL_START) is ignored.
1520
1521 config PHYSICAL_ALIGN
1522         hex
1523         prompt "Alignment value to which kernel should be aligned" if X86_32
1524         default "0x100000" if X86_32
1525         default "0x200000" if X86_64
1526         range 0x2000 0x400000
1527         ---help---
1528           This value puts the alignment restrictions on physical address
1529           where kernel is loaded and run from. Kernel is compiled for an
1530           address which meets above alignment restriction.
1531
1532           If bootloader loads the kernel at a non-aligned address and
1533           CONFIG_RELOCATABLE is set, kernel will move itself to nearest
1534           address aligned to above value and run from there.
1535
1536           If bootloader loads the kernel at a non-aligned address and
1537           CONFIG_RELOCATABLE is not set, kernel will ignore the run time
1538           load address and decompress itself to the address it has been
1539           compiled for and run from there. The address for which kernel is
1540           compiled already meets above alignment restrictions. Hence the
1541           end result is that kernel runs from a physical address meeting
1542           above alignment restrictions.
1543
1544           Don't change this unless you know what you are doing.
1545
1546 config HOTPLUG_CPU
1547         bool "Support for hot-pluggable CPUs"
1548         depends on SMP && HOTPLUG
1549         ---help---
1550           Say Y here to allow turning CPUs off and on. CPUs can be
1551           controlled through /sys/devices/system/cpu.
1552           ( Note: power management support will enable this option
1553             automatically on SMP systems. )
1554           Say N if you want to disable CPU hotplug.
1555
1556 config COMPAT_VDSO
1557         def_bool y
1558         prompt "Compat VDSO support"
1559         depends on X86_32 || IA32_EMULATION
1560         ---help---
1561           Map the 32-bit VDSO to the predictable old-style address too.
1562         ---help---
1563           Say N here if you are running a sufficiently recent glibc
1564           version (2.3.3 or later), to remove the high-mapped
1565           VDSO mapping and to exclusively use the randomized VDSO.
1566
1567           If unsure, say Y.
1568
1569 config CMDLINE_BOOL
1570         bool "Built-in kernel command line"
1571         default n
1572         ---help---
1573           Allow for specifying boot arguments to the kernel at
1574           build time.  On some systems (e.g. embedded ones), it is
1575           necessary or convenient to provide some or all of the
1576           kernel boot arguments with the kernel itself (that is,
1577           to not rely on the boot loader to provide them.)
1578
1579           To compile command line arguments into the kernel,
1580           set this option to 'Y', then fill in the
1581           the boot arguments in CONFIG_CMDLINE.
1582
1583           Systems with fully functional boot loaders (i.e. non-embedded)
1584           should leave this option set to 'N'.
1585
1586 config CMDLINE
1587         string "Built-in kernel command string"
1588         depends on CMDLINE_BOOL
1589         default ""
1590         ---help---
1591           Enter arguments here that should be compiled into the kernel
1592           image and used at boot time.  If the boot loader provides a
1593           command line at boot time, it is appended to this string to
1594           form the full kernel command line, when the system boots.
1595
1596           However, you can use the CONFIG_CMDLINE_OVERRIDE option to
1597           change this behavior.
1598
1599           In most cases, the command line (whether built-in or provided
1600           by the boot loader) should specify the device for the root
1601           file system.
1602
1603 config CMDLINE_OVERRIDE
1604         bool "Built-in command line overrides boot loader arguments"
1605         default n
1606         depends on CMDLINE_BOOL
1607         ---help---
1608           Set this option to 'Y' to have the kernel ignore the boot loader
1609           command line, and use ONLY the built-in command line.
1610
1611           This is used to work around broken boot loaders.  This should
1612           be set to 'N' under normal conditions.
1613
1614 endmenu
1615
1616 config ARCH_ENABLE_MEMORY_HOTPLUG
1617         def_bool y
1618         depends on X86_64 || (X86_32 && HIGHMEM)
1619
1620 config ARCH_ENABLE_MEMORY_HOTREMOVE
1621         def_bool y
1622         depends on MEMORY_HOTPLUG
1623
1624 config HAVE_ARCH_EARLY_PFN_TO_NID
1625         def_bool X86_64
1626         depends on NUMA
1627
1628 menu "Power management and ACPI options"
1629
1630 config ARCH_HIBERNATION_HEADER
1631         def_bool y
1632         depends on X86_64 && HIBERNATION
1633
1634 source "kernel/power/Kconfig"
1635
1636 source "drivers/acpi/Kconfig"
1637
1638 config X86_APM_BOOT
1639         bool
1640         default y
1641         depends on APM || APM_MODULE
1642
1643 menuconfig APM
1644         tristate "APM (Advanced Power Management) BIOS support"
1645         depends on X86_32 && PM_SLEEP
1646         ---help---
1647           APM is a BIOS specification for saving power using several different
1648           techniques. This is mostly useful for battery powered laptops with
1649           APM compliant BIOSes. If you say Y here, the system time will be
1650           reset after a RESUME operation, the /proc/apm device will provide
1651           battery status information, and user-space programs will receive
1652           notification of APM "events" (e.g. battery status change).
1653
1654           If you select "Y" here, you can disable actual use of the APM
1655           BIOS by passing the "apm=off" option to the kernel at boot time.
1656
1657           Note that the APM support is almost completely disabled for
1658           machines with more than one CPU.
1659
1660           In order to use APM, you will need supporting software. For location
1661           and more information, read <file:Documentation/power/pm.txt> and the
1662           Battery Powered Linux mini-HOWTO, available from
1663           <http://www.tldp.org/docs.html#howto>.
1664
1665           This driver does not spin down disk drives (see the hdparm(8)
1666           manpage ("man 8 hdparm") for that), and it doesn't turn off
1667           VESA-compliant "green" monitors.
1668
1669           This driver does not support the TI 4000M TravelMate and the ACER
1670           486/DX4/75 because they don't have compliant BIOSes. Many "green"
1671           desktop machines also don't have compliant BIOSes, and this driver
1672           may cause those machines to panic during the boot phase.
1673
1674           Generally, if you don't have a battery in your machine, there isn't
1675           much point in using this driver and you should say N. If you get
1676           random kernel OOPSes or reboots that don't seem to be related to
1677           anything, try disabling/enabling this option (or disabling/enabling
1678           APM in your BIOS).
1679
1680           Some other things you should try when experiencing seemingly random,
1681           "weird" problems:
1682
1683           1) make sure that you have enough swap space and that it is
1684           enabled.
1685           2) pass the "no-hlt" option to the kernel
1686           3) switch on floating point emulation in the kernel and pass
1687           the "no387" option to the kernel
1688           4) pass the "floppy=nodma" option to the kernel
1689           5) pass the "mem=4M" option to the kernel (thereby disabling
1690           all but the first 4 MB of RAM)
1691           6) make sure that the CPU is not over clocked.
1692           7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
1693           8) disable the cache from your BIOS settings
1694           9) install a fan for the video card or exchange video RAM
1695           10) install a better fan for the CPU
1696           11) exchange RAM chips
1697           12) exchange the motherboard.
1698
1699           To compile this driver as a module, choose M here: the
1700           module will be called apm.
1701
1702 if APM
1703
1704 config APM_IGNORE_USER_SUSPEND
1705         bool "Ignore USER SUSPEND"
1706         ---help---
1707           This option will ignore USER SUSPEND requests. On machines with a
1708           compliant APM BIOS, you want to say N. However, on the NEC Versa M
1709           series notebooks, it is necessary to say Y because of a BIOS bug.
1710
1711 config APM_DO_ENABLE
1712         bool "Enable PM at boot time"
1713         ---help---
1714           Enable APM features at boot time. From page 36 of the APM BIOS
1715           specification: "When disabled, the APM BIOS does not automatically
1716           power manage devices, enter the Standby State, enter the Suspend
1717           State, or take power saving steps in response to CPU Idle calls."
1718           This driver will make CPU Idle calls when Linux is idle (unless this
1719           feature is turned off -- see "Do CPU IDLE calls", below). This
1720           should always save battery power, but more complicated APM features
1721           will be dependent on your BIOS implementation. You may need to turn
1722           this option off if your computer hangs at boot time when using APM
1723           support, or if it beeps continuously instead of suspending. Turn
1724           this off if you have a NEC UltraLite Versa 33/C or a Toshiba
1725           T400CDT. This is off by default since most machines do fine without
1726           this feature.
1727
1728 config APM_CPU_IDLE
1729         bool "Make CPU Idle calls when idle"
1730         ---help---
1731           Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
1732           On some machines, this can activate improved power savings, such as
1733           a slowed CPU clock rate, when the machine is idle. These idle calls
1734           are made after the idle loop has run for some length of time (e.g.,
1735           333 mS). On some machines, this will cause a hang at boot time or
1736           whenever the CPU becomes idle. (On machines with more than one CPU,
1737           this option does nothing.)
1738
1739 config APM_DISPLAY_BLANK
1740         bool "Enable console blanking using APM"
1741         ---help---
1742           Enable console blanking using the APM. Some laptops can use this to
1743           turn off the LCD backlight when the screen blanker of the Linux
1744           virtual console blanks the screen. Note that this is only used by
1745           the virtual console screen blanker, and won't turn off the backlight
1746           when using the X Window system. This also doesn't have anything to
1747           do with your VESA-compliant power-saving monitor. Further, this
1748           option doesn't work for all laptops -- it might not turn off your
1749           backlight at all, or it might print a lot of errors to the console,
1750           especially if you are using gpm.
1751
1752 config APM_ALLOW_INTS
1753         bool "Allow interrupts during APM BIOS calls"
1754         ---help---
1755           Normally we disable external interrupts while we are making calls to
1756           the APM BIOS as a measure to lessen the effects of a badly behaving
1757           BIOS implementation.  The BIOS should reenable interrupts if it
1758           needs to.  Unfortunately, some BIOSes do not -- especially those in
1759           many of the newer IBM Thinkpads.  If you experience hangs when you
1760           suspend, try setting this to Y.  Otherwise, say N.
1761
1762 endif # APM
1763
1764 source "arch/x86/kernel/cpu/cpufreq/Kconfig"
1765
1766 source "drivers/cpuidle/Kconfig"
1767
1768 source "drivers/idle/Kconfig"
1769
1770 endmenu
1771
1772
1773 menu "Bus options (PCI etc.)"
1774
1775 config PCI
1776         bool "PCI support"
1777         default y
1778         select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
1779         ---help---
1780           Find out whether you have a PCI motherboard. PCI is the name of a
1781           bus system, i.e. the way the CPU talks to the other stuff inside
1782           your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
1783           VESA. If you have PCI, say Y, otherwise N.
1784
1785 choice
1786         prompt "PCI access mode"
1787         depends on X86_32 && PCI
1788         default PCI_GOANY
1789         ---help---
1790           On PCI systems, the BIOS can be used to detect the PCI devices and
1791           determine their configuration. However, some old PCI motherboards
1792           have BIOS bugs and may crash if this is done. Also, some embedded
1793           PCI-based systems don't have any BIOS at all. Linux can also try to
1794           detect the PCI hardware directly without using the BIOS.
1795
1796           With this option, you can specify how Linux should detect the
1797           PCI devices. If you choose "BIOS", the BIOS will be used,
1798           if you choose "Direct", the BIOS won't be used, and if you
1799           choose "MMConfig", then PCI Express MMCONFIG will be used.
1800           If you choose "Any", the kernel will try MMCONFIG, then the
1801           direct access method and falls back to the BIOS if that doesn't
1802           work. If unsure, go with the default, which is "Any".
1803
1804 config PCI_GOBIOS
1805         bool "BIOS"
1806
1807 config PCI_GOMMCONFIG
1808         bool "MMConfig"
1809
1810 config PCI_GODIRECT
1811         bool "Direct"
1812
1813 config PCI_GOOLPC
1814         bool "OLPC"
1815         depends on OLPC
1816
1817 config PCI_GOANY
1818         bool "Any"
1819
1820 endchoice
1821
1822 config PCI_BIOS
1823         def_bool y
1824         depends on X86_32 && PCI && (PCI_GOBIOS || PCI_GOANY)
1825
1826 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
1827 config PCI_DIRECT
1828         def_bool y
1829         depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY || PCI_GOOLPC))
1830
1831 config PCI_MMCONFIG
1832         def_bool y
1833         depends on X86_32 && PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY)
1834
1835 config PCI_OLPC
1836         def_bool y
1837         depends on PCI && OLPC && (PCI_GOOLPC || PCI_GOANY)
1838
1839 config PCI_DOMAINS
1840         def_bool y
1841         depends on PCI
1842
1843 config PCI_MMCONFIG
1844         bool "Support mmconfig PCI config space access"
1845         depends on X86_64 && PCI && ACPI
1846
1847 config DMAR
1848         bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
1849         depends on PCI_MSI && ACPI && EXPERIMENTAL
1850         help
1851           DMA remapping (DMAR) devices support enables independent address
1852           translations for Direct Memory Access (DMA) from devices.
1853           These DMA remapping devices are reported via ACPI tables
1854           and include PCI device scope covered by these DMA
1855           remapping devices.
1856
1857 config DMAR_DEFAULT_ON
1858         def_bool y
1859         prompt "Enable DMA Remapping Devices by default"
1860         depends on DMAR
1861         help
1862           Selecting this option will enable a DMAR device at boot time if
1863           one is found. If this option is not selected, DMAR support can
1864           be enabled by passing intel_iommu=on to the kernel. It is
1865           recommended you say N here while the DMAR code remains
1866           experimental.
1867
1868 config DMAR_GFX_WA
1869         def_bool y
1870         prompt "Support for Graphics workaround"
1871         depends on DMAR
1872         ---help---
1873           Current Graphics drivers tend to use physical address
1874           for DMA and avoid using DMA APIs. Setting this config
1875           option permits the IOMMU driver to set a unity map for
1876           all the OS-visible memory. Hence the driver can continue
1877           to use physical addresses for DMA.
1878
1879 config DMAR_FLOPPY_WA
1880         def_bool y
1881         depends on DMAR
1882         ---help---
1883           Floppy disk drivers are know to bypass DMA API calls
1884           thereby failing to work when IOMMU is enabled. This
1885           workaround will setup a 1:1 mapping for the first
1886           16M to make floppy (an ISA device) work.
1887
1888 config INTR_REMAP
1889         bool "Support for Interrupt Remapping (EXPERIMENTAL)"
1890         depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL
1891         ---help---
1892           Supports Interrupt remapping for IO-APIC and MSI devices.
1893           To use x2apic mode in the CPU's which support x2APIC enhancements or
1894           to support platforms with CPU's having > 8 bit APIC ID, say Y.
1895
1896 source "drivers/pci/pcie/Kconfig"
1897
1898 source "drivers/pci/Kconfig"
1899
1900 # x86_64 have no ISA slots, but do have ISA-style DMA.
1901 config ISA_DMA_API
1902         def_bool y
1903
1904 if X86_32
1905
1906 config ISA
1907         bool "ISA support"
1908         ---help---
1909           Find out whether you have ISA slots on your motherboard.  ISA is the
1910           name of a bus system, i.e. the way the CPU talks to the other stuff
1911           inside your box.  Other bus systems are PCI, EISA, MicroChannel
1912           (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
1913           newer boards don't support it.  If you have ISA, say Y, otherwise N.
1914
1915 config EISA
1916         bool "EISA support"
1917         depends on ISA
1918         ---help---
1919           The Extended Industry Standard Architecture (EISA) bus was
1920           developed as an open alternative to the IBM MicroChannel bus.
1921
1922           The EISA bus provided some of the features of the IBM MicroChannel
1923           bus while maintaining backward compatibility with cards made for
1924           the older ISA bus.  The EISA bus saw limited use between 1988 and
1925           1995 when it was made obsolete by the PCI bus.
1926
1927           Say Y here if you are building a kernel for an EISA-based machine.
1928
1929           Otherwise, say N.
1930
1931 source "drivers/eisa/Kconfig"
1932
1933 config MCA
1934         bool "MCA support"
1935         ---help---
1936           MicroChannel Architecture is found in some IBM PS/2 machines and
1937           laptops.  It is a bus system similar to PCI or ISA. See
1938           <file:Documentation/mca.txt> (and especially the web page given
1939           there) before attempting to build an MCA bus kernel.
1940
1941 source "drivers/mca/Kconfig"
1942
1943 config SCx200
1944         tristate "NatSemi SCx200 support"
1945         ---help---
1946           This provides basic support for National Semiconductor's
1947           (now AMD's) Geode processors.  The driver probes for the
1948           PCI-IDs of several on-chip devices, so its a good dependency
1949           for other scx200_* drivers.
1950
1951           If compiled as a module, the driver is named scx200.
1952
1953 config SCx200HR_TIMER
1954         tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
1955         depends on SCx200 && GENERIC_TIME
1956         default y
1957         ---help---
1958           This driver provides a clocksource built upon the on-chip
1959           27MHz high-resolution timer.  Its also a workaround for
1960           NSC Geode SC-1100's buggy TSC, which loses time when the
1961           processor goes idle (as is done by the scheduler).  The
1962           other workaround is idle=poll boot option.
1963
1964 config GEODE_MFGPT_TIMER
1965         def_bool y
1966         prompt "Geode Multi-Function General Purpose Timer (MFGPT) events"
1967         depends on MGEODE_LX && GENERIC_TIME && GENERIC_CLOCKEVENTS
1968         ---help---
1969           This driver provides a clock event source based on the MFGPT
1970           timer(s) in the CS5535 and CS5536 companion chip for the geode.
1971           MFGPTs have a better resolution and max interval than the
1972           generic PIT, and are suitable for use as high-res timers.
1973
1974 config OLPC
1975         bool "One Laptop Per Child support"
1976         default n
1977         ---help---
1978           Add support for detecting the unique features of the OLPC
1979           XO hardware.
1980
1981 endif # X86_32
1982
1983 config K8_NB
1984         def_bool y
1985         depends on AGP_AMD64 || (X86_64 && (GART_IOMMU || (PCI && NUMA)))
1986
1987 source "drivers/pcmcia/Kconfig"
1988
1989 source "drivers/pci/hotplug/Kconfig"
1990
1991 endmenu
1992
1993
1994 menu "Executable file formats / Emulations"
1995
1996 source "fs/Kconfig.binfmt"
1997
1998 config IA32_EMULATION
1999         bool "IA32 Emulation"
2000         depends on X86_64
2001         select COMPAT_BINFMT_ELF
2002         ---help---
2003           Include code to run 32-bit programs under a 64-bit kernel. You should
2004           likely turn this on, unless you're 100% sure that you don't have any
2005           32-bit programs left.
2006
2007 config IA32_AOUT
2008         tristate "IA32 a.out support"
2009         depends on IA32_EMULATION
2010         ---help---
2011           Support old a.out binaries in the 32bit emulation.
2012
2013 config COMPAT
2014         def_bool y
2015         depends on IA32_EMULATION
2016
2017 config COMPAT_FOR_U64_ALIGNMENT
2018         def_bool COMPAT
2019         depends on X86_64
2020
2021 config SYSVIPC_COMPAT
2022         def_bool y
2023         depends on COMPAT && SYSVIPC
2024
2025 endmenu
2026
2027
2028 config HAVE_ATOMIC_IOMAP
2029         def_bool y
2030         depends on X86_32
2031
2032 source "net/Kconfig"
2033
2034 source "drivers/Kconfig"
2035
2036 source "drivers/firmware/Kconfig"
2037
2038 source "fs/Kconfig"
2039
2040 source "arch/x86/Kconfig.debug"
2041
2042 source "security/Kconfig"
2043
2044 source "crypto/Kconfig"
2045
2046 source "arch/x86/kvm/Kconfig"
2047
2048 source "lib/Kconfig"