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