Merge bk://kernel.bkbits.net/davem/net-2.5
[linux-2.6/history.git] / arch / i386 / Kconfig
blob0292065e0ad6cba864f3ce351df9655bbfa1fca8
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
6 mainmenu "Linux Kernel Configuration"
8 config X86
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 MMU
18         bool
19         default y
21 config SBUS
22         bool
24 config UID16
25         bool
26         default y
28 config GENERIC_ISA_DMA
29         bool
30         default y
32 source "init/Kconfig"
35 menu "Processor type and features"
37 choice
38         prompt "Subarchitecture Type"
39         default X86_PC
41 config X86_PC
42         bool "PC-compatible"
43         help
44           Choose this option if your computer is a standard PC or compatible.
46 config X86_VOYAGER
47         bool "Voyager (NCR)"
48         help
49           Voyager is a MCA based 32 way capable SMP architecture proprietary
50           to NCR Corp.  Machine classes 345x/35xx/4100/51xx are voyager based.
51           
52           *** WARNING ***
53         
54           If you do not specifically know you have a Voyager based machine,
55           say N here otherwise the kernel you build will not be bootable.
57 config X86_NUMAQ
58         bool "NUMAQ (IBM/Sequent)"
59         help
60           This option is used for getting Linux to run on a (IBM/Sequent) NUMA 
61           multiquad box. This changes the way that processors are bootstrapped,
62           and uses Clustered Logical APIC addressing mode instead of Flat Logical.
63           You will need a new lynxer.elf file to flash your firmware with - send
64           email to Martin.Bligh@us.ibm.com
66 config X86_SUMMIT
67         bool "Summit/EXA (IBM x440)"
68         depends on SMP
69         help
70           This option is needed for IBM systems that use the Summit/EXA chipset.
71           In particular, it is needed for the x440.
73           If you don't have one of these computers, you should say N here.
75 config X86_BIGSMP
76         bool "Support for other sub-arch SMP systems with more than 8 CPUs"
77         depends on SMP
78         help
79           This option is needed for the systems that have more than 8 CPUs
80           and if the system is not of any sub-arch type above.
82           If you don't have such a system, you should say N here.
84 config X86_VISWS
85         bool "SGI 320/540 (Visual Workstation)"
86         help
87           The SGI Visual Workstation series is an IA32-based workstation
88           based on SGI systems chips with some legacy PC hardware attached.
90           Say Y here to create a kernel to run on the SGI 320 or 540.
92           A kernel compiled for the Visual Workstation will not run on PCs
93           and vice versa. See <file:Documentation/sgi-visws.txt> for details.
95 config X86_GENERICARCH
96        bool "Generic architecture (Summit, bigsmp, default)"
97        depends on SMP
98        help
99           This option compiles in the Summit, bigsmp, default subarchitectures.
100           It is intended for a generic binary kernel.
102 config X86_ES7000
103         bool "Support for Unisys ES7000 IA32 series"
104         depends on SMP
105         help
106           Support for Unisys ES7000 systems.  Say 'Y' here if this kernel is
107           supposed to run on an IA32-based Unisys ES7000 system. 
108           Only choose this option if you have such a system, otherwise you 
109           should say N here.
111 endchoice
113 config ACPI_SRAT
114         bool
115         default y
116         depends on NUMA && (X86_SUMMIT || X86_GENERICARCH)
118 config X86_CYCLONE_TIMER
119        bool 
120        default y
121        depends on X86_SUMMIT || X86_GENERICARCH
123 config ES7000_CLUSTERED_APIC
124         bool
125         default y
126         depends on SMP && X86_ES7000 && MPENTIUMIII
128 choice
129         prompt "Processor family"
130         default M686
132 config M386
133         bool "386"
134         ---help---
135           This is the processor type of your CPU. This information is used for
136           optimizing purposes. In order to compile a kernel that can run on
137           all x86 CPU types (albeit not optimally fast), you can specify
138           "386" here.
140           The kernel will not necessarily run on earlier architectures than
141           the one you have chosen, e.g. a Pentium optimized kernel will run on
142           a PPro, but not necessarily on a i486.
144           Here are the settings recommended for greatest speed:
145           - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI
146           486DLC/DLC2, UMC 486SX-S and NexGen Nx586.  Only "386" kernels
147           will run on a 386 class machine.
148           - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
149           SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
150           - "586" for generic Pentium CPUs lacking the TSC
151           (time stamp counter) register.
152           - "Pentium-Classic" for the Intel Pentium.
153           - "Pentium-MMX" for the Intel Pentium MMX.
154           - "Pentium-Pro" for the Intel Pentium Pro.
155           - "Pentium-II" for the Intel Pentium II or pre-Coppermine Celeron.
156           - "Pentium-III" for the Intel Pentium III or Coppermine Celeron.
157           - "Pentium-4" for the Intel Pentium 4 or P4-based Celeron.
158           - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
159           - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
160           - "Crusoe" for the Transmeta Crusoe series.
161           - "Winchip-C6" for original IDT Winchip.
162           - "Winchip-2" for IDT Winchip 2.
163           - "Winchip-2A" for IDT Winchips with 3dNow! capabilities.
164           - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
165           - "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above).
167           If you don't know what to do, choose "386".
169 config M486
170         bool "486"
171         help
172           Select this for a 486 series processor, either Intel or one of the
173           compatible processors from AMD, Cyrix, IBM, or Intel.  Includes DX,
174           DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or
175           U5S.
177 config M586
178         bool "586/K5/5x86/6x86/6x86MX"
179         help
180           Select this for an 586 or 686 series processor such as the AMD K5,
181           the Intel 5x86 or 6x86, or the Intel 6x86MX.  This choice does not
182           assume the RDTSC (Read Time Stamp Counter) instruction.
184 config M586TSC
185         bool "Pentium-Classic"
186         help
187           Select this for a Pentium Classic processor with the RDTSC (Read
188           Time Stamp Counter) instruction for benchmarking.
190 config M586MMX
191         bool "Pentium-MMX"
192         help
193           Select this for a Pentium with the MMX graphics/multimedia
194           extended instructions.
196 config M686
197         bool "Pentium-Pro"
198         help
199           Select this for Intel Pentium Pro chips.  This enables the use of
200           Pentium Pro extended instructions, and disables the init-time guard
201           against the f00f bug found in earlier Pentiums.
203 config MPENTIUMII
204         bool "Pentium-II/Celeron(pre-Coppermine)"
205         help
206           Select this for Intel chips based on the Pentium-II and
207           pre-Coppermine Celeron core.  This option enables an unaligned
208           copy optimization, compiles the kernel with optimization flags
209           tailored for the chip, and applies any applicable Pentium Pro
210           optimizations.
212 config MPENTIUMIII
213         bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
214         help
215           Select this for Intel chips based on the Pentium-III and
216           Celeron-Coppermine core.  This option enables use of some
217           extended prefetch instructions in addition to the Pentium II
218           extensions.
220 config MPENTIUM4
221         bool "Pentium-4/Celeron(P4-based)/Xeon"
222         help
223           Select this for Intel Pentium 4 chips.  This includes both
224           the Pentium 4 and P4-based Celeron chips.  This option
225           enables compile flags optimized for the chip, uses the
226           correct cache shift, and applies any applicable Pentium III
227           optimizations.
229 config MK6
230         bool "K6/K6-II/K6-III"
231         help
232           Select this for an AMD K6-family processor.  Enables use of
233           some extended instructions, and passes appropriate optimization
234           flags to GCC.
236 config MK7
237         bool "Athlon/Duron/K7"
238         help
239           Select this for an AMD Athlon K7-family processor.  Enables use of
240           some extended instructions, and passes appropriate optimization
241           flags to GCC.
243 config MK8
244         bool "Opteron/Athlon64/Hammer/K8"
245         help
246           Select this for an AMD Opteron or Athlon64 Hammer-family processor.  Enables
247           use of some extended instructions, and passes appropriate optimization
248           flags to GCC.
250 config MELAN
251         bool "Elan"
253 config MCRUSOE
254         bool "Crusoe"
255         help
256           Select this for a Transmeta Crusoe processor.  Treats the processor
257           like a 586 with TSC, and sets some GCC optimization flags (like a
258           Pentium Pro with no alignment requirements).
260 config MWINCHIPC6
261         bool "Winchip-C6"
262         help
263           Select this for an IDT Winchip C6 chip.  Linux and GCC
264           treat this chip as a 586TSC with some extended instructions
265           and alignment requirements.
267 config MWINCHIP2
268         bool "Winchip-2"
269         help
270           Select this for an IDT Winchip-2.  Linux and GCC
271           treat this chip as a 586TSC with some extended instructions
272           and alignment requirements.
274 config MWINCHIP3D
275         bool "Winchip-2A/Winchip-3"
276         help
277           Select this for an IDT Winchip-2A or 3.  Linux and GCC
278           treat this chip as a 586TSC with some extended instructions
279           and alignment reqirements.  Also enable out of order memory
280           stores for this CPU, which can increase performance of some
281           operations.
283 config MCYRIXIII
284         bool "CyrixIII/VIA-C3"
285         help
286           Select this for a Cyrix III or C3 chip.  Presently Linux and GCC
287           treat this chip as a generic 586. Whilst the CPU is 686 class,
288           it lacks the cmov extension which gcc assumes is present when
289           generating 686 code.
290           Note that Nehemiah (Model 9) and above will not boot with this
291           kernel due to them lacking the 3DNow! instructions used in earlier
292           incarnations of the CPU.
294 config MVIAC3_2
295         bool "VIA C3-2 (Nehemiah)"
296         help
297           Select this for a VIA C3 "Nehemiah". Selecting this enables usage
298           of SSE and tells gcc to treat the CPU as a 686.
299           Note, this kernel will not boot on older (pre model 9) C3s.
301 endchoice
303 config X86_GENERIC
304        bool "Generic x86 support" 
305        help
306           Including some tuning for non selected x86 CPUs too.
307           when it has moderate overhead. This is intended for generic 
308           distributions kernels.
311 # Define implied options from the CPU selection here
313 config X86_CMPXCHG
314         bool
315         depends on !M386
316         default y
318 config X86_XADD
319         bool
320         depends on !M386
321         default y
323 config X86_L1_CACHE_SHIFT
324         int
325         default "7" if MPENTIUM4 || X86_GENERIC
326         default "4" if MELAN || M486 || M386
327         default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2
328         default "6" if MK7 || MK8
330 config RWSEM_GENERIC_SPINLOCK
331         bool
332         depends on M386
333         default y
335 config RWSEM_XCHGADD_ALGORITHM
336         bool
337         depends on !M386
338         default y
340 config X86_PPRO_FENCE
341         bool
342         depends on M686 || M586MMX || M586TSC || M586 || M486 || M386
343         default y
345 config X86_F00F_BUG
346         bool
347         depends on M586MMX || M586TSC || M586 || M486 || M386
348         default y
350 config X86_WP_WORKS_OK
351         bool
352         depends on !M386
353         default y
355 config X86_INVLPG
356         bool
357         depends on !M386
358         default y
360 config X86_BSWAP
361         bool
362         depends on !M386
363         default y
365 config X86_POPAD_OK
366         bool
367         depends on !M386
368         default y
370 config X86_ALIGNMENT_16
371         bool
372         depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2
373         default y
375 config X86_GOOD_APIC
376         bool
377         depends on MK7 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8
378         default y
380 config X86_INTEL_USERCOPY
381         bool
382         depends on MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7
383         default y
385 config X86_USE_PPRO_CHECKSUM
386         bool
387         depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2
388         default y
390 config X86_USE_3DNOW
391         bool
392         depends on MCYRIXIII || MK7
393         default y
395 config X86_OOSTORE
396         bool
397         depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6
398         default y
400 config HPET_TIMER
401         bool "HPET Timer Support"
402         help
403           This enables the use of the HPET for the kernel's internal timer.
404           HPET is the next generation timer replacing legacy 8254s.
405           You can safely choose Y here.  However, HPET will only be
406           activated if the platform and the BIOS support this feature.
407           Otherwise the 8254 will be used for timing services.
409           Choose N to continue using the legacy 8254 timer.
411 config HPET_EMULATE_RTC
412         def_bool HPET_TIMER && RTC=y
414 config SMP
415         bool "Symmetric multi-processing support"
416         ---help---
417           This enables support for systems with more than one CPU. If you have
418           a system with only one CPU, like most personal computers, say N. If
419           you have a system with more than one CPU, say Y.
421           If you say N here, the kernel will run on single and multiprocessor
422           machines, but will use only one CPU of a multiprocessor machine. If
423           you say Y here, the kernel will run on many, but not all,
424           singleprocessor machines. On a singleprocessor machine, the kernel
425           will run faster if you say N here.
427           Note that if you say Y here and choose architecture "586" or
428           "Pentium" under "Processor family", the kernel will not work on 486
429           architectures. Similarly, multiprocessor kernels for the "PPro"
430           architecture may not work on all Pentium based boards.
432           People using multiprocessor machines who say Y here should also say
433           Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
434           Management" code will be disabled if you say Y here.
436           See also the <file:Documentation/smp.tex>,
437           <file:Documentation/smp.txt>, <file:Documentation/i386/IO-APIC.txt>,
438           <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
439           <http://www.tldp.org/docs.html#howto>.
441           If you don't know what to do here, say N.
443 config NR_CPUS
444         int "Maximum number of CPUs (2-255)"
445         depends on SMP
446         default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
447         default "8"
448         help
449           This allows you to specify the maximum number of CPUs which this
450           kernel will support.  The maximum supported value is 32 and the
451           minimum value which makes sense is 2.
453           This is purely to save memory - each supported CPU adds
454           approximately eight kilobytes to the kernel image.
456 config PREEMPT
457         bool "Preemptible Kernel"
458         help
459           This option reduces the latency of the kernel when reacting to
460           real-time or interactive events by allowing a low priority process to
461           be preempted even if it is in kernel mode executing a system call.
462           This allows applications to run more reliably even when the system is
463           under load.
465           Say Y here if you are building a kernel for a desktop, embedded
466           or real-time system.  Say N if you are unsure.
468 config X86_UP_APIC
469         bool "Local APIC support on uniprocessors" if !SMP
470         depends on !(X86_VISWS || X86_VOYAGER)
471         ---help---
472           A local APIC (Advanced Programmable Interrupt Controller) is an
473           integrated interrupt controller in the CPU. If you have a single-CPU
474           system which has a processor with a local APIC, you can say Y here to
475           enable and use it. If you say Y here even though your machine doesn't
476           have a local APIC, then the kernel will still run with no slowdown at
477           all. The local APIC supports CPU-generated self-interrupts (timer,
478           performance counters), and the NMI watchdog which detects hard
479           lockups.
481           If you have a system with several CPUs, you do not need to say Y
482           here: the local APIC will be used automatically.
484 config X86_UP_IOAPIC
485         bool "IO-APIC support on uniprocessors"
486         depends on !SMP && X86_UP_APIC
487         help
488           An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
489           SMP-capable replacement for PC-style interrupt controllers. Most
490           SMP systems and a small number of uniprocessor systems have one.
491           If you have a single-CPU system with an IO-APIC, you can say Y here
492           to use it. If you say Y here even though your machine doesn't have
493           an IO-APIC, then the kernel will still run with no slowdown at all.
495           If you have a system with several CPUs, you do not need to say Y
496           here: the IO-APIC will be used automatically.
498 config X86_LOCAL_APIC
499         bool
500         depends on !SMP && X86_UP_APIC
501         default y
503 config X86_IO_APIC
504         bool
505         depends on !SMP && X86_UP_IOAPIC
506         default y
508 config X86_TSC
509         bool
510         depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2) && !X86_NUMAQ
511         default y
513 config X86_MCE
514         bool "Machine Check Exception"
515         ---help---
516           Machine Check Exception support allows the processor to notify the
517           kernel if it detects a problem (e.g. overheating, component failure).
518           The action the kernel takes depends on the severity of the problem,
519           ranging from a warning message on the console, to halting the machine.
520           Your processor must be a Pentium or newer to support this - check the
521           flags in /proc/cpuinfo for mce.  Note that some older Pentium systems
522           have a design flaw which leads to false MCE events - hence MCE is
523           disabled on all P5 processors, unless explicitly enabled with "mce"
524           as a boot argument.  Similarly, if MCE is built in and creates a
525           problem on some new non-standard machine, you can boot with "nomce"
526           to disable it.  MCE support simply ignores non-MCE processors like
527           the 386 and 486, so nearly everyone can say Y here.
529 config X86_MCE_NONFATAL
530         bool "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
531         depends on X86_MCE
532         help
533           Enabling this feature starts a timer that triggers every 5 seconds which
534           will look at the machine check registers to see if anything happened.
535           Non-fatal problems automatically get corrected (but still logged).
536           Disable this if you don't want to see these messages.
537           Seeing the messages this option prints out may be indicative of dying hardware,
538           or out-of-spec (ie, overclocked) hardware.
539           This option only does something on certain CPUs.
540           (AMD Athlon/Duron and Intel Pentium 4)
542 config X86_MCE_P4THERMAL
543         bool "check for P4 thermal throttling interrupt."
544         depends on X86_MCE && (X86_UP_APIC || SMP)
545         help
546           Enabling this feature will cause a message to be printed when the P4
547           enters thermal throttling.
549 config TOSHIBA
550         tristate "Toshiba Laptop support"
551         ---help---
552           This adds a driver to safely access the System Management Mode of
553           the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
554           not work on models with a Phoenix BIOS. The System Management Mode
555           is used to set the BIOS and power saving options on Toshiba portables.
557           For information on utilities to make use of this driver see the
558           Toshiba Linux utilities web site at:
559           <http://www.buzzard.org.uk/toshiba/>.
561           Say Y if you intend to run this kernel on a Toshiba portable.
562           Say N otherwise.
564 config I8K
565         tristate "Dell laptop support"
566         ---help---
567           This adds a driver to safely access the System Management Mode
568           of the CPU on the Dell Inspiron 8000. The System Management Mode
569           is used to read cpu temperature and cooling fan status and to
570           control the fans on the I8K portables.
572           This driver has been tested only on the Inspiron 8000 but it may
573           also work with other Dell laptops. You can force loading on other
574           models by passing the parameter `force=1' to the module. Use at
575           your own risk.
577           For information on utilities to make use of this driver see the
578           I8K Linux utilities web site at:
579           <http://www.debian.org/~dz/i8k/>
581           Say Y if you intend to run this kernel on a Dell Inspiron 8000.
582           Say N otherwise.
584 config MICROCODE
585         tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
586         ---help---
587           If you say Y here and also to "/dev file system support" in the
588           'File systems' section, you will be able to update the microcode on
589           Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
590           Pentium III, Pentium 4, Xeon etc.  You will obviously need the
591           actual microcode binary data itself which is not shipped with the
592           Linux kernel.
594           For latest news and information on obtaining all the required
595           ingredients for this driver, check:
596           <http://www.urbanmyth.org/microcode/>.
598           To compile this driver as a module, choose M here: the
599           module will be called microcode.
600           If you use modprobe or kmod you may also want to add the line
601           'alias char-major-10-184 microcode' to your /etc/modules.conf file.
603 config X86_MSR
604         tristate "/dev/cpu/*/msr - Model-specific register support"
605         help
606           This device gives privileged processes access to the x86
607           Model-Specific Registers (MSRs).  It is a character device with
608           major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
609           MSR accesses are directed to a specific CPU on multi-processor
610           systems.
612 config X86_CPUID
613         tristate "/dev/cpu/*/cpuid - CPU information support"
614         help
615           This device gives processes access to the x86 CPUID instruction to
616           be executed on a specific processor.  It is a character device
617           with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
618           /dev/cpu/31/cpuid.
620 config EDD
621         tristate "BIOS Enhanced Disk Drive calls determine boot disk (EXPERIMENTAL)"
622         depends on EXPERIMENTAL
623         help
624           Say Y or M here if you want to enable BIOS Enhanced Disk Drive
625           Services real mode BIOS calls to determine which disk
626           BIOS tries boot from.  This information is then exported via driverfs.
628           This option is experimental, but believed to be safe,
629           and most disk controller BIOS vendors do not yet implement this feature.
631 choice
632         prompt "High Memory Support"
633         default NOHIGHMEM
635 config NOHIGHMEM
636         bool "off"
637         ---help---
638           Linux can use up to 64 Gigabytes of physical memory on x86 systems.
639           However, the address space of 32-bit x86 processors is only 4
640           Gigabytes large. That means that, if you have a large amount of
641           physical memory, not all of it can be "permanently mapped" by the
642           kernel. The physical memory that's not permanently mapped is called
643           "high memory".
645           If you are compiling a kernel which will never run on a machine with
646           more than 1 Gigabyte total physical RAM, answer "off" here (default
647           choice and suitable for most users). This will result in a "3GB/1GB"
648           split: 3GB are mapped so that each process sees a 3GB virtual memory
649           space and the remaining part of the 4GB virtual memory space is used
650           by the kernel to permanently map as much physical memory as
651           possible.
653           If the machine has between 1 and 4 Gigabytes physical RAM, then
654           answer "4GB" here.
656           If more than 4 Gigabytes is used then answer "64GB" here. This
657           selection turns Intel PAE (Physical Address Extension) mode on.
658           PAE implements 3-level paging on IA32 processors. PAE is fully
659           supported by Linux, PAE mode is implemented on all recent Intel
660           processors (Pentium Pro and better). NOTE: If you say "64GB" here,
661           then the kernel will not boot on CPUs that don't support PAE!
663           The actual amount of total physical memory will either be
664           auto detected or can be forced by using a kernel command line option
665           such as "mem=256M". (Try "man bootparam" or see the documentation of
666           your boot loader (lilo or loadlin) about how to pass options to the
667           kernel at boot time.)
669           If unsure, say "off".
671 config HIGHMEM4G
672         bool "4GB"
673         help
674           Select this if you have a 32-bit processor and between 1 and 4
675           gigabytes of physical RAM.
677 config HIGHMEM64G
678         bool "64GB"
679         help
680           Select this if you have a 32-bit processor and more than 4
681           gigabytes of physical RAM.
683 endchoice
685 config HIGHMEM
686         bool
687         depends on HIGHMEM64G || HIGHMEM4G
688         default y
690 config X86_PAE
691         bool
692         depends on HIGHMEM64G
693         default y
695 # Common NUMA Features
696 config NUMA
697         bool "Numa Memory Allocation Support"
698         depends on SMP && HIGHMEM64G && (X86_PC || X86_NUMAQ || X86_GENERICARCH || (X86_SUMMIT && ACPI && !ACPI_HT_ONLY))
699         default n if X86_PC
700         default y if (X86_NUMAQ || X86_SUMMIT)
702 # Need comments to help the hapless user trying to turn on NUMA support
703 comment "NUMA (NUMA-Q) requires SMP, 64GB highmem support"
704         depends on X86_NUMAQ && (!HIGHMEM64G || !SMP)
706 comment "NUMA (Summit) requires SMP, 64GB highmem support, full ACPI"
707         depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI || ACPI_HT_ONLY)
709 config DISCONTIGMEM
710         bool
711         depends on NUMA
712         default y
714 config HAVE_ARCH_BOOTMEM_NODE
715         bool
716         depends on NUMA
717         default y
719 config HIGHPTE
720         bool "Allocate 3rd-level pagetables from highmem"
721         depends on HIGHMEM4G || HIGHMEM64G
722         help
723           The VM uses one page table entry for each page of physical memory.
724           For systems with a lot of RAM, this can be wasteful of precious
725           low memory.  Setting this option will put user-space page table
726           entries in high memory.
728 config MATH_EMULATION
729         bool "Math emulation"
730         ---help---
731           Linux can emulate a math coprocessor (used for floating point
732           operations) if you don't have one. 486DX and Pentium processors have
733           a math coprocessor built in, 486SX and 386 do not, unless you added
734           a 487DX or 387, respectively. (The messages during boot time can
735           give you some hints here ["man dmesg"].) Everyone needs either a
736           coprocessor or this emulation.
738           If you don't have a math coprocessor, you need to say Y here; if you
739           say Y here even though you have a coprocessor, the coprocessor will
740           be used nevertheless. (This behavior can be changed with the kernel
741           command line option "no387", which comes handy if your coprocessor
742           is broken. Try "man bootparam" or see the documentation of your boot
743           loader (lilo or loadlin) about how to pass options to the kernel at
744           boot time.) This means that it is a good idea to say Y here if you
745           intend to use this kernel on different machines.
747           More information about the internals of the Linux math coprocessor
748           emulation can be found in <file:arch/i386/math-emu/README>.
750           If you are not sure, say Y; apart from resulting in a 66 KB bigger
751           kernel, it won't hurt.
753 config MTRR
754         bool "MTRR (Memory Type Range Register) support"
755         ---help---
756           On Intel P6 family processors (Pentium Pro, Pentium II and later)
757           the Memory Type Range Registers (MTRRs) may be used to control
758           processor access to memory ranges. This is most useful if you have
759           a video (VGA) card on a PCI or AGP bus. Enabling write-combining
760           allows bus write transfers to be combined into a larger transfer
761           before bursting over the PCI/AGP bus. This can increase performance
762           of image write operations 2.5 times or more. Saying Y here creates a
763           /proc/mtrr file which may be used to manipulate your processor's
764           MTRRs. Typically the X server should use this.
766           This code has a reasonably generic interface so that similar
767           control registers on other processors can be easily supported
768           as well:
770           The Cyrix 6x86, 6x86MX and M II processors have Address Range
771           Registers (ARRs) which provide a similar functionality to MTRRs. For
772           these, the ARRs are used to emulate the MTRRs.
773           The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
774           MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
775           write-combining. All of these processors are supported by this code
776           and it makes sense to say Y here if you have one of them.
778           Saying Y here also fixes a problem with buggy SMP BIOSes which only
779           set the MTRRs for the boot CPU and not for the secondary CPUs. This
780           can lead to all sorts of problems, so it's good to say Y here.
782           You can safely say Y even if your machine doesn't have MTRRs, you'll
783           just add about 9 KB to your kernel.
785           See <file:Documentation/mtrr.txt> for more information.
787 config HAVE_DEC_LOCK
788         bool
789         depends on (SMP || PREEMPT) && X86_CMPXCHG
790         default y
792 # turning this on wastes a bunch of space.
793 # Summit needs it only when NUMA is on
794 config BOOT_IOREMAP
795         bool
796         depends on ((X86_SUMMIT || X86_GENERICARCH) && NUMA)
797         default y
799 endmenu
802 menu "Power management options (ACPI, APM)"
803         depends on !X86_VOYAGER
805 source kernel/power/Kconfig
807 source "drivers/acpi/Kconfig"
809 menu "APM (Advanced Power Management) BIOS Support"
810 depends on PM
812 config APM
813         tristate "APM (Advanced Power Management) BIOS support"
814         depends on PM
815         ---help---
816           APM is a BIOS specification for saving power using several different
817           techniques. This is mostly useful for battery powered laptops with
818           APM compliant BIOSes. If you say Y here, the system time will be
819           reset after a RESUME operation, the /proc/apm device will provide
820           battery status information, and user-space programs will receive
821           notification of APM "events" (e.g. battery status change).
823           If you select "Y" here, you can disable actual use of the APM
824           BIOS by passing the "apm=off" option to the kernel at boot time.
826           Note that the APM support is almost completely disabled for
827           machines with more than one CPU.
829           In order to use APM, you will need supporting software. For location
830           and more information, read <file:Documentation/pm.txt> and the
831           Battery Powered Linux mini-HOWTO, available from
832           <http://www.tldp.org/docs.html#howto>.
834           This driver does not spin down disk drives (see the hdparm(8)
835           manpage ("man 8 hdparm") for that), and it doesn't turn off
836           VESA-compliant "green" monitors.
838           This driver does not support the TI 4000M TravelMate and the ACER
839           486/DX4/75 because they don't have compliant BIOSes. Many "green"
840           desktop machines also don't have compliant BIOSes, and this driver
841           may cause those machines to panic during the boot phase.
843           Generally, if you don't have a battery in your machine, there isn't
844           much point in using this driver and you should say N. If you get
845           random kernel OOPSes or reboots that don't seem to be related to
846           anything, try disabling/enabling this option (or disabling/enabling
847           APM in your BIOS).
849           Some other things you should try when experiencing seemingly random,
850           "weird" problems:
852           1) make sure that you have enough swap space and that it is
853           enabled.
854           2) pass the "no-hlt" option to the kernel
855           3) switch on floating point emulation in the kernel and pass
856           the "no387" option to the kernel
857           4) pass the "floppy=nodma" option to the kernel
858           5) pass the "mem=4M" option to the kernel (thereby disabling
859           all but the first 4 MB of RAM)
860           6) make sure that the CPU is not over clocked.
861           7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
862           8) disable the cache from your BIOS settings
863           9) install a fan for the video card or exchange video RAM
864           10) install a better fan for the CPU
865           11) exchange RAM chips
866           12) exchange the motherboard.
868           To compile this driver as a module, choose M here: the
869           module will be called apm.
871 config APM_IGNORE_USER_SUSPEND
872         bool "Ignore USER SUSPEND"
873         depends on APM
874         help
875           This option will ignore USER SUSPEND requests. On machines with a
876           compliant APM BIOS, you want to say N. However, on the NEC Versa M
877           series notebooks, it is necessary to say Y because of a BIOS bug.
879 config APM_DO_ENABLE
880         bool "Enable PM at boot time"
881         depends on APM
882         ---help---
883           Enable APM features at boot time. From page 36 of the APM BIOS
884           specification: "When disabled, the APM BIOS does not automatically
885           power manage devices, enter the Standby State, enter the Suspend
886           State, or take power saving steps in response to CPU Idle calls."
887           This driver will make CPU Idle calls when Linux is idle (unless this
888           feature is turned off -- see "Do CPU IDLE calls", below). This
889           should always save battery power, but more complicated APM features
890           will be dependent on your BIOS implementation. You may need to turn
891           this option off if your computer hangs at boot time when using APM
892           support, or if it beeps continuously instead of suspending. Turn
893           this off if you have a NEC UltraLite Versa 33/C or a Toshiba
894           T400CDT. This is off by default since most machines do fine without
895           this feature.
897 config APM_CPU_IDLE
898         bool "Make CPU Idle calls when idle"
899         depends on APM
900         help
901           Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
902           On some machines, this can activate improved power savings, such as
903           a slowed CPU clock rate, when the machine is idle. These idle calls
904           are made after the idle loop has run for some length of time (e.g.,
905           333 mS). On some machines, this will cause a hang at boot time or
906           whenever the CPU becomes idle. (On machines with more than one CPU,
907           this option does nothing.)
909 config APM_DISPLAY_BLANK
910         bool "Enable console blanking using APM"
911         depends on APM
912         help
913           Enable console blanking using the APM. Some laptops can use this to
914           turn off the LCD backlight when the screen blanker of the Linux
915           virtual console blanks the screen. Note that this is only used by
916           the virtual console screen blanker, and won't turn off the backlight
917           when using the X Window system. This also doesn't have anything to
918           do with your VESA-compliant power-saving monitor. Further, this
919           option doesn't work for all laptops -- it might not turn off your
920           backlight at all, or it might print a lot of errors to the console,
921           especially if you are using gpm.
923 config APM_RTC_IS_GMT
924         bool "RTC stores time in GMT"
925         depends on APM
926         help
927           Say Y here if your RTC (Real Time Clock a.k.a. hardware clock)
928           stores the time in GMT (Greenwich Mean Time). Say N if your RTC
929           stores localtime.
931           It is in fact recommended to store GMT in your RTC, because then you
932           don't have to worry about daylight savings time changes. The only
933           reason not to use GMT in your RTC is if you also run a broken OS
934           that doesn't understand GMT.
936 config APM_ALLOW_INTS
937         bool "Allow interrupts during APM BIOS calls"
938         depends on APM
939         help
940           Normally we disable external interrupts while we are making calls to
941           the APM BIOS as a measure to lessen the effects of a badly behaving
942           BIOS implementation.  The BIOS should reenable interrupts if it
943           needs to.  Unfortunately, some BIOSes do not -- especially those in
944           many of the newer IBM Thinkpads.  If you experience hangs when you
945           suspend, try setting this to Y.  Otherwise, say N.
947 config APM_REAL_MODE_POWER_OFF
948         bool "Use real mode APM BIOS call to power off"
949         depends on APM
950         help
951           Use real mode APM BIOS calls to switch off the computer. This is
952           a work-around for a number of buggy BIOSes. Switch this option on if
953           your computer crashes instead of powering off properly.
955 endmenu
957 source "arch/i386/kernel/cpu/cpufreq/Kconfig"
959 endmenu
962 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
964 config X86_VISWS_APIC
965         bool
966         depends on X86_VISWS
967         default y
969 config X86_LOCAL_APIC
970         bool
971         depends on (X86_VISWS || SMP) && !X86_VOYAGER
972         default y
974 config X86_IO_APIC
975         bool
976         depends on SMP && !(X86_VISWS || X86_VOYAGER)
977         default y
979 config PCI
980         bool "PCI support" if !X86_VISWS
981         depends on !X86_VOYAGER
982         default y if X86_VISWS
983         help
984           Find out whether you have a PCI motherboard. PCI is the name of a
985           bus system, i.e. the way the CPU talks to the other stuff inside
986           your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
987           VESA. If you have PCI, say Y, otherwise N.
989           The PCI-HOWTO, available from
990           <http://www.tldp.org/docs.html#howto>, contains valuable
991           information about which PCI hardware does work under Linux and which
992           doesn't.
994 choice
995         prompt "PCI access mode"
996         depends on PCI && !X86_VISWS
997         default PCI_GOANY
999 config PCI_GOBIOS
1000         bool "BIOS"
1001         ---help---
1002           On PCI systems, the BIOS can be used to detect the PCI devices and
1003           determine their configuration. However, some old PCI motherboards
1004           have BIOS bugs and may crash if this is done. Also, some embedded
1005           PCI-based systems don't have any BIOS at all. Linux can also try to
1006           detect the PCI hardware directly without using the BIOS.
1008           With this option, you can specify how Linux should detect the PCI
1009           devices. If you choose "BIOS", the BIOS will be used, if you choose
1010           "Direct", the BIOS won't be used, and if you choose "Any", the
1011           kernel will try the direct access method and falls back to the BIOS
1012           if that doesn't work. If unsure, go with the default, which is
1013           "Any".
1015 config PCI_GODIRECT
1016         bool "Direct"
1018 config PCI_GOANY
1019         bool "Any"
1021 endchoice
1023 config PCI_BIOS
1024         bool
1025         depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
1026         default y
1028 config PCI_DIRECT
1029         bool
1030         depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
1031         default y
1033 source "drivers/pci/Kconfig"
1035 config ISA
1036         bool "ISA support"
1037         depends on !(X86_VOYAGER || X86_VISWS)
1038         help
1039           Find out whether you have ISA slots on your motherboard.  ISA is the
1040           name of a bus system, i.e. the way the CPU talks to the other stuff
1041           inside your box.  Other bus systems are PCI, EISA, MicroChannel
1042           (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
1043           newer boards don't support it.  If you have ISA, say Y, otherwise N.
1045 config EISA
1046         bool "EISA support"
1047         depends on ISA
1048         ---help---
1049           The Extended Industry Standard Architecture (EISA) bus was
1050           developed as an open alternative to the IBM MicroChannel bus.
1052           The EISA bus provided some of the features of the IBM MicroChannel
1053           bus while maintaining backward compatibility with cards made for
1054           the older ISA bus.  The EISA bus saw limited use between 1988 and
1055           1995 when it was made obsolete by the PCI bus.
1057           Say Y here if you are building a kernel for an EISA-based machine.
1059           Otherwise, say N.
1061 source "drivers/eisa/Kconfig"
1063 config MCA
1064         bool "MCA support"
1065         depends on !(X86_VISWS || X86_VOYAGER)
1066         help
1067           MicroChannel Architecture is found in some IBM PS/2 machines and
1068           laptops.  It is a bus system similar to PCI or ISA. See
1069           <file:Documentation/mca.txt> (and especially the web page given
1070           there) before attempting to build an MCA bus kernel.
1072 config MCA
1073         depends on X86_VOYAGER
1074         default y if X86_VOYAGER
1076 source "drivers/mca/Kconfig"
1078 config SCx200
1079         tristate "NatSemi SCx200 support"
1080         depends on !X86_VOYAGER
1081         help
1082           This provides basic support for the National Semiconductor SCx200 
1083           processor.  Right now this is just a driver for the GPIO pins.
1085           If you don't know what to do here, say N.
1087           This support is also available as a module.  If compiled as a
1088           module, it will be called scx200.
1090 config HOTPLUG
1091         bool "Support for hot-pluggable devices"
1092         ---help---
1093           Say Y here if you want to plug devices into your computer while
1094           the system is running, and be able to use them quickly.  In many
1095           cases, the devices can likewise be unplugged at any time too.
1097           One well known example of this is PCMCIA- or PC-cards, credit-card
1098           size devices such as network cards, modems or hard drives which are
1099           plugged into slots found on all modern laptop computers.  Another
1100           example, used on modern desktops as well as laptops, is USB.
1102           Enable HOTPLUG and KMOD, and build a modular kernel.  Get agent
1103           software (at <http://linux-hotplug.sourceforge.net/>) and install it.
1104           Then your kernel will automatically call out to a user mode "policy
1105           agent" (/sbin/hotplug) to load modules and set up software needed
1106           to use devices as you hotplug them.
1108 source "drivers/pcmcia/Kconfig"
1110 source "drivers/pci/hotplug/Kconfig"
1112 endmenu
1115 menu "Executable file formats"
1117 source "fs/Kconfig.binfmt"
1119 endmenu
1121 source "drivers/base/Kconfig"
1123 source "drivers/mtd/Kconfig"
1125 source "drivers/parport/Kconfig"
1127 source "drivers/pnp/Kconfig"
1129 source "drivers/block/Kconfig"
1131 source "drivers/ide/Kconfig"
1133 source "drivers/scsi/Kconfig"
1135 source "drivers/cdrom/Kconfig"
1137 source "drivers/md/Kconfig"
1139 source "drivers/message/fusion/Kconfig"
1141 source "drivers/ieee1394/Kconfig"
1143 source "drivers/message/i2o/Kconfig"
1145 source "net/Kconfig"
1147 source "drivers/isdn/Kconfig"
1149 source "drivers/telephony/Kconfig"
1152 # input before char - char/joystick depends on it. As does USB.
1154 source "drivers/input/Kconfig"
1156 source "drivers/char/Kconfig"
1158 #source drivers/misc/Config.in
1159 source "drivers/media/Kconfig"
1161 source "fs/Kconfig"
1163 source "drivers/video/Kconfig"
1165 source "sound/Kconfig"
1167 source "drivers/usb/Kconfig"
1169 source "arch/i386/oprofile/Kconfig"
1172 menu "Kernel hacking"
1174 config DEBUG_KERNEL
1175         bool "Kernel debugging"
1176         help
1177           Say Y here if you are developing drivers or trying to debug and
1178           identify kernel problems.
1180 config DEBUG_STACKOVERFLOW
1181         bool "Check for stack overflows"
1182         depends on DEBUG_KERNEL
1184 config DEBUG_SLAB
1185         bool "Debug memory allocations"
1186         depends on DEBUG_KERNEL
1187         help
1188           Say Y here to have the kernel do limited verification on memory
1189           allocation as well as poisoning memory on free to catch use of freed
1190           memory.
1192 config DEBUG_IOVIRT
1193         bool "Memory mapped I/O debugging"
1194         depends on DEBUG_KERNEL
1195         help
1196           Say Y here to get warned whenever an attempt is made to do I/O on
1197           obviously invalid addresses such as those generated when ioremap()
1198           calls are forgotten.  Memory mapped I/O will go through an extra
1199           check to catch access to unmapped ISA addresses, an access method
1200           that can still be used by old drivers that are being ported from
1201           2.0/2.2.
1203 config MAGIC_SYSRQ
1204         bool "Magic SysRq key"
1205         depends on DEBUG_KERNEL
1206         help
1207           If you say Y here, you will have some control over the system even
1208           if the system crashes for example during kernel debugging (e.g., you
1209           will be able to flush the buffer cache to disk, reboot the system
1210           immediately or dump some status information). This is accomplished
1211           by pressing various keys while holding SysRq (Alt+PrintScreen). It
1212           also works on a serial console (on PC hardware at least), if you
1213           send a BREAK and then within 5 seconds a command keypress. The
1214           keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
1215           unless you really know what this hack does.
1217 config DEBUG_SPINLOCK
1218         bool "Spinlock debugging"
1219         depends on DEBUG_KERNEL
1220         help
1221           Say Y here and build SMP to catch missing spinlock initialization
1222           and certain other kinds of spinlock errors commonly made.  This is
1223           best used in conjunction with the NMI watchdog so that spinlock
1224           deadlocks are also debuggable.
1226 config DEBUG_PAGEALLOC
1227         bool "Page alloc debugging"
1228         depends on DEBUG_KERNEL
1229         help
1230           Unmap pages from the kernel linear mapping after free_pages().
1231           This results in a large slowdown, but helps to find certain types
1232           of memory corruptions.
1234 config DEBUG_HIGHMEM
1235         bool "Highmem debugging"
1236         depends on DEBUG_KERNEL && HIGHMEM
1237         help
1238           This options enables addition error checking for high memory systems.
1239           Disable for production systems.
1241 config DEBUG_INFO
1242         bool "Compile the kernel with debug info"
1243         depends on DEBUG_KERNEL
1244         help
1245           If you say Y here the resulting kernel image will include
1246           debugging info resulting in a larger kernel image.
1247           Say Y here only if you plan to use gdb to debug the kernel.
1248           If you don't debug the kernel, you can say N.
1249           
1250 config DEBUG_SPINLOCK_SLEEP
1251         bool "Sleep-inside-spinlock checking"
1252         help
1253           If you say Y here, various routines which may sleep will become very
1254           noisy if they are called with a spinlock held.        
1256 config FRAME_POINTER
1257         bool "Compile the kernel with frame pointers"
1258         help
1259           If you say Y here the resulting kernel image will be slightly larger
1260           and slower, but it will give very useful debugging information.
1261           If you don't debug the kernel, you can say N, but we may not be able
1262           to solve problems without frame pointers.
1264 config X86_EXTRA_IRQS
1265         bool
1266         depends on X86_LOCAL_APIC || X86_VOYAGER
1267         default y
1269 config X86_FIND_SMP_CONFIG
1270         bool
1271         depends on X86_LOCAL_APIC || X86_VOYAGER
1272         default y
1274 config X86_MPPARSE
1275         bool
1276         depends on X86_LOCAL_APIC && !X86_VISWS
1277         default y
1279 endmenu
1281 source "security/Kconfig"
1283 source "crypto/Kconfig"
1285 source "lib/Kconfig"
1287 config X86_SMP
1288         bool
1289         depends on SMP && !X86_VOYAGER
1290         default y
1292 config X86_HT
1293         bool
1294         depends on SMP && !(X86_VISWS || X86_VOYAGER)
1295         default y
1297 config X86_BIOS_REBOOT
1298         bool
1299         depends on !(X86_VISWS || X86_VOYAGER)
1300         default y
1302 config X86_TRAMPOLINE
1303         bool
1304         depends on SMP || X86_VISWS
1305         default y
1307 config PC
1308         bool
1309         depends on X86 && !EMBEDDED
1310         default y