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