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