ia64/xen-unstable

view linux-2.6-xen-sparse/arch/i386/Kconfig @ 10500:06b10ad218f4

[XEN] Add a warning banner when 'sync_console' is used. Make it
very obvious and mildly annoying.
Signed-off-by: Keir Fraser <keir@xensource.com>
author kaf24@firebug.cl.cam.ac.uk
date Tue Jun 20 18:19:07 2006 +0100 (2006-06-20)
parents d73eeceeae69
children c5d4d47bbeb8
line source
1 #
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
4 #
6 mainmenu "Linux Kernel Configuration"
8 config X86_32
9 bool
10 default y
11 help
12 This is Linux's home port. Linux was originally native to the Intel
13 386, and runs on all the later x86 processors including the Intel
14 486, 586, Pentiums, and various instruction-set-compatible chips by
15 AMD, Cyrix, and others.
17 config SEMAPHORE_SLEEPERS
18 bool
19 default y
21 config X86
22 bool
23 default y
25 config MMU
26 bool
27 default y
29 config SBUS
30 bool
32 config GENERIC_ISA_DMA
33 bool
34 default y
36 config GENERIC_IOMAP
37 bool
38 default y
40 config ARCH_MAY_HAVE_PC_FDC
41 bool
42 default y
44 config DMI
45 bool
46 default y
48 source "init/Kconfig"
50 menu "Processor type and features"
52 choice
53 prompt "Subarchitecture Type"
54 default X86_PC
56 config X86_PC
57 bool "PC-compatible"
58 help
59 Choose this option if your computer is a standard PC or compatible.
61 config X86_XEN
62 bool "Xen-compatible"
63 select X86_UP_APIC if !SMP && XEN_PRIVILEGED_GUEST
64 select X86_UP_IOAPIC if !SMP && XEN_PRIVILEGED_GUEST
65 select SWIOTLB
66 help
67 Choose this option if you plan to run this kernel on top of the
68 Xen Hypervisor.
70 config X86_ELAN
71 bool "AMD Elan"
72 help
73 Select this for an AMD Elan processor.
75 Do not use this option for K6/Athlon/Opteron processors!
77 If unsure, choose "PC-compatible" instead.
79 config X86_VOYAGER
80 bool "Voyager (NCR)"
81 help
82 Voyager is an MCA-based 32-way capable SMP architecture proprietary
83 to NCR Corp. Machine classes 345x/35xx/4100/51xx are Voyager-based.
85 *** WARNING ***
87 If you do not specifically know you have a Voyager based machine,
88 say N here, otherwise the kernel you build will not be bootable.
90 config X86_NUMAQ
91 bool "NUMAQ (IBM/Sequent)"
92 select NUMA
93 help
94 This option is used for getting Linux to run on a (IBM/Sequent) NUMA
95 multiquad box. This changes the way that processors are bootstrapped,
96 and uses Clustered Logical APIC addressing mode instead of Flat Logical.
97 You will need a new lynxer.elf file to flash your firmware with - send
98 email to <Martin.Bligh@us.ibm.com>.
100 config X86_SUMMIT
101 bool "Summit/EXA (IBM x440)"
102 depends on SMP
103 help
104 This option is needed for IBM systems that use the Summit/EXA chipset.
105 In particular, it is needed for the x440.
107 If you don't have one of these computers, you should say N here.
109 config X86_BIGSMP
110 bool "Support for other sub-arch SMP systems with more than 8 CPUs"
111 depends on SMP
112 help
113 This option is needed for the systems that have more than 8 CPUs
114 and if the system is not of any sub-arch type above.
116 If you don't have such a system, you should say N here.
118 config X86_VISWS
119 bool "SGI 320/540 (Visual Workstation)"
120 help
121 The SGI Visual Workstation series is an IA32-based workstation
122 based on SGI systems chips with some legacy PC hardware attached.
124 Say Y here to create a kernel to run on the SGI 320 or 540.
126 A kernel compiled for the Visual Workstation will not run on PCs
127 and vice versa. See <file:Documentation/sgi-visws.txt> for details.
129 config X86_GENERICARCH
130 bool "Generic architecture (Summit, bigsmp, ES7000, default)"
131 depends on SMP
132 help
133 This option compiles in the Summit, bigsmp, ES7000, default subarchitectures.
134 It is intended for a generic binary kernel.
136 config X86_ES7000
137 bool "Support for Unisys ES7000 IA32 series"
138 depends on SMP
139 help
140 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is
141 supposed to run on an IA32-based Unisys ES7000 system.
142 Only choose this option if you have such a system, otherwise you
143 should say N here.
145 endchoice
147 config ACPI_SRAT
148 bool
149 default y
150 depends on NUMA && (X86_SUMMIT || X86_GENERICARCH)
152 config X86_SUMMIT_NUMA
153 bool
154 default y
155 depends on NUMA && (X86_SUMMIT || X86_GENERICARCH)
157 config X86_CYCLONE_TIMER
158 bool
159 default y
160 depends on X86_SUMMIT || X86_GENERICARCH
162 config ES7000_CLUSTERED_APIC
163 bool
164 default y
165 depends on SMP && X86_ES7000 && MPENTIUMIII
167 source "arch/i386/Kconfig.cpu"
169 config HPET_TIMER
170 bool "HPET Timer Support"
171 depends on !X86_XEN
172 help
173 This enables the use of the HPET for the kernel's internal timer.
174 HPET is the next generation timer replacing legacy 8254s.
175 You can safely choose Y here. However, HPET will only be
176 activated if the platform and the BIOS support this feature.
177 Otherwise the 8254 will be used for timing services.
179 Choose N to continue using the legacy 8254 timer.
181 config HPET_EMULATE_RTC
182 bool
183 depends on HPET_TIMER && RTC=y
184 default y
186 config SMP
187 bool "Symmetric multi-processing support"
188 ---help---
189 This enables support for systems with more than one CPU. If you have
190 a system with only one CPU, like most personal computers, say N. If
191 you have a system with more than one CPU, say Y.
193 If you say N here, the kernel will run on single and multiprocessor
194 machines, but will use only one CPU of a multiprocessor machine. If
195 you say Y here, the kernel will run on many, but not all,
196 singleprocessor machines. On a singleprocessor machine, the kernel
197 will run faster if you say N here.
199 Note that if you say Y here and choose architecture "586" or
200 "Pentium" under "Processor family", the kernel will not work on 486
201 architectures. Similarly, multiprocessor kernels for the "PPro"
202 architecture may not work on all Pentium based boards.
204 People using multiprocessor machines who say Y here should also say
205 Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
206 Management" code will be disabled if you say Y here.
208 See also the <file:Documentation/smp.txt>,
209 <file:Documentation/i386/IO-APIC.txt>,
210 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
211 <http://www.tldp.org/docs.html#howto>.
213 If you don't know what to do here, say N.
215 config SMP_ALTERNATIVES
216 bool "SMP alternatives support (EXPERIMENTAL)"
217 depends on SMP && EXPERIMENTAL
218 help
219 Try to reduce the overhead of running an SMP kernel on a uniprocessor
220 host slightly by replacing certain key instruction sequences
221 according to whether we currently have more than one CPU available.
222 This should provide a noticeable boost to performance when
223 running SMP kernels on UP machines, and have negligible impact
224 when running on an true SMP host.
226 If unsure, say N.
228 config NR_CPUS
229 int "Maximum number of CPUs (2-255)"
230 range 2 255
231 depends on SMP
232 default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
233 default "8"
234 help
235 This allows you to specify the maximum number of CPUs which this
236 kernel will support. The maximum supported value is 255 and the
237 minimum value which makes sense is 2.
239 This is purely to save memory - each supported CPU adds
240 approximately eight kilobytes to the kernel image.
242 config SCHED_SMT
243 bool "SMT (Hyperthreading) scheduler support"
244 depends on SMP && !X86_XEN
245 default off
246 help
247 SMT scheduler support improves the CPU scheduler's decision making
248 when dealing with Intel Pentium 4 chips with HyperThreading at a
249 cost of slightly increased overhead in some places. If unsure say
250 N here.
252 source "kernel/Kconfig.preempt"
254 config X86_UP_APIC
255 bool "Local APIC support on uniprocessors"
256 depends on !SMP && !(X86_VISWS || X86_VOYAGER || XEN_UNPRIVILEGED_GUEST)
257 help
258 A local APIC (Advanced Programmable Interrupt Controller) is an
259 integrated interrupt controller in the CPU. If you have a single-CPU
260 system which has a processor with a local APIC, you can say Y here to
261 enable and use it. If you say Y here even though your machine doesn't
262 have a local APIC, then the kernel will still run with no slowdown at
263 all. The local APIC supports CPU-generated self-interrupts (timer,
264 performance counters), and the NMI watchdog which detects hard
265 lockups.
267 config X86_UP_IOAPIC
268 bool "IO-APIC support on uniprocessors"
269 depends on X86_UP_APIC
270 help
271 An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
272 SMP-capable replacement for PC-style interrupt controllers. Most
273 SMP systems and many recent uniprocessor systems have one.
275 If you have a single-CPU system with an IO-APIC, you can say Y here
276 to use it. If you say Y here even though your machine doesn't have
277 an IO-APIC, then the kernel will still run with no slowdown at all.
279 config X86_LOCAL_APIC
280 bool
281 depends on X86_UP_APIC || ((X86_VISWS || SMP) && !(X86_VOYAGER || XEN_UNPRIVILEGED_GUEST))
282 default y
284 config X86_IO_APIC
285 bool
286 depends on X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER || XEN_UNPRIVILEGED_GUEST))
287 default y
289 config X86_VISWS_APIC
290 bool
291 depends on X86_VISWS
292 default y
294 config X86_TSC
295 bool
296 depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODEGX1) && !X86_NUMAQ && !X86_XEN
297 default y
299 config X86_MCE
300 bool "Machine Check Exception"
301 depends on !(X86_VOYAGER || X86_XEN)
302 ---help---
303 Machine Check Exception support allows the processor to notify the
304 kernel if it detects a problem (e.g. overheating, component failure).
305 The action the kernel takes depends on the severity of the problem,
306 ranging from a warning message on the console, to halting the machine.
307 Your processor must be a Pentium or newer to support this - check the
308 flags in /proc/cpuinfo for mce. Note that some older Pentium systems
309 have a design flaw which leads to false MCE events - hence MCE is
310 disabled on all P5 processors, unless explicitly enabled with "mce"
311 as a boot argument. Similarly, if MCE is built in and creates a
312 problem on some new non-standard machine, you can boot with "nomce"
313 to disable it. MCE support simply ignores non-MCE processors like
314 the 386 and 486, so nearly everyone can say Y here.
316 config X86_MCE_NONFATAL
317 tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
318 depends on X86_MCE
319 help
320 Enabling this feature starts a timer that triggers every 5 seconds which
321 will look at the machine check registers to see if anything happened.
322 Non-fatal problems automatically get corrected (but still logged).
323 Disable this if you don't want to see these messages.
324 Seeing the messages this option prints out may be indicative of dying hardware,
325 or out-of-spec (ie, overclocked) hardware.
326 This option only does something on certain CPUs.
327 (AMD Athlon/Duron and Intel Pentium 4)
329 config X86_MCE_P4THERMAL
330 bool "check for P4 thermal throttling interrupt."
331 depends on X86_MCE && (X86_UP_APIC || SMP) && !X86_VISWS
332 help
333 Enabling this feature will cause a message to be printed when the P4
334 enters thermal throttling.
336 config TOSHIBA
337 tristate "Toshiba Laptop support"
338 ---help---
339 This adds a driver to safely access the System Management Mode of
340 the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
341 not work on models with a Phoenix BIOS. The System Management Mode
342 is used to set the BIOS and power saving options on Toshiba portables.
344 For information on utilities to make use of this driver see the
345 Toshiba Linux utilities web site at:
346 <http://www.buzzard.org.uk/toshiba/>.
348 Say Y if you intend to run this kernel on a Toshiba portable.
349 Say N otherwise.
351 config I8K
352 tristate "Dell laptop support"
353 ---help---
354 This adds a driver to safely access the System Management Mode
355 of the CPU on the Dell Inspiron 8000. The System Management Mode
356 is used to read cpu temperature and cooling fan status and to
357 control the fans on the I8K portables.
359 This driver has been tested only on the Inspiron 8000 but it may
360 also work with other Dell laptops. You can force loading on other
361 models by passing the parameter `force=1' to the module. Use at
362 your own risk.
364 For information on utilities to make use of this driver see the
365 I8K Linux utilities web site at:
366 <http://people.debian.org/~dz/i8k/>
368 Say Y if you intend to run this kernel on a Dell Inspiron 8000.
369 Say N otherwise.
371 config X86_REBOOTFIXUPS
372 bool "Enable X86 board specific fixups for reboot"
373 depends on X86
374 default n
375 ---help---
376 This enables chipset and/or board specific fixups to be done
377 in order to get reboot to work correctly. This is only needed on
378 some combinations of hardware and BIOS. The symptom, for which
379 this config is intended, is when reboot ends with a stalled/hung
380 system.
382 Currently, the only fixup is for the Geode GX1/CS5530A/TROM2.1.
383 combination.
385 Say Y if you want to enable the fixup. Currently, it's safe to
386 enable this option even if you don't need it.
387 Say N otherwise.
389 config MICROCODE
390 tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
391 depends on !XEN_UNPRIVILEGED_GUEST
392 ---help---
393 If you say Y here and also to "/dev file system support" in the
394 'File systems' section, you will be able to update the microcode on
395 Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
396 Pentium III, Pentium 4, Xeon etc. You will obviously need the
397 actual microcode binary data itself which is not shipped with the
398 Linux kernel.
400 For latest news and information on obtaining all the required
401 ingredients for this driver, check:
402 <http://www.urbanmyth.org/microcode/>.
404 To compile this driver as a module, choose M here: the
405 module will be called microcode.
407 config X86_MSR
408 tristate "/dev/cpu/*/msr - Model-specific register support"
409 depends on !X86_XEN
410 help
411 This device gives privileged processes access to the x86
412 Model-Specific Registers (MSRs). It is a character device with
413 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
414 MSR accesses are directed to a specific CPU on multi-processor
415 systems.
417 config X86_CPUID
418 tristate "/dev/cpu/*/cpuid - CPU information support"
419 help
420 This device gives processes access to the x86 CPUID instruction to
421 be executed on a specific processor. It is a character device
422 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
423 /dev/cpu/31/cpuid.
425 config SWIOTLB
426 bool
427 default n
429 source "drivers/firmware/Kconfig"
431 choice
432 prompt "High Memory Support"
433 default NOHIGHMEM
435 config NOHIGHMEM
436 bool "off"
437 ---help---
438 Linux can use up to 64 Gigabytes of physical memory on x86 systems.
439 However, the address space of 32-bit x86 processors is only 4
440 Gigabytes large. That means that, if you have a large amount of
441 physical memory, not all of it can be "permanently mapped" by the
442 kernel. The physical memory that's not permanently mapped is called
443 "high memory".
445 If you are compiling a kernel which will never run on a machine with
446 more than 1 Gigabyte total physical RAM, answer "off" here (default
447 choice and suitable for most users). This will result in a "3GB/1GB"
448 split: 3GB are mapped so that each process sees a 3GB virtual memory
449 space and the remaining part of the 4GB virtual memory space is used
450 by the kernel to permanently map as much physical memory as
451 possible.
453 If the machine has between 1 and 4 Gigabytes physical RAM, then
454 answer "4GB" here.
456 If more than 4 Gigabytes is used then answer "64GB" here. This
457 selection turns Intel PAE (Physical Address Extension) mode on.
458 PAE implements 3-level paging on IA32 processors. PAE is fully
459 supported by Linux, PAE mode is implemented on all recent Intel
460 processors (Pentium Pro and better). NOTE: If you say "64GB" here,
461 then the kernel will not boot on CPUs that don't support PAE!
463 The actual amount of total physical memory will either be
464 auto detected or can be forced by using a kernel command line option
465 such as "mem=256M". (Try "man bootparam" or see the documentation of
466 your boot loader (lilo or loadlin) about how to pass options to the
467 kernel at boot time.)
469 If unsure, say "off".
471 config HIGHMEM4G
472 bool "4GB"
473 help
474 Select this if you have a 32-bit processor and between 1 and 4
475 gigabytes of physical RAM.
477 config HIGHMEM64G
478 bool "64GB"
479 depends on X86_CMPXCHG64
480 help
481 Select this if you have a 32-bit processor and more than 4
482 gigabytes of physical RAM.
484 endchoice
486 choice
487 depends on EXPERIMENTAL && !X86_PAE
488 prompt "Memory split"
489 default VMSPLIT_3G
490 help
491 Select the desired split between kernel and user memory.
493 If the address range available to the kernel is less than the
494 physical memory installed, the remaining memory will be available
495 as "high memory". Accessing high memory is a little more costly
496 than low memory, as it needs to be mapped into the kernel first.
497 Note that increasing the kernel address space limits the range
498 available to user programs, making the address space there
499 tighter. Selecting anything other than the default 3G/1G split
500 will also likely make your kernel incompatible with binary-only
501 kernel modules.
503 If you are not absolutely sure what you are doing, leave this
504 option alone!
506 config VMSPLIT_3G
507 bool "3G/1G user/kernel split"
508 config VMSPLIT_3G_OPT
509 bool "3G/1G user/kernel split (for full 1G low memory)"
510 config VMSPLIT_2G
511 bool "2G/2G user/kernel split"
512 config VMSPLIT_1G
513 bool "1G/3G user/kernel split"
514 endchoice
516 config PAGE_OFFSET
517 hex
518 default 0xB0000000 if VMSPLIT_3G_OPT
519 default 0x78000000 if VMSPLIT_2G
520 default 0x40000000 if VMSPLIT_1G
521 default 0xC0000000
523 config HIGHMEM
524 bool
525 depends on HIGHMEM64G || HIGHMEM4G
526 default y
528 config X86_PAE
529 bool
530 depends on HIGHMEM64G
531 default y
533 # Common NUMA Features
534 config NUMA
535 bool "Numa Memory Allocation and Scheduler Support"
536 depends on SMP && HIGHMEM64G && (X86_NUMAQ || X86_GENERICARCH || (X86_SUMMIT && ACPI))
537 default n if X86_PC
538 default y if (X86_NUMAQ || X86_SUMMIT)
540 # Need comments to help the hapless user trying to turn on NUMA support
541 comment "NUMA (NUMA-Q) requires SMP, 64GB highmem support"
542 depends on X86_NUMAQ && (!HIGHMEM64G || !SMP)
544 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
545 depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI)
547 config HAVE_ARCH_BOOTMEM_NODE
548 bool
549 depends on NUMA
550 default y
552 config ARCH_HAVE_MEMORY_PRESENT
553 bool
554 depends on DISCONTIGMEM
555 default y
557 config NEED_NODE_MEMMAP_SIZE
558 bool
559 depends on DISCONTIGMEM || SPARSEMEM
560 default y
562 config HAVE_ARCH_ALLOC_REMAP
563 bool
564 depends on NUMA
565 default y
567 config ARCH_FLATMEM_ENABLE
568 def_bool y
569 depends on (ARCH_SELECT_MEMORY_MODEL && X86_PC)
571 config ARCH_DISCONTIGMEM_ENABLE
572 def_bool y
573 depends on NUMA
575 config ARCH_DISCONTIGMEM_DEFAULT
576 def_bool y
577 depends on NUMA
579 config ARCH_SPARSEMEM_ENABLE
580 def_bool y
581 depends on (NUMA || (X86_PC && EXPERIMENTAL))
582 select SPARSEMEM_STATIC
584 config ARCH_SELECT_MEMORY_MODEL
585 def_bool y
586 depends on ARCH_SPARSEMEM_ENABLE
588 source "mm/Kconfig"
590 config HAVE_ARCH_EARLY_PFN_TO_NID
591 bool
592 default y
593 depends on NUMA
595 config HIGHPTE
596 bool "Allocate 3rd-level pagetables from highmem"
597 depends on (HIGHMEM4G || HIGHMEM64G) && !X86_XEN
598 help
599 The VM uses one page table entry for each page of physical memory.
600 For systems with a lot of RAM, this can be wasteful of precious
601 low memory. Setting this option will put user-space page table
602 entries in high memory.
604 config MATH_EMULATION
605 bool "Math emulation"
606 depends on !X86_XEN
607 ---help---
608 Linux can emulate a math coprocessor (used for floating point
609 operations) if you don't have one. 486DX and Pentium processors have
610 a math coprocessor built in, 486SX and 386 do not, unless you added
611 a 487DX or 387, respectively. (The messages during boot time can
612 give you some hints here ["man dmesg"].) Everyone needs either a
613 coprocessor or this emulation.
615 If you don't have a math coprocessor, you need to say Y here; if you
616 say Y here even though you have a coprocessor, the coprocessor will
617 be used nevertheless. (This behavior can be changed with the kernel
618 command line option "no387", which comes handy if your coprocessor
619 is broken. Try "man bootparam" or see the documentation of your boot
620 loader (lilo or loadlin) about how to pass options to the kernel at
621 boot time.) This means that it is a good idea to say Y here if you
622 intend to use this kernel on different machines.
624 More information about the internals of the Linux math coprocessor
625 emulation can be found in <file:arch/i386/math-emu/README>.
627 If you are not sure, say Y; apart from resulting in a 66 KB bigger
628 kernel, it won't hurt.
630 config MTRR
631 bool "MTRR (Memory Type Range Register) support"
632 depends on !XEN_UNPRIVILEGED_GUEST
633 default y if X86_XEN
634 ---help---
635 On Intel P6 family processors (Pentium Pro, Pentium II and later)
636 the Memory Type Range Registers (MTRRs) may be used to control
637 processor access to memory ranges. This is most useful if you have
638 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
639 allows bus write transfers to be combined into a larger transfer
640 before bursting over the PCI/AGP bus. This can increase performance
641 of image write operations 2.5 times or more. Saying Y here creates a
642 /proc/mtrr file which may be used to manipulate your processor's
643 MTRRs. Typically the X server should use this.
645 This code has a reasonably generic interface so that similar
646 control registers on other processors can be easily supported
647 as well:
649 The Cyrix 6x86, 6x86MX and M II processors have Address Range
650 Registers (ARRs) which provide a similar functionality to MTRRs. For
651 these, the ARRs are used to emulate the MTRRs.
652 The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
653 MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
654 write-combining. All of these processors are supported by this code
655 and it makes sense to say Y here if you have one of them.
657 Saying Y here also fixes a problem with buggy SMP BIOSes which only
658 set the MTRRs for the boot CPU and not for the secondary CPUs. This
659 can lead to all sorts of problems, so it's good to say Y here.
661 You can safely say Y even if your machine doesn't have MTRRs, you'll
662 just add about 9 KB to your kernel.
664 See <file:Documentation/mtrr.txt> for more information.
666 config EFI
667 bool "Boot from EFI support (EXPERIMENTAL)"
668 depends on ACPI && !X86_XEN
669 default n
670 ---help---
671 This enables the the kernel to boot on EFI platforms using
672 system configuration information passed to it from the firmware.
673 This also enables the kernel to use any EFI runtime services that are
674 available (such as the EFI variable services).
676 This option is only useful on systems that have EFI firmware
677 and will result in a kernel image that is ~8k larger. In addition,
678 you must use the latest ELILO loader available at
679 <http://elilo.sourceforge.net> in order to take advantage of
680 kernel initialization using EFI information (neither GRUB nor LILO know
681 anything about EFI). However, even with this option, the resultant
682 kernel should continue to boot on existing non-EFI platforms.
684 config IRQBALANCE
685 bool "Enable kernel irq balancing"
686 depends on SMP && X86_IO_APIC && !X86_XEN
687 default y
688 help
689 The default yes will allow the kernel to do irq load balancing.
690 Saying no will keep the kernel from doing irq load balancing.
692 # turning this on wastes a bunch of space.
693 # Summit needs it only when NUMA is on
694 config BOOT_IOREMAP
695 bool
696 depends on (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI))
697 default y
699 config REGPARM
700 bool "Use register arguments (EXPERIMENTAL)"
701 depends on EXPERIMENTAL
702 default n
703 help
704 Compile the kernel with -mregparm=3. This uses a different ABI
705 and passes the first three arguments of a function call in registers.
706 This will probably break binary only modules.
708 config SECCOMP
709 bool "Enable seccomp to safely compute untrusted bytecode"
710 depends on PROC_FS
711 default y
712 help
713 This kernel feature is useful for number crunching applications
714 that may need to compute untrusted bytecode during their
715 execution. By using pipes or other transports made available to
716 the process as file descriptors supporting the read/write
717 syscalls, it's possible to isolate those applications in
718 their own address space using seccomp. Once seccomp is
719 enabled via /proc/<pid>/seccomp, it cannot be disabled
720 and the task is only allowed to execute a few safe syscalls
721 defined by each seccomp mode.
723 If unsure, say Y. Only embedded should say N here.
725 source kernel/Kconfig.hz
727 config KEXEC
728 bool "kexec system call (EXPERIMENTAL)"
729 depends on EXPERIMENTAL && !X86_XEN
730 help
731 kexec is a system call that implements the ability to shutdown your
732 current kernel, and to start another kernel. It is like a reboot
733 but it is indepedent of the system firmware. And like a reboot
734 you can start any kernel with it, not just Linux.
736 The name comes from the similiarity to the exec system call.
738 It is an ongoing process to be certain the hardware in a machine
739 is properly shutdown, so do not be surprised if this code does not
740 initially work for you. It may help to enable device hotplugging
741 support. As of this writing the exact hardware interface is
742 strongly in flux, so no good recommendation can be made.
744 config CRASH_DUMP
745 bool "kernel crash dumps (EXPERIMENTAL)"
746 depends on EXPERIMENTAL
747 depends on HIGHMEM
748 help
749 Generate crash dump after being started by kexec.
751 config PHYSICAL_START
752 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
754 default "0x1000000" if CRASH_DUMP
755 default "0x100000"
756 help
757 This gives the physical address where the kernel is loaded. Normally
758 for regular kernels this value is 0x100000 (1MB). But in the case
759 of kexec on panic the fail safe kernel needs to run at a different
760 address than the panic-ed kernel. This option is used to set the load
761 address for kernels used to capture crash dump on being kexec'ed
762 after panic. The default value for crash dump kernels is
763 0x1000000 (16MB). This can also be set based on the "X" value as
764 specified in the "crashkernel=YM@XM" command line boot parameter
765 passed to the panic-ed kernel. Typically this parameter is set as
766 crashkernel=64M@16M. Please take a look at
767 Documentation/kdump/kdump.txt for more details about crash dumps.
769 Don't change this unless you know what you are doing.
771 config HOTPLUG_CPU
772 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
773 depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER
774 ---help---
775 Say Y here to experiment with turning CPUs off and on. CPUs
776 can be controlled through /sys/devices/system/cpu.
778 Say N.
780 config DOUBLEFAULT
781 default y
782 bool "Enable doublefault exception handler" if EMBEDDED
783 depends on !X86_NO_TSS
784 help
785 This option allows trapping of rare doublefault exceptions that
786 would otherwise cause a system to silently reboot. Disabling this
787 option saves about 4k and might cause you much additional grey
788 hair.
790 endmenu
793 menu "Power management options (ACPI, APM)"
794 depends on !(X86_VOYAGER || XEN_UNPRIVILEGED_GUEST)
796 if !X86_XEN
797 source kernel/power/Kconfig
798 endif
800 source "drivers/acpi/Kconfig"
802 menu "APM (Advanced Power Management) BIOS Support"
803 depends on PM && !(X86_VISWS || X86_XEN)
805 config APM
806 tristate "APM (Advanced Power Management) BIOS support"
807 depends on PM && PM_LEGACY
808 ---help---
809 APM is a BIOS specification for saving power using several different
810 techniques. This is mostly useful for battery powered laptops with
811 APM compliant BIOSes. If you say Y here, the system time will be
812 reset after a RESUME operation, the /proc/apm device will provide
813 battery status information, and user-space programs will receive
814 notification of APM "events" (e.g. battery status change).
816 If you select "Y" here, you can disable actual use of the APM
817 BIOS by passing the "apm=off" option to the kernel at boot time.
819 Note that the APM support is almost completely disabled for
820 machines with more than one CPU.
822 In order to use APM, you will need supporting software. For location
823 and more information, read <file:Documentation/pm.txt> and the
824 Battery Powered Linux mini-HOWTO, available from
825 <http://www.tldp.org/docs.html#howto>.
827 This driver does not spin down disk drives (see the hdparm(8)
828 manpage ("man 8 hdparm") for that), and it doesn't turn off
829 VESA-compliant "green" monitors.
831 This driver does not support the TI 4000M TravelMate and the ACER
832 486/DX4/75 because they don't have compliant BIOSes. Many "green"
833 desktop machines also don't have compliant BIOSes, and this driver
834 may cause those machines to panic during the boot phase.
836 Generally, if you don't have a battery in your machine, there isn't
837 much point in using this driver and you should say N. If you get
838 random kernel OOPSes or reboots that don't seem to be related to
839 anything, try disabling/enabling this option (or disabling/enabling
840 APM in your BIOS).
842 Some other things you should try when experiencing seemingly random,
843 "weird" problems:
845 1) make sure that you have enough swap space and that it is
846 enabled.
847 2) pass the "no-hlt" option to the kernel
848 3) switch on floating point emulation in the kernel and pass
849 the "no387" option to the kernel
850 4) pass the "floppy=nodma" option to the kernel
851 5) pass the "mem=4M" option to the kernel (thereby disabling
852 all but the first 4 MB of RAM)
853 6) make sure that the CPU is not over clocked.
854 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
855 8) disable the cache from your BIOS settings
856 9) install a fan for the video card or exchange video RAM
857 10) install a better fan for the CPU
858 11) exchange RAM chips
859 12) exchange the motherboard.
861 To compile this driver as a module, choose M here: the
862 module will be called apm.
864 config APM_IGNORE_USER_SUSPEND
865 bool "Ignore USER SUSPEND"
866 depends on APM
867 help
868 This option will ignore USER SUSPEND requests. On machines with a
869 compliant APM BIOS, you want to say N. However, on the NEC Versa M
870 series notebooks, it is necessary to say Y because of a BIOS bug.
872 config APM_DO_ENABLE
873 bool "Enable PM at boot time"
874 depends on APM
875 ---help---
876 Enable APM features at boot time. From page 36 of the APM BIOS
877 specification: "When disabled, the APM BIOS does not automatically
878 power manage devices, enter the Standby State, enter the Suspend
879 State, or take power saving steps in response to CPU Idle calls."
880 This driver will make CPU Idle calls when Linux is idle (unless this
881 feature is turned off -- see "Do CPU IDLE calls", below). This
882 should always save battery power, but more complicated APM features
883 will be dependent on your BIOS implementation. You may need to turn
884 this option off if your computer hangs at boot time when using APM
885 support, or if it beeps continuously instead of suspending. Turn
886 this off if you have a NEC UltraLite Versa 33/C or a Toshiba
887 T400CDT. This is off by default since most machines do fine without
888 this feature.
890 config APM_CPU_IDLE
891 bool "Make CPU Idle calls when idle"
892 depends on APM
893 help
894 Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
895 On some machines, this can activate improved power savings, such as
896 a slowed CPU clock rate, when the machine is idle. These idle calls
897 are made after the idle loop has run for some length of time (e.g.,
898 333 mS). On some machines, this will cause a hang at boot time or
899 whenever the CPU becomes idle. (On machines with more than one CPU,
900 this option does nothing.)
902 config APM_DISPLAY_BLANK
903 bool "Enable console blanking using APM"
904 depends on APM
905 help
906 Enable console blanking using the APM. Some laptops can use this to
907 turn off the LCD backlight when the screen blanker of the Linux
908 virtual console blanks the screen. Note that this is only used by
909 the virtual console screen blanker, and won't turn off the backlight
910 when using the X Window system. This also doesn't have anything to
911 do with your VESA-compliant power-saving monitor. Further, this
912 option doesn't work for all laptops -- it might not turn off your
913 backlight at all, or it might print a lot of errors to the console,
914 especially if you are using gpm.
916 config APM_RTC_IS_GMT
917 bool "RTC stores time in GMT"
918 depends on APM
919 help
920 Say Y here if your RTC (Real Time Clock a.k.a. hardware clock)
921 stores the time in GMT (Greenwich Mean Time). Say N if your RTC
922 stores localtime.
924 It is in fact recommended to store GMT in your RTC, because then you
925 don't have to worry about daylight savings time changes. The only
926 reason not to use GMT in your RTC is if you also run a broken OS
927 that doesn't understand GMT.
929 config APM_ALLOW_INTS
930 bool "Allow interrupts during APM BIOS calls"
931 depends on APM
932 help
933 Normally we disable external interrupts while we are making calls to
934 the APM BIOS as a measure to lessen the effects of a badly behaving
935 BIOS implementation. The BIOS should reenable interrupts if it
936 needs to. Unfortunately, some BIOSes do not -- especially those in
937 many of the newer IBM Thinkpads. If you experience hangs when you
938 suspend, try setting this to Y. Otherwise, say N.
940 config APM_REAL_MODE_POWER_OFF
941 bool "Use real mode APM BIOS call to power off"
942 depends on APM
943 help
944 Use real mode APM BIOS calls to switch off the computer. This is
945 a work-around for a number of buggy BIOSes. Switch this option on if
946 your computer crashes instead of powering off properly.
948 endmenu
950 source "arch/i386/kernel/cpu/cpufreq/Kconfig"
952 endmenu
954 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
956 config PCI
957 bool "PCI support" if !X86_VISWS
958 depends on !X86_VOYAGER
959 default y if X86_VISWS
960 help
961 Find out whether you have a PCI motherboard. PCI is the name of a
962 bus system, i.e. the way the CPU talks to the other stuff inside
963 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
964 VESA. If you have PCI, say Y, otherwise N.
966 The PCI-HOWTO, available from
967 <http://www.tldp.org/docs.html#howto>, contains valuable
968 information about which PCI hardware does work under Linux and which
969 doesn't.
971 choice
972 prompt "PCI access mode"
973 depends on PCI && !X86_VISWS
974 default PCI_GOANY
975 ---help---
976 On PCI systems, the BIOS can be used to detect the PCI devices and
977 determine their configuration. However, some old PCI motherboards
978 have BIOS bugs and may crash if this is done. Also, some embedded
979 PCI-based systems don't have any BIOS at all. Linux can also try to
980 detect the PCI hardware directly without using the BIOS.
982 With this option, you can specify how Linux should detect the
983 PCI devices. If you choose "BIOS", the BIOS will be used,
984 if you choose "Direct", the BIOS won't be used, and if you
985 choose "MMConfig", then PCI Express MMCONFIG will be used.
986 If you choose "Any", the kernel will try MMCONFIG, then the
987 direct access method and falls back to the BIOS if that doesn't
988 work. If unsure, go with the default, which is "Any".
990 config PCI_GOBIOS
991 bool "BIOS"
992 depends on !X86_XEN
994 config PCI_GOMMCONFIG
995 bool "MMConfig"
997 config PCI_GODIRECT
998 bool "Direct"
1000 config PCI_GOXEN_FE
1001 bool "Xen PCI Frontend"
1002 depends on X86_XEN
1003 help
1004 The PCI device frontend driver allows the kernel to import arbitrary
1005 PCI devices from a PCI backend to support PCI driver domains.
1007 config PCI_GOANY
1008 bool "Any"
1010 endchoice
1012 config PCI_BIOS
1013 bool
1014 depends on !(X86_VISWS || X86_XEN) && PCI && (PCI_GOBIOS || PCI_GOANY)
1015 default y
1017 config PCI_DIRECT
1018 bool
1019 depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
1020 default y
1022 config PCI_MMCONFIG
1023 bool
1024 depends on PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY)
1025 default y
1027 config XEN_PCIDEV_FRONTEND
1028 bool
1029 depends on PCI && X86_XEN && (PCI_GOXEN_FE || PCI_GOANY)
1030 default y
1032 config XEN_PCIDEV_FE_DEBUG
1033 bool "Xen PCI Frontend Debugging"
1034 depends on XEN_PCIDEV_FRONTEND
1035 default n
1036 help
1037 Enables some debug statements within the PCI Frontend.
1039 source "drivers/pci/pcie/Kconfig"
1041 source "drivers/pci/Kconfig"
1043 config ISA_DMA_API
1044 bool
1045 default y
1047 config ISA
1048 bool "ISA support"
1049 depends on !(X86_VOYAGER || X86_VISWS || X86_XEN)
1050 help
1051 Find out whether you have ISA slots on your motherboard. ISA is the
1052 name of a bus system, i.e. the way the CPU talks to the other stuff
1053 inside your box. Other bus systems are PCI, EISA, MicroChannel
1054 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
1055 newer boards don't support it. If you have ISA, say Y, otherwise N.
1057 config EISA
1058 bool "EISA support"
1059 depends on ISA
1060 ---help---
1061 The Extended Industry Standard Architecture (EISA) bus was
1062 developed as an open alternative to the IBM MicroChannel bus.
1064 The EISA bus provided some of the features of the IBM MicroChannel
1065 bus while maintaining backward compatibility with cards made for
1066 the older ISA bus. The EISA bus saw limited use between 1988 and
1067 1995 when it was made obsolete by the PCI bus.
1069 Say Y here if you are building a kernel for an EISA-based machine.
1071 Otherwise, say N.
1073 source "drivers/eisa/Kconfig"
1075 config MCA
1076 bool "MCA support" if !(X86_VISWS || X86_VOYAGER || X86_XEN)
1077 default y if X86_VOYAGER
1078 help
1079 MicroChannel Architecture is found in some IBM PS/2 machines and
1080 laptops. It is a bus system similar to PCI or ISA. See
1081 <file:Documentation/mca.txt> (and especially the web page given
1082 there) before attempting to build an MCA bus kernel.
1084 source "drivers/mca/Kconfig"
1086 config SCx200
1087 tristate "NatSemi SCx200 support"
1088 depends on !X86_VOYAGER
1089 help
1090 This provides basic support for the National Semiconductor SCx200
1091 processor. Right now this is just a driver for the GPIO pins.
1093 If you don't know what to do here, say N.
1095 This support is also available as a module. If compiled as a
1096 module, it will be called scx200.
1098 source "drivers/pcmcia/Kconfig"
1100 source "drivers/pci/hotplug/Kconfig"
1102 endmenu
1104 menu "Executable file formats"
1106 source "fs/Kconfig.binfmt"
1108 endmenu
1110 source "net/Kconfig"
1112 source "drivers/Kconfig"
1114 source "fs/Kconfig"
1116 menu "Instrumentation Support"
1117 depends on EXPERIMENTAL
1119 source "arch/i386/oprofile/Kconfig"
1121 config KPROBES
1122 bool "Kprobes (EXPERIMENTAL)"
1123 depends on EXPERIMENTAL && MODULES
1124 help
1125 Kprobes allows you to trap at almost any kernel address and
1126 execute a callback function. register_kprobe() establishes
1127 a probepoint and specifies the callback. Kprobes is useful
1128 for kernel debugging, non-intrusive instrumentation and testing.
1129 If in doubt, say "N".
1130 endmenu
1132 source "arch/i386/Kconfig.debug"
1134 source "security/Kconfig"
1136 source "crypto/Kconfig"
1138 source "drivers/xen/Kconfig"
1140 source "lib/Kconfig"
1143 # Use the generic interrupt handling code in kernel/irq/:
1145 config GENERIC_HARDIRQS
1146 bool
1147 default y
1149 config GENERIC_IRQ_PROBE
1150 bool
1151 default y
1153 config GENERIC_PENDING_IRQ
1154 bool
1155 depends on GENERIC_HARDIRQS && SMP
1156 default y
1158 config X86_SMP
1159 bool
1160 depends on SMP && !X86_VOYAGER
1161 default y
1163 config X86_HT
1164 bool
1165 depends on SMP && !(X86_VISWS || X86_VOYAGER || X86_XEN)
1166 default y
1168 config X86_BIOS_REBOOT
1169 bool
1170 depends on !(X86_VISWS || X86_VOYAGER)
1171 default y
1173 config X86_TRAMPOLINE
1174 bool
1175 depends on X86_SMP || (X86_VOYAGER && SMP)
1176 default y
1178 config X86_NO_TSS
1179 bool
1180 depends on X86_XEN
1181 default y
1183 config X86_NO_IDT
1184 bool
1185 depends on X86_XEN
1186 default y
1188 config KTIME_SCALAR
1189 bool
1190 default y