added some suse-specific patches to the kernel.
[linux-flexiantxendom0-3.2.10.git] / arch / i386 / Kconfig
1 #
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
4 #
5
6 mainmenu "Linux Kernel Configuration"
7
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.
16
17 config MMU
18         bool
19         default y
20
21 config SBUS
22         bool
23
24 config UID16
25         bool
26         default y
27
28 config GENERIC_ISA_DMA
29         bool
30         default y
31
32 source "init/Kconfig"
33
34
35 menu "Processor type and features"
36
37 choice
38         prompt "Subarchitecture Type"
39         default X86_PC
40
41 config X86_PC
42         bool "PC-compatible"
43         help
44           Choose this option if your computer is a standard PC or compatible.
45
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.
56
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
65
66 config X86_SUMMIT
67         bool "Summit/EXA (IBM x440)"
68         help
69           This option is needed for IBM systems that use the Summit/EXA chipset.
70           In particular, it is needed for the x440.
71
72           If you don't have one of these computers, you should say N here.
73
74 config ACPI_SRAT
75         bool
76         default y
77         depends on NUMA && X86_SUMMIT
78
79 config X86_BIGSMP
80         bool "Support for other sub-arch SMP systems with more than 8 CPUs"
81         help
82           This option is needed for the systems that have more than 8 CPUs
83           and if the system is not of any sub-arch type above.
84
85           If you don't have such a system, you should say N here.
86
87 config X86_VISWS
88         bool "SGI 320/540 (Visual Workstation)"
89         help
90           The SGI Visual Workstation series is an IA32-based workstation
91           based on SGI systems chips with some legacy PC hardware attached.
92
93           Say Y here to create a kernel to run on the SGI 320 or 540.
94
95           A kernel compiled for the Visual Workstation will not run on PCs
96           and vice versa. See <file:Documentation/sgi-visws.txt> for details.
97
98 endchoice
99
100
101 choice
102         prompt "Processor family"
103         default M686
104
105 config M386
106         bool "386"
107         ---help---
108           This is the processor type of your CPU. This information is used for
109           optimizing purposes. In order to compile a kernel that can run on
110           all x86 CPU types (albeit not optimally fast), you can specify
111           "386" here.
112
113           The kernel will not necessarily run on earlier architectures than
114           the one you have chosen, e.g. a Pentium optimized kernel will run on
115           a PPro, but not necessarily on a i486.
116
117           Here are the settings recommended for greatest speed:
118           - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI
119           486DLC/DLC2, UMC 486SX-S and NexGen Nx586.  Only "386" kernels
120           will run on a 386 class machine.
121           - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
122           SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
123           - "586" for generic Pentium CPUs lacking the TSC
124           (time stamp counter) register.
125           - "Pentium-Classic" for the Intel Pentium.
126           - "Pentium-MMX" for the Intel Pentium MMX.
127           - "Pentium-Pro" for the Intel Pentium Pro.
128           - "Pentium-II" for the Intel Pentium II or pre-Coppermine Celeron.
129           - "Pentium-III" for the Intel Pentium III or Coppermine Celeron.
130           - "Pentium-4" for the Intel Pentium 4 or P4-based Celeron.
131           - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
132           - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
133           - "Crusoe" for the Transmeta Crusoe series.
134           - "Winchip-C6" for original IDT Winchip.
135           - "Winchip-2" for IDT Winchip 2.
136           - "Winchip-2A" for IDT Winchips with 3dNow! capabilities.
137           - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
138           - "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above).
139
140           If you don't know what to do, choose "386".
141
142 config M486
143         bool "486"
144         help
145           Select this for a 486 series processor, either Intel or one of the
146           compatible processors from AMD, Cyrix, IBM, or Intel.  Includes DX,
147           DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or
148           U5S.
149
150 config M586
151         bool "586/K5/5x86/6x86/6x86MX"
152         help
153           Select this for an 586 or 686 series processor such as the AMD K5,
154           the Intel 5x86 or 6x86, or the Intel 6x86MX.  This choice does not
155           assume the RDTSC (Read Time Stamp Counter) instruction.
156
157 config M586TSC
158         bool "Pentium-Classic"
159         help
160           Select this for a Pentium Classic processor with the RDTSC (Read
161           Time Stamp Counter) instruction for benchmarking.
162
163 config M586MMX
164         bool "Pentium-MMX"
165         help
166           Select this for a Pentium with the MMX graphics/multimedia
167           extended instructions.
168
169 config M686
170         bool "Pentium-Pro"
171         help
172           Select this for Intel Pentium Pro chips.  This enables the use of
173           Pentium Pro extended instructions, and disables the init-time guard
174           against the f00f bug found in earlier Pentiums.
175
176 config MPENTIUMII
177         bool "Pentium-II/Celeron(pre-Coppermine)"
178         help
179           Select this for Intel chips based on the Pentium-II and
180           pre-Coppermine Celeron core.  This option enables an unaligned
181           copy optimization, compiles the kernel with optimization flags
182           tailored for the chip, and applies any applicable Pentium Pro
183           optimizations.
184
185 config MPENTIUMIII
186         bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
187         help
188           Select this for Intel chips based on the Pentium-III and
189           Celeron-Coppermine core.  This option enables use of some
190           extended prefetch instructions in addition to the Pentium II
191           extensions.
192
193 config MPENTIUM4
194         bool "Pentium-4/Celeron(P4-based)/Xeon"
195         help
196           Select this for Intel Pentium 4 chips.  This includes both
197           the Pentium 4 and P4-based Celeron chips.  This option
198           enables compile flags optimized for the chip, uses the
199           correct cache shift, and applies any applicable Pentium III
200           optimizations.
201
202 config MK6
203         bool "K6/K6-II/K6-III"
204         help
205           Select this for an AMD K6-family processor.  Enables use of
206           some extended instructions, and passes appropriate optimization
207           flags to GCC.
208
209 config MK7
210         bool "Athlon/Duron/K7"
211         help
212           Select this for an AMD Athlon K7-family processor.  Enables use of
213           some extended instructions, and passes appropriate optimization
214           flags to GCC.
215
216 config MK8
217         bool "Opteron/Athlon64/Hammer/K8"
218         help
219           Select this for an AMD Opteron or Athlon64 Hammer-family processor.  Enables
220           use of some extended instructions, and passes appropriate optimization
221           flags to GCC.
222
223 config MELAN
224         bool "Elan"
225
226 config MCRUSOE
227         bool "Crusoe"
228         help
229           Select this for a Transmeta Crusoe processor.  Treats the processor
230           like a 586 with TSC, and sets some GCC optimization flags (like a
231           Pentium Pro with no alignment requirements).
232
233 config MWINCHIPC6
234         bool "Winchip-C6"
235         help
236           Select this for an IDT Winchip C6 chip.  Linux and GCC
237           treat this chip as a 586TSC with some extended instructions
238           and alignment requirements.
239
240 config MWINCHIP2
241         bool "Winchip-2"
242         help
243           Select this for an IDT Winchip-2.  Linux and GCC
244           treat this chip as a 586TSC with some extended instructions
245           and alignment requirements.
246
247 config MWINCHIP3D
248         bool "Winchip-2A/Winchip-3"
249         help
250           Select this for an IDT Winchip-2A or 3.  Linux and GCC
251           treat this chip as a 586TSC with some extended instructions
252           and alignment reqirements.  Development kernels also enable
253           out of order memory stores for this CPU, which can increase
254           performance of some operations.
255
256 config MCYRIXIII
257         bool "CyrixIII/VIA-C3"
258         help
259           Select this for a Cyrix III or C3 chip.  Presently Linux and GCC
260           treat this chip as a generic 586. Whilst the CPU is 686 class,
261           it lacks the cmov extension which gcc assumes is present when
262           generating 686 code.
263           Note that Nehemiah (Model 9) and above will not boot with this
264           kernel due to them lacking the 3DNow! instructions used in earlier
265           incarnations of the CPU.
266
267 config MVIAC3_2
268         bool "VIA C3-2 (Nehemiah)"
269         help
270           Select this for a VIA C3 "Nehemiah". Selecting this enables usage
271           of SSE and tells gcc to treat the CPU as a 686.
272           Note, this kernel will not boot on older (pre model 9) C3s.
273
274 endchoice
275
276 config X86_GENERIC
277        bool "Generic x86 support" 
278        help
279           Including some tuning for non selected x86 CPUs too.
280           when it has moderate overhead. This is intended for generic 
281           distributions kernels.
282
283 #
284 # Define implied options from the CPU selection here
285 #
286 config X86_CMPXCHG
287         bool
288         depends on !M386
289         default y
290
291 config X86_XADD
292         bool
293         depends on !M386
294         default y
295
296 config X86_L1_CACHE_SHIFT
297         int
298         default "7" if MPENTIUM4 || X86_GENERIC
299         default "4" if MELAN || M486 || M386
300         default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2
301         default "6" if MK7 || MK8
302
303 config RWSEM_GENERIC_SPINLOCK
304         bool
305         depends on M386
306         default y
307
308 config RWSEM_XCHGADD_ALGORITHM
309         bool
310         depends on !M386
311         default y
312
313 config X86_PPRO_FENCE
314         bool
315         depends on M686 || M586MMX || M586TSC || M586 || M486 || M386
316         default y
317
318 config X86_F00F_BUG
319         bool
320         depends on M586MMX || M586TSC || M586 || M486 || M386
321         default y
322
323 config X86_WP_WORKS_OK
324         bool
325         depends on !M386
326         default y
327
328 config X86_INVLPG
329         bool
330         depends on !M386
331         default y
332
333 config X86_BSWAP
334         bool
335         depends on !M386
336         default y
337
338 config X86_POPAD_OK
339         bool
340         depends on !M386
341         default y
342
343 config X86_ALIGNMENT_16
344         bool
345         depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2
346         default y
347
348 config X86_GOOD_APIC
349         bool
350         depends on MK7 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8
351         default y
352
353 config X86_INTEL_USERCOPY
354         bool
355         depends on MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7
356         default y
357
358 config X86_USE_PPRO_CHECKSUM
359         bool
360         depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2
361         default y
362
363 config X86_USE_3DNOW
364         bool
365         depends on MCYRIXIII || MK7
366         default y
367
368 config X86_OOSTORE
369         bool
370         depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6
371         default y
372
373 config HUGETLB_PAGE
374         bool "Huge TLB Page Support"
375         help
376           This enables support for huge pages.  User space applications
377           can make use of this support with the sys_alloc_hugepages and
378           sys_free_hugepages system calls.  If your applications are
379           huge page aware and your processor (Pentium or later for x86)
380           supports this, then say Y here.
381
382           Otherwise, say N.
383
384 config SMP
385         bool "Symmetric multi-processing support"
386         ---help---
387           This enables support for systems with more than one CPU. If you have
388           a system with only one CPU, like most personal computers, say N. If
389           you have a system with more than one CPU, say Y.
390
391           If you say N here, the kernel will run on single and multiprocessor
392           machines, but will use only one CPU of a multiprocessor machine. If
393           you say Y here, the kernel will run on many, but not all,
394           singleprocessor machines. On a singleprocessor machine, the kernel
395           will run faster if you say N here.
396
397           Note that if you say Y here and choose architecture "586" or
398           "Pentium" under "Processor family", the kernel will not work on 486
399           architectures. Similarly, multiprocessor kernels for the "PPro"
400           architecture may not work on all Pentium based boards.
401
402           People using multiprocessor machines who say Y here should also say
403           Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
404           Management" code will be disabled if you say Y here.
405
406           See also the <file:Documentation/smp.tex>,
407           <file:Documentation/smp.txt>, <file:Documentation/i386/IO-APIC.txt>,
408           <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
409           <http://www.tldp.org/docs.html#howto>.
410
411           If you don't know what to do here, say N.
412
413 config NR_CPUS
414         int "Maximum number of CPUs (2-32)"
415         depends on SMP
416         default "32"
417         help
418           This allows you to specify the maximum number of CPUs which this
419           kernel will support.  The maximum supported value is 32 and the
420           minimum value which makes sense is 2.
421
422           This is purely to save memory - each supported CPU adds
423           approximately eight kilobytes to the kernel image.
424
425 config PREEMPT
426         bool "Preemptible Kernel"
427         help
428           This option reduces the latency of the kernel when reacting to
429           real-time or interactive events by allowing a low priority process to
430           be preempted even if it is in kernel mode executing a system call.
431           This allows applications to run more reliably even when the system is
432           under load.
433
434           Say Y here if you are building a kernel for a desktop, embedded
435           or real-time system.  Say N if you are unsure.
436
437 config X86_UP_APIC
438         bool "Local APIC support on uniprocessors" if !SMP
439         depends on !(X86_VISWS || X86_VOYAGER)
440         ---help---
441           A local APIC (Advanced Programmable Interrupt Controller) is an
442           integrated interrupt controller in the CPU. If you have a single-CPU
443           system which has a processor with a local APIC, you can say Y here to
444           enable and use it. If you say Y here even though your machine doesn't
445           have a local APIC, then the kernel will still run with no slowdown at
446           all. The local APIC supports CPU-generated self-interrupts (timer,
447           performance counters), and the NMI watchdog which detects hard
448           lockups.
449
450           If you have a system with several CPUs, you do not need to say Y
451           here: the local APIC will be used automatically.
452
453 config X86_UP_IOAPIC
454         bool "IO-APIC support on uniprocessors"
455         depends on !SMP && X86_UP_APIC
456         help
457           An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
458           SMP-capable replacement for PC-style interrupt controllers. Most
459           SMP systems and a small number of uniprocessor systems have one.
460           If you have a single-CPU system with an IO-APIC, you can say Y here
461           to use it. If you say Y here even though your machine doesn't have
462           an IO-APIC, then the kernel will still run with no slowdown at all.
463
464           If you have a system with several CPUs, you do not need to say Y
465           here: the IO-APIC will be used automatically.
466
467 config X86_LOCAL_APIC
468         bool
469         depends on !SMP && X86_UP_APIC
470         default y
471
472 config X86_IO_APIC
473         bool
474         depends on !SMP && X86_UP_IOAPIC
475         default y
476
477 config X86_TSC
478         bool
479         depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2) && !X86_NUMAQ
480         default y
481
482 config X86_MCE
483         bool "Machine Check Exception"
484         ---help---
485           Machine Check Exception support allows the processor to notify the
486           kernel if it detects a problem (e.g. overheating, component failure).
487           The action the kernel takes depends on the severity of the problem,
488           ranging from a warning message on the console, to halting the machine.
489           Your processor must be a Pentium or newer to support this - check the
490           flags in /proc/cpuinfo for mce.  Note that some older Pentium systems
491           have a design flaw which leads to false MCE events - hence MCE is
492           disabled on all P5 processors, unless explicitly enabled with "mce"
493           as a boot argument.  Similarly, if MCE is built in and creates a
494           problem on some new non-standard machine, you can boot with "nomce"
495           to disable it.  MCE support simply ignores non-MCE processors like
496           the 386 and 486, so nearly everyone can say Y here.
497
498 config X86_MCE_NONFATAL
499         bool "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
500         depends on X86_MCE
501         help
502           Enabling this feature starts a timer that triggers every 5 seconds which
503           will look at the machine check registers to see if anything happened.
504           Non-fatal problems automatically get corrected (but still logged).
505           Disable this if you don't want to see these messages.
506           Seeing the messages this option prints out may be indicative of dying hardware,
507           or out-of-spec (ie, overclocked) hardware.
508           This option only does something on certain CPUs.
509           (AMD Athlon/Duron and Intel Pentium 4)
510
511 config X86_MCE_P4THERMAL
512         bool "check for P4 thermal throttling interrupt."
513         depends on X86_MCE && (X86_UP_APIC || SMP)
514         help
515           Enabling this feature will cause a message to be printed when the P4
516           enters thermal throttling.
517
518 config TOSHIBA
519         tristate "Toshiba Laptop support"
520         ---help---
521           This adds a driver to safely access the System Management Mode of
522           the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
523           not work on models with a Phoenix BIOS. The System Management Mode
524           is used to set the BIOS and power saving options on Toshiba portables.
525
526           For information on utilities to make use of this driver see the
527           Toshiba Linux utilities web site at:
528           <http://www.buzzard.org.uk/toshiba/>.
529
530           Say Y if you intend to run this kernel on a Toshiba portable.
531           Say N otherwise.
532
533 config I8K
534         tristate "Dell laptop support"
535         ---help---
536           This adds a driver to safely access the System Management Mode
537           of the CPU on the Dell Inspiron 8000. The System Management Mode
538           is used to read cpu temperature and cooling fan status and to
539           control the fans on the I8K portables.
540
541           This driver has been tested only on the Inspiron 8000 but it may
542           also work with other Dell laptops. You can force loading on other
543           models by passing the parameter `force=1' to the module. Use at
544           your own risk.
545
546           For information on utilities to make use of this driver see the
547           I8K Linux utilities web site at:
548           <http://www.debian.org/~dz/i8k/>
549
550           Say Y if you intend to run this kernel on a Dell Inspiron 8000.
551           Say N otherwise.
552
553 config MICROCODE
554         tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
555         ---help---
556           If you say Y here and also to "/dev file system support" in the
557           'File systems' section, you will be able to update the microcode on
558           Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
559           Pentium III, Pentium 4, Xeon etc.  You will obviously need the
560           actual microcode binary data itself which is not shipped with the
561           Linux kernel.
562
563           For latest news and information on obtaining all the required
564           ingredients for this driver, check:
565           <http://www.urbanmyth.org/microcode/>.
566
567           This driver is also available as a module ( = code which can be
568           inserted in and removed from the running kernel whenever you want).
569           The module will be called microcode.  If you want to compile it as
570           a module, say M here and read <file:Documentation/modules.txt>.  If
571           you use modprobe or kmod you may also want to add the line
572           'alias char-major-10-184 microcode' to your /etc/modules.conf file.
573
574 config X86_MSR
575         tristate "/dev/cpu/*/msr - Model-specific register support"
576         help
577           This device gives privileged processes access to the x86
578           Model-Specific Registers (MSRs).  It is a character device with
579           major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
580           MSR accesses are directed to a specific CPU on multi-processor
581           systems.
582
583 config X86_CPUID
584         tristate "/dev/cpu/*/cpuid - CPU information support"
585         help
586           This device gives processes access to the x86 CPUID instruction to
587           be executed on a specific processor.  It is a character device
588           with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
589           /dev/cpu/31/cpuid.
590
591 config EDD
592         tristate "BIOS Enhanced Disk Drive calls determine boot disk (EXPERIMENTAL)"
593         depends on EXPERIMENTAL
594         help
595           Say Y or M here if you want to enable BIOS Enhanced Disk Drive
596           Services real mode BIOS calls to determine which disk
597           BIOS tries boot from.  This information is then exported via driverfs.
598
599           This option is experimental, but believed to be safe,
600           and most disk controller BIOS vendors do not yet implement this feature.
601
602 choice
603         prompt "High Memory Support"
604         default NOHIGHMEM
605
606 config NOHIGHMEM
607         bool "off"
608         ---help---
609           Linux can use up to 64 Gigabytes of physical memory on x86 systems.
610           However, the address space of 32-bit x86 processors is only 4
611           Gigabytes large. That means that, if you have a large amount of
612           physical memory, not all of it can be "permanently mapped" by the
613           kernel. The physical memory that's not permanently mapped is called
614           "high memory".
615
616           If you are compiling a kernel which will never run on a machine with
617           more than 1 Gigabyte total physical RAM, answer "off" here (default
618           choice and suitable for most users). This will result in a "3GB/1GB"
619           split: 3GB are mapped so that each process sees a 3GB virtual memory
620           space and the remaining part of the 4GB virtual memory space is used
621           by the kernel to permanently map as much physical memory as
622           possible.
623
624           If the machine has between 1 and 4 Gigabytes physical RAM, then
625           answer "4GB" here.
626
627           If more than 4 Gigabytes is used then answer "64GB" here. This
628           selection turns Intel PAE (Physical Address Extension) mode on.
629           PAE implements 3-level paging on IA32 processors. PAE is fully
630           supported by Linux, PAE mode is implemented on all recent Intel
631           processors (Pentium Pro and better). NOTE: If you say "64GB" here,
632           then the kernel will not boot on CPUs that don't support PAE!
633
634           The actual amount of total physical memory will either be
635           auto detected or can be forced by using a kernel command line option
636           such as "mem=256M". (Try "man bootparam" or see the documentation of
637           your boot loader (lilo or loadlin) about how to pass options to the
638           kernel at boot time.)
639
640           If unsure, say "off".
641
642 config HIGHMEM4G
643         bool "4GB"
644         help
645           Select this if you have a 32-bit processor and between 1 and 4
646           gigabytes of physical RAM.
647
648 config HIGHMEM64G
649         bool "64GB"
650         help
651           Select this if you have a 32-bit processor and more than 4
652           gigabytes of physical RAM.
653
654 endchoice
655
656 config HIGHMEM
657         bool
658         depends on HIGHMEM64G || HIGHMEM4G
659         default y
660
661 config X86_PAE
662         bool
663         depends on HIGHMEM64G
664         default y
665
666 # Common NUMA Features
667 config NUMA
668         bool "Numa Memory Allocation Support"
669         depends on SMP && HIGHMEM64G && (X86_PC || X86_NUMAQ || (X86_SUMMIT && ACPI && !ACPI_HT_ONLY))
670         default n if X86_PC
671         default y if (X86_NUMAQ || X86_SUMMIT)
672
673 # Need comments to help the hapless user trying to turn on NUMA support
674 comment "NUMA (NUMA-Q) requires SMP, 64GB highmem support"
675         depends on X86_NUMAQ && (!HIGHMEM64G || !SMP)
676
677 comment "NUMA (Summit) requires SMP, 64GB highmem support, full ACPI"
678         depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI || ACPI_HT_ONLY)
679
680 config DISCONTIGMEM
681         bool
682         depends on NUMA
683         default y
684
685 config HAVE_ARCH_BOOTMEM_NODE
686         bool
687         depends on NUMA
688         default y
689
690 config HIGHPTE
691         bool "Allocate 3rd-level pagetables from highmem"
692         depends on HIGHMEM4G || HIGHMEM64G
693         help
694           The VM uses one page table entry for each page of physical memory.
695           For systems with a lot of RAM, this can be wasteful of precious
696           low memory.  Setting this option will put user-space page table
697           entries in high memory.
698
699 config MATH_EMULATION
700         bool "Math emulation"
701         ---help---
702           Linux can emulate a math coprocessor (used for floating point
703           operations) if you don't have one. 486DX and Pentium processors have
704           a math coprocessor built in, 486SX and 386 do not, unless you added
705           a 487DX or 387, respectively. (The messages during boot time can
706           give you some hints here ["man dmesg"].) Everyone needs either a
707           coprocessor or this emulation.
708
709           If you don't have a math coprocessor, you need to say Y here; if you
710           say Y here even though you have a coprocessor, the coprocessor will
711           be used nevertheless. (This behavior can be changed with the kernel
712           command line option "no387", which comes handy if your coprocessor
713           is broken. Try "man bootparam" or see the documentation of your boot
714           loader (lilo or loadlin) about how to pass options to the kernel at
715           boot time.) This means that it is a good idea to say Y here if you
716           intend to use this kernel on different machines.
717
718           More information about the internals of the Linux math coprocessor
719           emulation can be found in <file:arch/i386/math-emu/README>.
720
721           If you are not sure, say Y; apart from resulting in a 66 KB bigger
722           kernel, it won't hurt.
723
724 config MTRR
725         bool "MTRR (Memory Type Range Register) support"
726         ---help---
727           On Intel P6 family processors (Pentium Pro, Pentium II and later)
728           the Memory Type Range Registers (MTRRs) may be used to control
729           processor access to memory ranges. This is most useful if you have
730           a video (VGA) card on a PCI or AGP bus. Enabling write-combining
731           allows bus write transfers to be combined into a larger transfer
732           before bursting over the PCI/AGP bus. This can increase performance
733           of image write operations 2.5 times or more. Saying Y here creates a
734           /proc/mtrr file which may be used to manipulate your processor's
735           MTRRs. Typically the X server should use this.
736
737           This code has a reasonably generic interface so that similar
738           control registers on other processors can be easily supported
739           as well:
740
741           The Cyrix 6x86, 6x86MX and M II processors have Address Range
742           Registers (ARRs) which provide a similar functionality to MTRRs. For
743           these, the ARRs are used to emulate the MTRRs.
744           The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
745           MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
746           write-combining. All of these processors are supported by this code
747           and it makes sense to say Y here if you have one of them.
748
749           Saying Y here also fixes a problem with buggy SMP BIOSes which only
750           set the MTRRs for the boot CPU and not for the secondary CPUs. This
751           can lead to all sorts of problems, so it's good to say Y here.
752
753           You can safely say Y even if your machine doesn't have MTRRs, you'll
754           just add about 9 KB to your kernel.
755
756           See <file:Documentation/mtrr.txt> for more information.
757
758 config HAVE_DEC_LOCK
759         bool
760         depends on (SMP || PREEMPT) && X86_CMPXCHG
761         default y
762
763 # turning this on wastes a bunch of space.
764 # Summit needs it only when NUMA is on
765 config BOOT_IOREMAP
766         bool
767         depends on (X86_SUMMIT && NUMA)
768         default y
769
770 endmenu
771
772
773 menu "Power management options (ACPI, APM)"
774         depends on !X86_VOYAGER
775
776 config PM
777         bool "Power Management support"
778         ---help---
779           "Power Management" means that parts of your computer are shut
780           off or put into a power conserving "sleep" mode if they are not
781           being used.  There are two competing standards for doing this: APM
782           and ACPI.  If you want to use either one, say Y here and then also
783           to the requisite support below.
784
785           Power Management is most important for battery powered laptop
786           computers; if you have a laptop, check out the Linux Laptop home
787           page on the WWW at
788           <http://www.cs.utexas.edu/users/kharker/linux-laptop/> and the
789           Battery Powered Linux mini-HOWTO, available from
790           <http://www.tldp.org/docs.html#howto>.
791
792           Note that, even if you say N here, Linux on the x86 architecture
793           will issue the hlt instruction if nothing is to be done, thereby
794           sending the processor to sleep and saving power.
795
796 config SOFTWARE_SUSPEND
797         bool "Software Suspend (EXPERIMENTAL)"
798         depends on EXPERIMENTAL && PM && SWAP
799         ---help---
800           Enable the possibilty of suspendig machine. It doesn't need APM.
801           You may suspend your machine by 'swsusp' or 'shutdown -z <time>' 
802           (patch for sysvinit needed). 
803
804           It creates an image which is saved in your active swaps. By the next
805           booting the, pass 'resume=/path/to/your/swap/file' and kernel will 
806           detect the saved image, restore the memory from
807           it and then it continues to run as before you've suspended.
808           If you don't want the previous state to continue use the 'noresume'
809           kernel option. However note that your partitions will be fsck'd and
810           you must re-mkswap your swap partitions/files.
811
812           Right now you may boot without resuming and then later resume but
813           in meantime you cannot use those swap partitions/files which were
814           involved in suspending. Also in this case there is a risk that buffers
815           on disk won't match with saved ones.
816
817           SMP is supported ``as-is''. There's a code for it but doesn't work.
818           There have been problems reported relating SCSI.
819
820           This option is about getting stable. However there is still some
821           absence of features.
822
823           For more information take a look at Documentation/swsusp.txt.
824
825 source "drivers/acpi/Kconfig"
826
827 config APM
828         tristate "Advanced Power Management BIOS support"
829         depends on PM
830         ---help---
831           APM is a BIOS specification for saving power using several different
832           techniques. This is mostly useful for battery powered laptops with
833           APM compliant BIOSes. If you say Y here, the system time will be
834           reset after a RESUME operation, the /proc/apm device will provide
835           battery status information, and user-space programs will receive
836           notification of APM "events" (e.g. battery status change).
837
838           If you select "Y" here, you can disable actual use of the APM
839           BIOS by passing the "apm=off" option to the kernel at boot time.
840
841           Note that the APM support is almost completely disabled for
842           machines with more than one CPU.
843
844           In order to use APM, you will need supporting software. For location
845           and more information, read <file:Documentation/pm.txt> and the
846           Battery Powered Linux mini-HOWTO, available from
847           <http://www.tldp.org/docs.html#howto>.
848
849           This driver does not spin down disk drives (see the hdparm(8)
850           manpage ("man 8 hdparm") for that), and it doesn't turn off
851           VESA-compliant "green" monitors.
852
853           This driver does not support the TI 4000M TravelMate and the ACER
854           486/DX4/75 because they don't have compliant BIOSes. Many "green"
855           desktop machines also don't have compliant BIOSes, and this driver
856           may cause those machines to panic during the boot phase.
857
858           Generally, if you don't have a battery in your machine, there isn't
859           much point in using this driver and you should say N. If you get
860           random kernel OOPSes or reboots that don't seem to be related to
861           anything, try disabling/enabling this option (or disabling/enabling
862           APM in your BIOS).
863
864           Some other things you should try when experiencing seemingly random,
865           "weird" problems:
866
867           1) make sure that you have enough swap space and that it is
868           enabled.
869           2) pass the "no-hlt" option to the kernel
870           3) switch on floating point emulation in the kernel and pass
871           the "no387" option to the kernel
872           4) pass the "floppy=nodma" option to the kernel
873           5) pass the "mem=4M" option to the kernel (thereby disabling
874           all but the first 4 MB of RAM)
875           6) make sure that the CPU is not over clocked.
876           7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
877           8) disable the cache from your BIOS settings
878           9) install a fan for the video card or exchange video RAM
879           10) install a better fan for the CPU
880           11) exchange RAM chips
881           12) exchange the motherboard.
882
883           To compile this driver as a module ( = code which can be inserted in
884           and removed from the running kernel whenever you want), say M here
885           and read <file:Documentation/modules.txt>. The module will be called
886           apm.
887
888 config APM_IGNORE_USER_SUSPEND
889         bool "Ignore USER SUSPEND"
890         depends on APM
891         help
892           This option will ignore USER SUSPEND requests. On machines with a
893           compliant APM BIOS, you want to say N. However, on the NEC Versa M
894           series notebooks, it is necessary to say Y because of a BIOS bug.
895
896 config APM_DO_ENABLE
897         bool "Enable PM at boot time"
898         depends on APM
899         ---help---
900           Enable APM features at boot time. From page 36 of the APM BIOS
901           specification: "When disabled, the APM BIOS does not automatically
902           power manage devices, enter the Standby State, enter the Suspend
903           State, or take power saving steps in response to CPU Idle calls."
904           This driver will make CPU Idle calls when Linux is idle (unless this
905           feature is turned off -- see "Do CPU IDLE calls", below). This
906           should always save battery power, but more complicated APM features
907           will be dependent on your BIOS implementation. You may need to turn
908           this option off if your computer hangs at boot time when using APM
909           support, or if it beeps continuously instead of suspending. Turn
910           this off if you have a NEC UltraLite Versa 33/C or a Toshiba
911           T400CDT. This is off by default since most machines do fine without
912           this feature.
913
914 config APM_CPU_IDLE
915         bool "Make CPU Idle calls when idle"
916         depends on APM
917         help
918           Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
919           On some machines, this can activate improved power savings, such as
920           a slowed CPU clock rate, when the machine is idle. These idle calls
921           are made after the idle loop has run for some length of time (e.g.,
922           333 mS). On some machines, this will cause a hang at boot time or
923           whenever the CPU becomes idle. (On machines with more than one CPU,
924           this option does nothing.)
925
926 config APM_DISPLAY_BLANK
927         bool "Enable console blanking using APM"
928         depends on APM
929         help
930           Enable console blanking using the APM. Some laptops can use this to
931           turn off the LCD backlight when the screen blanker of the Linux
932           virtual console blanks the screen. Note that this is only used by
933           the virtual console screen blanker, and won't turn off the backlight
934           when using the X Window system. This also doesn't have anything to
935           do with your VESA-compliant power-saving monitor. Further, this
936           option doesn't work for all laptops -- it might not turn off your
937           backlight at all, or it might print a lot of errors to the console,
938           especially if you are using gpm.
939
940 config APM_RTC_IS_GMT
941         bool "RTC stores time in GMT"
942         depends on APM
943         help
944           Say Y here if your RTC (Real Time Clock a.k.a. hardware clock)
945           stores the time in GMT (Greenwich Mean Time). Say N if your RTC
946           stores localtime.
947
948           It is in fact recommended to store GMT in your RTC, because then you
949           don't have to worry about daylight savings time changes. The only
950           reason not to use GMT in your RTC is if you also run a broken OS
951           that doesn't understand GMT.
952
953 config APM_ALLOW_INTS
954         bool "Allow interrupts during APM BIOS calls"
955         depends on APM
956         help
957           Normally we disable external interrupts while we are making calls to
958           the APM BIOS as a measure to lessen the effects of a badly behaving
959           BIOS implementation.  The BIOS should reenable interrupts if it
960           needs to.  Unfortunately, some BIOSes do not -- especially those in
961           many of the newer IBM Thinkpads.  If you experience hangs when you
962           suspend, try setting this to Y.  Otherwise, say N.
963
964 config APM_REAL_MODE_POWER_OFF
965         bool "Use real mode APM BIOS call to power off"
966         depends on APM
967         help
968           Use real mode APM BIOS calls to switch off the computer. This is
969           a work-around for a number of buggy BIOSes. Switch this option on if
970           your computer crashes instead of powering off properly.
971
972 source "arch/i386/kernel/cpu/cpufreq/Kconfig"
973
974 endmenu
975
976
977 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
978
979 config X86_VISWS_APIC
980         bool
981         depends on X86_VISWS
982         default y
983
984 config X86_LOCAL_APIC
985         bool
986         depends on (X86_VISWS || SMP) && !X86_VOYAGER
987         default y
988
989 config X86_IO_APIC
990         bool
991         depends on SMP && !(X86_VISWS || X86_VOYAGER)
992         default y
993
994 config PCI
995         bool "PCI support" if !X86_VISWS
996         depends on !X86_VOYAGER
997         default y if X86_VISWS
998         help
999           Find out whether you have a PCI motherboard. PCI is the name of a
1000           bus system, i.e. the way the CPU talks to the other stuff inside
1001           your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
1002           VESA. If you have PCI, say Y, otherwise N.
1003
1004           The PCI-HOWTO, available from
1005           <http://www.tldp.org/docs.html#howto>, contains valuable
1006           information about which PCI hardware does work under Linux and which
1007           doesn't.
1008
1009 choice
1010         prompt "PCI access mode"
1011         depends on PCI && !X86_VISWS
1012         default PCI_GOANY
1013
1014 config PCI_GOBIOS
1015         bool "BIOS"
1016         ---help---
1017           On PCI systems, the BIOS can be used to detect the PCI devices and
1018           determine their configuration. However, some old PCI motherboards
1019           have BIOS bugs and may crash if this is done. Also, some embedded
1020           PCI-based systems don't have any BIOS at all. Linux can also try to
1021           detect the PCI hardware directly without using the BIOS.
1022
1023           With this option, you can specify how Linux should detect the PCI
1024           devices. If you choose "BIOS", the BIOS will be used, if you choose
1025           "Direct", the BIOS won't be used, and if you choose "Any", the
1026           kernel will try the direct access method and falls back to the BIOS
1027           if that doesn't work. If unsure, go with the default, which is
1028           "Any".
1029
1030 config PCI_GODIRECT
1031         bool "Direct"
1032
1033 config PCI_GOANY
1034         bool "Any"
1035
1036 endchoice
1037
1038 config PCI_BIOS
1039         bool
1040         depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
1041         default y
1042
1043 config PCI_DIRECT
1044         bool
1045         depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
1046         default y
1047
1048 source "drivers/pci/Kconfig"
1049
1050 config ISA
1051         bool "ISA support"
1052         depends on !(X86_VOYAGER || X86_VISWS)
1053         help
1054           Find out whether you have ISA slots on your motherboard.  ISA is the
1055           name of a bus system, i.e. the way the CPU talks to the other stuff
1056           inside your box.  Other bus systems are PCI, EISA, MicroChannel
1057           (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
1058           newer boards don't support it.  If you have ISA, say Y, otherwise N.
1059
1060 config EISA
1061         bool "EISA support"
1062         depends on ISA
1063         ---help---
1064           The Extended Industry Standard Architecture (EISA) bus was
1065           developed as an open alternative to the IBM MicroChannel bus.
1066
1067           The EISA bus provided some of the features of the IBM MicroChannel
1068           bus while maintaining backward compatibility with cards made for
1069           the older ISA bus.  The EISA bus saw limited use between 1988 and
1070           1995 when it was made obsolete by the PCI bus.
1071
1072           Say Y here if you are building a kernel for an EISA-based machine.
1073
1074           Otherwise, say N.
1075
1076 source "drivers/eisa/Kconfig"
1077
1078 config MCA
1079         bool "MCA support"
1080         depends on !(X86_VISWS || X86_VOYAGER)
1081         help
1082           MicroChannel Architecture is found in some IBM PS/2 machines and
1083           laptops.  It is a bus system similar to PCI or ISA. See
1084           <file:Documentation/mca.txt> (and especially the web page given
1085           there) before attempting to build an MCA bus kernel.
1086
1087 config MCA
1088         depends on X86_VOYAGER
1089         default y if X86_VOYAGER
1090
1091 source "drivers/mca/Kconfig"
1092
1093 config SCx200
1094         tristate "NatSemi SCx200 support"
1095         depends on !X86_VOYAGER
1096         help
1097           This provides basic support for the National Semiconductor SCx200 
1098           processor.  Right now this is just a driver for the GPIO pins.
1099
1100           If you don't know what to do here, say N.
1101
1102           This support is also available as a module.  If compiled as a
1103           module, it will be called scx200.
1104
1105 config HOTPLUG
1106         bool "Support for hot-pluggable devices"
1107         ---help---
1108           Say Y here if you want to plug devices into your computer while
1109           the system is running, and be able to use them quickly.  In many
1110           cases, the devices can likewise be unplugged at any time too.
1111
1112           One well known example of this is PCMCIA- or PC-cards, credit-card
1113           size devices such as network cards, modems or hard drives which are
1114           plugged into slots found on all modern laptop computers.  Another
1115           example, used on modern desktops as well as laptops, is USB.
1116
1117           Enable HOTPLUG and KMOD, and build a modular kernel.  Get agent
1118           software (at <http://linux-hotplug.sourceforge.net/>) and install it.
1119           Then your kernel will automatically call out to a user mode "policy
1120           agent" (/sbin/hotplug) to load modules and set up software needed
1121           to use devices as you hotplug them.
1122
1123 source "drivers/pcmcia/Kconfig"
1124
1125 source "drivers/hotplug/Kconfig"
1126
1127 endmenu
1128
1129
1130 menu "Executable file formats"
1131
1132 choice
1133         prompt "Kernel core (/proc/kcore) format"
1134         depends on PROC_FS
1135         default KCORE_ELF
1136
1137 config KCORE_ELF
1138         bool "ELF"
1139         ---help---
1140           If you enabled support for /proc file system then the file
1141           /proc/kcore will contain the kernel core image. This can be used
1142           in gdb:
1143
1144           $ cd /usr/src/linux ; gdb vmlinux /proc/kcore
1145
1146           You have two choices here: ELF and A.OUT. Selecting ELF will make
1147           /proc/kcore appear in ELF core format as defined by the Executable
1148           and Linking Format specification. Selecting A.OUT will choose the
1149           old "a.out" format which may be necessary for some old versions
1150           of binutils or on some architectures.
1151
1152           This is especially useful if you have compiled the kernel with the
1153           "-g" option to preserve debugging information. It is mainly used
1154           for examining kernel data structures on the live kernel so if you
1155           don't understand what this means or are not a kernel hacker, just
1156           leave it at its default value ELF.
1157
1158 config KCORE_AOUT
1159         bool "A.OUT"
1160         help
1161           Not necessary unless you're using a very out-of-date binutils
1162           version.  You probably want KCORE_ELF.
1163
1164 endchoice
1165
1166 config BINFMT_AOUT
1167         tristate "Kernel support for a.out binaries"
1168         ---help---
1169           A.out (Assembler.OUTput) is a set of formats for libraries and
1170           executables used in the earliest versions of UNIX. Linux used the
1171           a.out formats QMAGIC and ZMAGIC until they were replaced with the
1172           ELF format.
1173
1174           As more and more programs are converted to ELF, the use for a.out
1175           will gradually diminish. If you disable this option it will reduce
1176           your kernel by one page. This is not much and by itself does not
1177           warrant removing support. However its removal is a good idea if you
1178           wish to ensure that absolutely none of your programs will use this
1179           older executable format. If you don't know what to answer at this
1180           point then answer Y. If someone told you "You need a kernel with
1181           QMAGIC support" then you'll have to say Y here. You may answer M to
1182           compile a.out support as a module and later load the module when you
1183           want to use a program or library in a.out format. The module will be
1184           called binfmt_aout. Saying M or N here is dangerous though,
1185           because some crucial programs on your system might still be in A.OUT
1186           format.
1187
1188 config BINFMT_ELF
1189         tristate "Kernel support for ELF binaries"
1190         ---help---
1191           ELF (Executable and Linkable Format) is a format for libraries and
1192           executables used across different architectures and operating
1193           systems. Saying Y here will enable your kernel to run ELF binaries
1194           and enlarge it by about 13 KB. ELF support under Linux has now all
1195           but replaced the traditional Linux a.out formats (QMAGIC and ZMAGIC)
1196           because it is portable (this does *not* mean that you will be able
1197           to run executables from different architectures or operating systems
1198           however) and makes building run-time libraries very easy. Many new
1199           executables are distributed solely in ELF format. You definitely
1200           want to say Y here.
1201
1202           Information about ELF is contained in the ELF HOWTO available from
1203           <http://www.tldp.org/docs.html#howto>.
1204
1205           If you find that after upgrading from Linux kernel 1.2 and saying Y
1206           here, you still can't run any ELF binaries (they just crash), then
1207           you'll have to install the newest ELF runtime libraries, including
1208           ld.so (check the file <file:Documentation/Changes> for location and
1209           latest version).
1210
1211           If you want to compile this as a module ( = code which can be
1212           inserted in and removed from the running kernel whenever you want),
1213           say M here and read <file:Documentation/modules.txt>.  The module
1214           will be called binfmt_elf. Saying M or N here is dangerous because
1215           some crucial programs on your system might be in ELF format.
1216
1217 config BINFMT_MISC
1218         tristate "Kernel support for MISC binaries"
1219         ---help---
1220           If you say Y here, it will be possible to plug wrapper-driven binary
1221           formats into the kernel. You will like this especially when you use
1222           programs that need an interpreter to run like Java, Python or
1223           Emacs-Lisp. It's also useful if you often run DOS executables under
1224           the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO, available from
1225           <http://www.tldp.org/docs.html#howto>). Once you have
1226           registered such a binary class with the kernel, you can start one of
1227           those programs simply by typing in its name at a shell prompt; Linux
1228           will automatically feed it to the correct interpreter.
1229
1230           You can do other nice things, too. Read the file
1231           <file:Documentation/binfmt_misc.txt> to learn how to use this
1232           feature, and <file:Documentation/java.txt> for information about how
1233           to include Java support.
1234
1235           You must say Y to "/proc file system support" (CONFIG_PROC_FS) to
1236           use this part of the kernel.
1237
1238           You may say M here for module support and later load the module when
1239           you have use for it; the module is called binfmt_misc. If you
1240           don't know what to answer at this point, say Y.
1241
1242 endmenu
1243
1244 source "drivers/mtd/Kconfig"
1245
1246 source "drivers/parport/Kconfig"
1247
1248 source "drivers/pnp/Kconfig"
1249
1250 source "drivers/block/Kconfig"
1251
1252
1253 menu "ATA/ATAPI/MFM/RLL device support"
1254
1255 config IDE
1256         tristate "ATA/ATAPI/MFM/RLL device support"
1257         ---help---
1258           If you say Y here, your kernel will be able to manage low cost mass
1259           storage units such as ATA/(E)IDE and ATAPI units. The most common
1260           cases are IDE hard drives and ATAPI CD-ROM drives.
1261
1262           If your system is pure SCSI and doesn't use these interfaces, you
1263           can say N here.
1264
1265           Integrated Disk Electronics (IDE aka ATA-1) is a connecting standard
1266           for mass storage units such as hard disks. It was designed by
1267           Western Digital and Compaq Computer in 1984. It was then named
1268           ST506. Quite a number of disks use the IDE interface.
1269
1270           AT Attachment (ATA) is the superset of the IDE specifications.
1271           ST506 was also called ATA-1.
1272
1273           Fast-IDE is ATA-2 (also named Fast ATA), Enhanced IDE (EIDE) is
1274           ATA-3. It provides support for larger disks (up to 8.4GB by means of
1275           the LBA standard), more disks (4 instead of 2) and for other mass
1276           storage units such as tapes and cdrom. UDMA/33 (aka UltraDMA/33) is
1277           ATA-4 and provides faster (and more CPU friendly) transfer modes
1278           than previous PIO (Programmed processor Input/Output) from previous
1279           ATA/IDE standards by means of fast DMA controllers.
1280
1281           ATA Packet Interface (ATAPI) is a protocol used by EIDE tape and
1282           CD-ROM drives, similar in many respects to the SCSI protocol.
1283
1284           SMART IDE (Self Monitoring, Analysis and Reporting Technology) was
1285           designed in order to prevent data corruption and disk crash by
1286           detecting pre hardware failure conditions (heat, access time, and
1287           the like...). Disks built since June 1995 may follow this standard.
1288           The kernel itself don't manage this; however there are quite a
1289           number of user programs such as smart that can query the status of
1290           SMART parameters disk.
1291
1292           If you want to compile this driver as a module ( = code which can be
1293           inserted in and removed from the running kernel whenever you want),
1294           say M here and read <file:Documentation/modules.txt>. The module
1295           will be called ide.
1296
1297           For further information, please read <file:Documentation/ide.txt>.
1298
1299           If unsure, say Y.
1300
1301 source "drivers/ide/Kconfig"
1302
1303 endmenu
1304
1305
1306 menu "SCSI device support"
1307
1308 config SCSI
1309         tristate "SCSI device support"
1310         ---help---
1311           If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
1312           any other SCSI device under Linux, say Y and make sure that you know
1313           the name of your SCSI host adapter (the card inside your computer
1314           that "speaks" the SCSI protocol, also called SCSI controller),
1315           because you will be asked for it.
1316
1317           You also need to say Y here if you want support for the parallel
1318           port version of the 100 MB IOMEGA ZIP drive.
1319
1320           This driver is also available as a module ( = code which can be
1321           inserted in and removed from the running kernel whenever you want).
1322           The module will be called scsi_mod.  If you want to compile it as
1323           a module, say M here and read <file:Documentation/modules.txt> and
1324           <file:Documentation/scsi/scsi.txt>.  However, do not compile this as a
1325           module if your root file system (the one containing the directory /)
1326           is located on a SCSI device.
1327
1328 source "drivers/scsi/Kconfig"
1329
1330 endmenu
1331
1332
1333 menu "Old CD-ROM drivers (not SCSI, not IDE)"
1334         depends on ISA
1335
1336 config CD_NO_IDESCSI
1337         bool "Support non-SCSI/IDE/ATAPI CDROM drives"
1338         ---help---
1339           If you have a CD-ROM drive that is neither SCSI nor IDE/ATAPI, say Y
1340           here, otherwise N. Read the CD-ROM-HOWTO, available from
1341           <http://www.tldp.org/docs.html#howto>.
1342
1343           Note that the answer to this question doesn't directly affect the
1344           kernel: saying N will just cause the configurator to skip all
1345           the questions about these CD-ROM drives. If you are unsure what you
1346           have, say Y and find out whether you have one of the following
1347           drives.
1348
1349           For each of these drivers, a file Documentation/cdrom/{driver_name}
1350           exists. Especially in cases where you do not know exactly which kind
1351           of drive you have you should read there. Most of these drivers use a
1352           file drivers/cdrom/{driver_name}.h where you can define your
1353           interface parameters and switch some internal goodies.
1354
1355           All these CD-ROM drivers are also usable as a module ( = code which
1356           can be inserted in and removed from the running kernel whenever you
1357           want). If you want to compile them as module, say M instead of Y and
1358           read <file:Documentation/modules.txt>.
1359
1360           If you want to use any of these CD-ROM drivers, you also have to
1361           answer Y or M to "ISO 9660 CD-ROM file system support" below (this
1362           answer will get "defaulted" for you if you enable any of the Linux
1363           CD-ROM drivers).
1364
1365 source "drivers/cdrom/Kconfig"
1366
1367 endmenu
1368
1369 source "drivers/md/Kconfig"
1370
1371 source "drivers/message/fusion/Kconfig"
1372
1373 source "drivers/ieee1394/Kconfig"
1374
1375 source "drivers/message/i2o/Kconfig"
1376
1377 source "net/Kconfig"
1378
1379 source "net/ax25/Kconfig"
1380
1381 source "net/irda/Kconfig"
1382
1383 source "drivers/isdn/Kconfig"
1384
1385 source "drivers/telephony/Kconfig"
1386
1387 #
1388 # input before char - char/joystick depends on it. As does USB.
1389 #
1390 source "drivers/input/Kconfig"
1391
1392 source "drivers/char/Kconfig"
1393
1394 #source drivers/misc/Config.in
1395 source "drivers/media/Kconfig"
1396
1397 source "fs/Kconfig"
1398
1399 source "drivers/video/Kconfig"
1400
1401 menu "Sound"
1402
1403 config SOUND
1404         tristate "Sound card support"
1405         ---help---
1406           If you have a sound card in your computer, i.e. if it can say more
1407           than an occasional beep, say Y.  Be sure to have all the information
1408           about your sound card and its configuration down (I/O port,
1409           interrupt and DMA channel), because you will be asked for it.
1410
1411           You want to read the Sound-HOWTO, available from
1412           <http://www.tldp.org/docs.html#howto>. General information about
1413           the modular sound system is contained in the files
1414           <file:Documentation/sound/Introduction>.  The file
1415           <file:Documentation/sound/README.OSS> contains some slightly
1416           outdated but still useful information as well.
1417
1418           If you have a PnP sound card and you want to configure it at boot
1419           time using the ISA PnP tools (read
1420           <http://www.roestock.demon.co.uk/isapnptools/>), then you need to
1421           compile the sound card support as a module ( = code which can be
1422           inserted in and removed from the running kernel whenever you want)
1423           and load that module after the PnP configuration is finished.  To do
1424           this, say M here and read <file:Documentation/modules.txt> as well
1425           as <file:Documentation/sound/README.modules>; the module will be
1426           called soundcore.
1427
1428           I'm told that even without a sound card, you can make your computer
1429           say more than an occasional beep, by programming the PC speaker.
1430           Kernel patches and supporting utilities to do that are in the pcsp
1431           package, available at <ftp://ftp.infradead.org/pub/pcsp/>.
1432
1433 source "sound/Kconfig"
1434
1435 endmenu
1436
1437 source "drivers/usb/Kconfig"
1438
1439 source "net/bluetooth/Kconfig"
1440
1441 source "arch/i386/oprofile/Kconfig"
1442
1443
1444 menu "Kernel hacking"
1445
1446 config DEBUG_KERNEL
1447         bool "Kernel debugging"
1448         help
1449           Say Y here if you are developing drivers or trying to debug and
1450           identify kernel problems.
1451
1452 config DEBUG_STACKOVERFLOW
1453         bool "Check for stack overflows"
1454         depends on DEBUG_KERNEL
1455
1456 config DEBUG_SLAB
1457         bool "Debug memory allocations"
1458         depends on DEBUG_KERNEL
1459         help
1460           Say Y here to have the kernel do limited verification on memory
1461           allocation as well as poisoning memory on free to catch use of freed
1462           memory.
1463
1464 config DEBUG_IOVIRT
1465         bool "Memory mapped I/O debugging"
1466         depends on DEBUG_KERNEL
1467         help
1468           Say Y here to get warned whenever an attempt is made to do I/O on
1469           obviously invalid addresses such as those generated when ioremap()
1470           calls are forgotten.  Memory mapped I/O will go through an extra
1471           check to catch access to unmapped ISA addresses, an access method
1472           that can still be used by old drivers that are being ported from
1473           2.0/2.2.
1474
1475 config MAGIC_SYSRQ
1476         bool "Magic SysRq key"
1477         depends on DEBUG_KERNEL
1478         help
1479           If you say Y here, you will have some control over the system even
1480           if the system crashes for example during kernel debugging (e.g., you
1481           will be able to flush the buffer cache to disk, reboot the system
1482           immediately or dump some status information). This is accomplished
1483           by pressing various keys while holding SysRq (Alt+PrintScreen). It
1484           also works on a serial console (on PC hardware at least), if you
1485           send a BREAK and then within 5 seconds a command keypress. The
1486           keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
1487           unless you really know what this hack does.
1488
1489 config DEBUG_SPINLOCK
1490         bool "Spinlock debugging"
1491         depends on DEBUG_KERNEL
1492         help
1493           Say Y here and build SMP to catch missing spinlock initialization
1494           and certain other kinds of spinlock errors commonly made.  This is
1495           best used in conjunction with the NMI watchdog so that spinlock
1496           deadlocks are also debuggable.
1497
1498 config DEBUG_HIGHMEM
1499         bool "Highmem debugging"
1500         depends on DEBUG_KERNEL && HIGHMEM
1501         help
1502           This options enables addition error checking for high memory systems.
1503           Disable for production systems.
1504
1505 config KALLSYMS
1506         bool "Load all symbols for debugging/kksymoops"
1507         help
1508           Say Y here to let the kernel print out symbolic crash information and
1509           symbolic stack backtraces. This increases the size of the kernel
1510           somewhat, as all symbols have to be loaded into the kernel image.
1511
1512 config DEBUG_SPINLOCK_SLEEP
1513         bool "Sleep-inside-spinlock checking"
1514         help
1515           If you say Y here, various routines which may sleep will become very
1516           noisy if they are called with a spinlock held.        
1517
1518 config FRAME_POINTER
1519         bool "Compile the kernel with frame pointers"
1520         help
1521           If you say Y here the resulting kernel image will be slightly larger
1522           and slower, but it will give very useful debugging information.
1523           If you don't debug the kernel, you can say N, but we may not be able
1524           to solve problems without frame pointers.
1525
1526 config X86_EXTRA_IRQS
1527         bool
1528         depends on X86_LOCAL_APIC || X86_VOYAGER
1529         default y
1530
1531 config X86_FIND_SMP_CONFIG
1532         bool
1533         depends on X86_LOCAL_APIC || X86_VOYAGER
1534         default y
1535
1536 config X86_MPPARSE
1537         bool
1538         depends on X86_LOCAL_APIC && !X86_VISWS
1539         default y
1540
1541 endmenu
1542
1543 source "security/Kconfig"
1544
1545 source "crypto/Kconfig"
1546
1547 source "lib/Kconfig"
1548
1549 source "suse/Kconfig"
1550
1551 config X86_SMP
1552         bool
1553         depends on SMP && !X86_VOYAGER
1554         default y
1555
1556 config X86_HT
1557         bool
1558         depends on SMP && !(X86_VISWS || X86_VOYAGER)
1559         default y
1560
1561 config X86_BIOS_REBOOT
1562         bool
1563         depends on !(X86_VISWS || X86_VOYAGER)
1564         default y
1565
1566 config X86_TRAMPOLINE
1567         bool
1568         depends on SMP || X86_VISWS
1569         default y