debuggers.hg

view linux-2.6.9-xen-sparse/arch/xen/i386/Kconfig @ 3360:01c9d6eb4af5

bitkeeper revision 1.1159.187.79 (41c9f233PwUo9mluRGkYmQFYLqGgCA)

Allow full range of CPU configs in Linux 2.6. Most of them do
actually work. We can re-disable or fix any that turn out not to.
author kaf24@scramble.cl.cam.ac.uk
date Wed Dec 22 22:16:19 2004 +0000 (2004-12-22)
parents 842780fc6584
children ddc28d82a044
line source
1 #
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
4 #
6 menu "X86 Processor Configuration"
8 config XENARCH
9 string
10 default i386
12 config MMU
13 bool
14 default y
16 config SBUS
17 bool
19 config UID16
20 bool
21 default y
23 config GENERIC_ISA_DMA
24 bool
25 default y
28 choice
29 prompt "Processor family"
30 default M686
32 config M386
33 bool "386"
34 ---help---
35 This is the processor type of your CPU. This information is used for
36 optimizing purposes. In order to compile a kernel that can run on
37 all x86 CPU types (albeit not optimally fast), you can specify
38 "386" here.
40 The kernel will not necessarily run on earlier architectures than
41 the one you have chosen, e.g. a Pentium optimized kernel will run on
42 a PPro, but not necessarily on a i486.
44 Here are the settings recommended for greatest speed:
45 - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI
46 486DLC/DLC2, UMC 486SX-S and NexGen Nx586. Only "386" kernels
47 will run on a 386 class machine.
48 - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
49 SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
50 - "586" for generic Pentium CPUs lacking the TSC
51 (time stamp counter) register.
52 - "Pentium-Classic" for the Intel Pentium.
53 - "Pentium-MMX" for the Intel Pentium MMX.
54 - "Pentium-Pro" for the Intel Pentium Pro.
55 - "Pentium-II" for the Intel Pentium II or pre-Coppermine Celeron.
56 - "Pentium-III" for the Intel Pentium III or Coppermine Celeron.
57 - "Pentium-4" for the Intel Pentium 4 or P4-based Celeron.
58 - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
59 - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
60 - "Crusoe" for the Transmeta Crusoe series.
61 - "Winchip-C6" for original IDT Winchip.
62 - "Winchip-2" for IDT Winchip 2.
63 - "Winchip-2A" for IDT Winchips with 3dNow! capabilities.
64 - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
65 - "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above).
67 If you don't know what to do, choose "386".
69 config M486
70 bool "486"
71 help
72 Select this for a 486 series processor, either Intel or one of the
73 compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX,
74 DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or
75 U5S.
77 config M586
78 bool "586/K5/5x86/6x86/6x86MX"
79 help
80 Select this for an 586 or 686 series processor such as the AMD K5,
81 the Intel 5x86 or 6x86, or the Intel 6x86MX. This choice does not
82 assume the RDTSC (Read Time Stamp Counter) instruction.
84 config M586TSC
85 bool "Pentium-Classic"
86 help
87 Select this for a Pentium Classic processor with the RDTSC (Read
88 Time Stamp Counter) instruction for benchmarking.
90 config M586MMX
91 bool "Pentium-MMX"
92 help
93 Select this for a Pentium with the MMX graphics/multimedia
94 extended instructions.
96 config M686
97 bool "Pentium-Pro"
98 help
99 Select this for Intel Pentium Pro chips. This enables the use of
100 Pentium Pro extended instructions, and disables the init-time guard
101 against the f00f bug found in earlier Pentiums.
103 config MPENTIUMII
104 bool "Pentium-II/Celeron(pre-Coppermine)"
105 help
106 Select this for Intel chips based on the Pentium-II and
107 pre-Coppermine Celeron core. This option enables an unaligned
108 copy optimization, compiles the kernel with optimization flags
109 tailored for the chip, and applies any applicable Pentium Pro
110 optimizations.
112 config MPENTIUMIII
113 bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
114 help
115 Select this for Intel chips based on the Pentium-III and
116 Celeron-Coppermine core. This option enables use of some
117 extended prefetch instructions in addition to the Pentium II
118 extensions.
120 config MPENTIUMM
121 bool "Pentium M"
122 help
123 Select this for Intel Pentium M (not Pentium-4 M)
124 notebook chips.
126 config MPENTIUM4
127 bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon"
128 help
129 Select this for Intel Pentium 4 chips. This includes the
130 Pentium 4, P4-based Celeron and Xeon, and Pentium-4 M
131 (not Pentium M) chips. This option enables compile flags
132 optimized for the chip, uses the correct cache shift, and
133 applies any applicable Pentium III optimizations.
135 config MK6
136 bool "K6/K6-II/K6-III"
137 help
138 Select this for an AMD K6-family processor. Enables use of
139 some extended instructions, and passes appropriate optimization
140 flags to GCC.
142 config MK7
143 bool "Athlon/Duron/K7"
144 help
145 Select this for an AMD Athlon K7-family processor. Enables use of
146 some extended instructions, and passes appropriate optimization
147 flags to GCC.
149 config MK8
150 bool "Opteron/Athlon64/Hammer/K8"
151 help
152 Select this for an AMD Opteron or Athlon64 Hammer-family processor. Enables
153 use of some extended instructions, and passes appropriate optimization
154 flags to GCC.
156 config MCRUSOE
157 bool "Crusoe"
158 help
159 Select this for a Transmeta Crusoe processor. Treats the processor
160 like a 586 with TSC, and sets some GCC optimization flags (like a
161 Pentium Pro with no alignment requirements).
163 config MWINCHIPC6
164 bool "Winchip-C6"
165 help
166 Select this for an IDT Winchip C6 chip. Linux and GCC
167 treat this chip as a 586TSC with some extended instructions
168 and alignment requirements.
170 config MWINCHIP2
171 bool "Winchip-2"
172 help
173 Select this for an IDT Winchip-2. Linux and GCC
174 treat this chip as a 586TSC with some extended instructions
175 and alignment requirements.
177 config MWINCHIP3D
178 bool "Winchip-2A/Winchip-3"
179 help
180 Select this for an IDT Winchip-2A or 3. Linux and GCC
181 treat this chip as a 586TSC with some extended instructions
182 and alignment reqirements. Also enable out of order memory
183 stores for this CPU, which can increase performance of some
184 operations.
186 config MCYRIXIII
187 bool "CyrixIII/VIA-C3"
188 help
189 Select this for a Cyrix III or C3 chip. Presently Linux and GCC
190 treat this chip as a generic 586. Whilst the CPU is 686 class,
191 it lacks the cmov extension which gcc assumes is present when
192 generating 686 code.
193 Note that Nehemiah (Model 9) and above will not boot with this
194 kernel due to them lacking the 3DNow! instructions used in earlier
195 incarnations of the CPU.
197 config MVIAC3_2
198 bool "VIA C3-2 (Nehemiah)"
199 help
200 Select this for a VIA C3 "Nehemiah". Selecting this enables usage
201 of SSE and tells gcc to treat the CPU as a 686.
202 Note, this kernel will not boot on older (pre model 9) C3s.
204 endchoice
206 config X86_GENERIC
207 bool "Generic x86 support"
208 help
209 Instead of just including optimizations for the selected
210 x86 variant (e.g. PII, Crusoe or Athlon), include some more
211 generic optimizations as well. This will make the kernel
212 perform better on x86 CPUs other than that selected.
214 This is really intended for distributors who need more
215 generic optimizations.
217 #
218 # Define implied options from the CPU selection here
219 #
220 config X86_CMPXCHG
221 bool
222 depends on !M386
223 default y
225 config X86_XADD
226 bool
227 depends on !M386
228 default y
230 config X86_L1_CACHE_SHIFT
231 int
232 default "7" if MPENTIUM4 || X86_GENERIC
233 default "4" if X86_ELAN || M486 || M386
234 default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2
235 default "6" if MK7 || MK8 || MPENTIUMM
237 config RWSEM_GENERIC_SPINLOCK
238 bool
239 depends on M386
240 default y
242 config RWSEM_XCHGADD_ALGORITHM
243 bool
244 depends on !M386
245 default y
247 config X86_PPRO_FENCE
248 bool
249 depends on M686 || M586MMX || M586TSC || M586 || M486 || M386
250 default y
252 config X86_F00F_BUG
253 bool
254 depends on M586MMX || M586TSC || M586 || M486 || M386
255 default y
257 config X86_WP_WORKS_OK
258 bool
259 depends on !M386
260 default y
262 config X86_INVLPG
263 bool
264 depends on !M386
265 default y
267 config X86_BSWAP
268 bool
269 depends on !M386
270 default y
272 config X86_POPAD_OK
273 bool
274 depends on !M386
275 default y
277 config X86_ALIGNMENT_16
278 bool
279 depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2
280 default y
282 config X86_GOOD_APIC
283 bool
284 depends on MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8
285 default y
287 config X86_INTEL_USERCOPY
288 bool
289 depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7
290 default y
292 config X86_USE_PPRO_CHECKSUM
293 bool
294 depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2
295 default y
297 config X86_USE_3DNOW
298 bool
299 depends on MCYRIXIII || MK7
300 default y
302 config X86_OOSTORE
303 bool
304 depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR
305 default y
307 config HPET_TIMER
308 bool
309 default n
310 #config HPET_TIMER
311 # bool "HPET Timer Support"
312 # help
313 # This enables the use of the HPET for the kernel's internal timer.
314 # HPET is the next generation timer replacing legacy 8254s.
315 # You can safely choose Y here. However, HPET will only be
316 # activated if the platform and the BIOS support this feature.
317 # Otherwise the 8254 will be used for timing services.
318 #
319 # Choose N to continue using the legacy 8254 timer.
321 config HPET_EMULATE_RTC
322 def_bool HPET_TIMER && RTC=y
324 config SMP
325 bool
326 default n
327 #config SMP
328 # bool "Symmetric multi-processing support"
329 # ---help---
330 # This enables support for systems with more than one CPU. If you have
331 # a system with only one CPU, like most personal computers, say N. If
332 # you have a system with more than one CPU, say Y.
333 #
334 # If you say N here, the kernel will run on single and multiprocessor
335 # machines, but will use only one CPU of a multiprocessor machine. If
336 # you say Y here, the kernel will run on many, but not all,
337 # singleprocessor machines. On a singleprocessor machine, the kernel
338 # will run faster if you say N here.
339 #
340 # Note that if you say Y here and choose architecture "586" or
341 # "Pentium" under "Processor family", the kernel will not work on 486
342 # architectures. Similarly, multiprocessor kernels for the "PPro"
343 # architecture may not work on all Pentium based boards.
344 #
345 # People using multiprocessor machines who say Y here should also say
346 # Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
347 # Management" code will be disabled if you say Y here.
348 #
349 # See also the <file:Documentation/smp.txt>,
350 # <file:Documentation/i386/IO-APIC.txt>,
351 # <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
352 # <http://www.tldp.org/docs.html#howto>.
353 #
354 # If you don't know what to do here, say N.
356 config NR_CPUS
357 int "Maximum number of CPUs (2-255)"
358 range 2 255
359 depends on SMP
360 default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
361 default "8"
362 help
363 This allows you to specify the maximum number of CPUs which this
364 kernel will support. The maximum supported value is 255 and the
365 minimum value which makes sense is 2.
367 This is purely to save memory - each supported CPU adds
368 approximately eight kilobytes to the kernel image.
370 config SCHED_SMT
371 bool "SMT (Hyperthreading) scheduler support"
372 depends on SMP
373 default off
374 help
375 SMT scheduler support improves the CPU scheduler's decision making
376 when dealing with Intel Pentium 4 chips with HyperThreading at a
377 cost of slightly increased overhead in some places. If unsure say
378 N here.
380 config PREEMPT
381 bool "Preemptible Kernel"
382 help
383 This option reduces the latency of the kernel when reacting to
384 real-time or interactive events by allowing a low priority process to
385 be preempted even if it is in kernel mode executing a system call.
386 This allows applications to run more reliably even when the system is
387 under load.
389 Say Y here if you are building a kernel for a desktop, embedded
390 or real-time system. Say N if you are unsure.
392 #config X86_TSC
393 # bool
394 # depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2) && !X86_NUMAQ
395 # default y
397 #config X86_MCE
398 # bool "Machine Check Exception"
399 # depends on !X86_VOYAGER
400 # ---help---
401 # Machine Check Exception support allows the processor to notify the
402 # kernel if it detects a problem (e.g. overheating, component failure).
403 # The action the kernel takes depends on the severity of the problem,
404 # ranging from a warning message on the console, to halting the machine.
405 # Your processor must be a Pentium or newer to support this - check the
406 # flags in /proc/cpuinfo for mce. Note that some older Pentium systems
407 # have a design flaw which leads to false MCE events - hence MCE is
408 # disabled on all P5 processors, unless explicitly enabled with "mce"
409 # as a boot argument. Similarly, if MCE is built in and creates a
410 # problem on some new non-standard machine, you can boot with "nomce"
411 # to disable it. MCE support simply ignores non-MCE processors like
412 # the 386 and 486, so nearly everyone can say Y here.
414 #config X86_MCE_NONFATAL
415 # tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
416 # depends on X86_MCE
417 # help
418 # Enabling this feature starts a timer that triggers every 5 seconds which
419 # will look at the machine check registers to see if anything happened.
420 # Non-fatal problems automatically get corrected (but still logged).
421 # Disable this if you don't want to see these messages.
422 # Seeing the messages this option prints out may be indicative of dying hardware,
423 # or out-of-spec (ie, overclocked) hardware.
424 # This option only does something on certain CPUs.
425 # (AMD Athlon/Duron and Intel Pentium 4)
427 #config X86_MCE_P4THERMAL
428 # bool "check for P4 thermal throttling interrupt."
429 # depends on X86_MCE && (X86_UP_APIC || SMP)
430 # help
431 # Enabling this feature will cause a message to be printed when the P4
432 # enters thermal throttling.
434 #config MICROCODE
435 # tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
436 # ---help---
437 # If you say Y here and also to "/dev file system support" in the
438 # 'File systems' section, you will be able to update the microcode on
439 # Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
440 # Pentium III, Pentium 4, Xeon etc. You will obviously need the
441 # actual microcode binary data itself which is not shipped with the
442 # Linux kernel.
443 #
444 # For latest news and information on obtaining all the required
445 # ingredients for this driver, check:
446 # <http://www.urbanmyth.org/microcode/>.
447 #
448 # To compile this driver as a module, choose M here: the
449 # module will be called microcode.
451 #config X86_MSR
452 # tristate "/dev/cpu/*/msr - Model-specific register support"
453 # help
454 # This device gives privileged processes access to the x86
455 # Model-Specific Registers (MSRs). It is a character device with
456 # major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
457 # MSR accesses are directed to a specific CPU on multi-processor
458 # systems.
460 config X86_CPUID
461 tristate "/dev/cpu/*/cpuid - CPU information support"
462 help
463 This device gives processes access to the x86 CPUID instruction to
464 be executed on a specific processor. It is a character device
465 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
466 /dev/cpu/31/cpuid.
468 source "drivers/firmware/Kconfig"
470 choice
471 prompt "High Memory Support"
472 default NOHIGHMEM
474 config NOHIGHMEM
475 bool "off"
476 ---help---
477 Linux can use up to 64 Gigabytes of physical memory on x86 systems.
478 However, the address space of 32-bit x86 processors is only 4
479 Gigabytes large. That means that, if you have a large amount of
480 physical memory, not all of it can be "permanently mapped" by the
481 kernel. The physical memory that's not permanently mapped is called
482 "high memory".
484 If you are compiling a kernel which will never run on a machine with
485 more than 1 Gigabyte total physical RAM, answer "off" here (default
486 choice and suitable for most users). This will result in a "3GB/1GB"
487 split: 3GB are mapped so that each process sees a 3GB virtual memory
488 space and the remaining part of the 4GB virtual memory space is used
489 by the kernel to permanently map as much physical memory as
490 possible.
492 If the machine has between 1 and 4 Gigabytes physical RAM, then
493 answer "4GB" here.
495 If more than 4 Gigabytes is used then answer "64GB" here. This
496 selection turns Intel PAE (Physical Address Extension) mode on.
497 PAE implements 3-level paging on IA32 processors. PAE is fully
498 supported by Linux, PAE mode is implemented on all recent Intel
499 processors (Pentium Pro and better). NOTE: If you say "64GB" here,
500 then the kernel will not boot on CPUs that don't support PAE!
502 The actual amount of total physical memory will either be
503 auto detected or can be forced by using a kernel command line option
504 such as "mem=256M". (Try "man bootparam" or see the documentation of
505 your boot loader (lilo or loadlin) about how to pass options to the
506 kernel at boot time.)
508 If unsure, say "off".
510 config HIGHMEM4G
511 bool "4GB"
512 help
513 Select this if you have a 32-bit processor and between 1 and 4
514 gigabytes of physical RAM.
516 #config HIGHMEM64G
517 # bool "64GB"
518 # help
519 # Select this if you have a 32-bit processor and more than 4
520 # gigabytes of physical RAM.
522 endchoice
524 config HIGHMEM
525 bool
526 depends on HIGHMEM64G || HIGHMEM4G
527 default y
529 config X86_PAE
530 bool
531 depends on HIGHMEM64G
532 default y
534 # Common NUMA Features
535 config NUMA
536 bool "Numa Memory Allocation and Scheduler Support"
537 depends on SMP && HIGHMEM64G && (X86_NUMAQ || X86_GENERICARCH || (X86_SUMMIT && ACPI))
538 default n if X86_PC
539 default y if (X86_NUMAQ || X86_SUMMIT)
541 # Need comments to help the hapless user trying to turn on NUMA support
542 comment "NUMA (NUMA-Q) requires SMP, 64GB highmem support"
543 depends on X86_NUMAQ && (!HIGHMEM64G || !SMP)
545 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
546 depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI)
548 config DISCONTIGMEM
549 bool
550 depends on NUMA
551 default y
553 config HAVE_ARCH_BOOTMEM_NODE
554 bool
555 depends on NUMA
556 default y
558 #config HIGHPTE
559 # bool "Allocate 3rd-level pagetables from highmem"
560 # depends on HIGHMEM4G || HIGHMEM64G
561 # help
562 # The VM uses one page table entry for each page of physical memory.
563 # For systems with a lot of RAM, this can be wasteful of precious
564 # low memory. Setting this option will put user-space page table
565 # entries in high memory.
567 config MTRR
568 bool
569 depends on XEN_PRIVILEGED_GUEST
570 default y
572 #config MTRR
573 # bool "MTRR (Memory Type Range Register) support"
574 # ---help---
575 # On Intel P6 family processors (Pentium Pro, Pentium II and later)
576 # the Memory Type Range Registers (MTRRs) may be used to control
577 # processor access to memory ranges. This is most useful if you have
578 # a video (VGA) card on a PCI or AGP bus. Enabling write-combining
579 # allows bus write transfers to be combined into a larger transfer
580 # before bursting over the PCI/AGP bus. This can increase performance
581 # of image write operations 2.5 times or more. Saying Y here creates a
582 # /proc/mtrr file which may be used to manipulate your processor's
583 # MTRRs. Typically the X server should use this.
584 #
585 # This code has a reasonably generic interface so that similar
586 # control registers on other processors can be easily supported
587 # as well:
588 #
589 # The Cyrix 6x86, 6x86MX and M II processors have Address Range
590 # Registers (ARRs) which provide a similar functionality to MTRRs. For
591 # these, the ARRs are used to emulate the MTRRs.
592 # The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
593 # MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
594 # write-combining. All of these processors are supported by this code
595 # and it makes sense to say Y here if you have one of them.
596 #
597 # Saying Y here also fixes a problem with buggy SMP BIOSes which only
598 # set the MTRRs for the boot CPU and not for the secondary CPUs. This
599 # can lead to all sorts of problems, so it's good to say Y here.
600 #
601 # You can safely say Y even if your machine doesn't have MTRRs, you'll
602 # just add about 9 KB to your kernel.
603 #
604 # See <file:Documentation/mtrr.txt> for more information.
606 config IRQBALANCE
607 bool "Enable kernel irq balancing"
608 depends on SMP && X86_IO_APIC
609 default y
610 help
611 The default yes will allow the kernel to do irq load balancing.
612 Saying no will keep the kernel from doing irq load balancing.
614 config HAVE_DEC_LOCK
615 bool
616 depends on (SMP || PREEMPT) && X86_CMPXCHG
617 default y
619 # turning this on wastes a bunch of space.
620 # Summit needs it only when NUMA is on
621 config BOOT_IOREMAP
622 bool
623 depends on (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI))
624 default y
626 config REGPARM
627 bool "Use register arguments (EXPERIMENTAL)"
628 depends on EXPERIMENTAL
629 default n
630 help
631 Compile the kernel with -mregparm=3. This uses an different ABI
632 and passes the first three arguments of a function call in registers.
633 This will probably break binary only modules.
635 This feature is only enabled for gcc-3.0 and later - earlier compilers
636 generate incorrect output with certain kernel constructs when
637 -mregparm=3 is used.
640 if XEN_PHYSDEV_ACCESS
642 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
644 config X86_VISWS_APIC
645 bool
646 depends on X86_VISWS
647 default y
649 config X86_LOCAL_APIC
650 bool
651 depends on (X86_VISWS || SMP) && !X86_VOYAGER
652 default y
654 config X86_IO_APIC
655 bool
656 depends on SMP && !(X86_VISWS || X86_VOYAGER)
657 default y
659 config PCI
660 bool "PCI support" if !X86_VISWS
661 depends on !X86_VOYAGER
662 default y if X86_VISWS
663 help
664 Find out whether you have a PCI motherboard. PCI is the name of a
665 bus system, i.e. the way the CPU talks to the other stuff inside
666 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
667 VESA. If you have PCI, say Y, otherwise N.
669 The PCI-HOWTO, available from
670 <http://www.tldp.org/docs.html#howto>, contains valuable
671 information about which PCI hardware does work under Linux and which
672 doesn't.
674 #choice
675 # prompt "PCI access mode"
676 # depends on PCI && !X86_VISWS
677 # default PCI_GOANY
678 # ---help---
679 # On PCI systems, the BIOS can be used to detect the PCI devices and
680 # determine their configuration. However, some old PCI motherboards
681 # have BIOS bugs and may crash if this is done. Also, some embedded
682 # PCI-based systems don't have any BIOS at all. Linux can also try to
683 # detect the PCI hardware directly without using the BIOS.
684 #
685 # With this option, you can specify how Linux should detect the
686 # PCI devices. If you choose "BIOS", the BIOS will be used,
687 # if you choose "Direct", the BIOS won't be used, and if you
688 # choose "MMConfig", then PCI Express MMCONFIG will be used.
689 # If you choose "Any", the kernel will try MMCONFIG, then the
690 # direct access method and falls back to the BIOS if that doesn't
691 # work. If unsure, go with the default, which is "Any".
692 #
693 #config PCI_GOBIOS
694 # bool "BIOS"
695 #
696 #config PCI_GOMMCONFIG
697 # bool "MMConfig"
698 #
699 #config PCI_GODIRECT
700 # bool "Direct"
701 #
702 #config PCI_GOANY
703 # bool "Any"
704 #
705 #endchoice
706 #
707 #config PCI_BIOS
708 # bool
709 # depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
710 # default y
711 #
712 #config PCI_DIRECT
713 # bool
714 # depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
715 # default y
717 config PCI_DIRECT
718 bool
719 depends on PCI
720 default y
722 source "drivers/pci/Kconfig"
724 config ISA
725 bool "ISA support"
726 depends on !(X86_VOYAGER || X86_VISWS)
727 help
728 Find out whether you have ISA slots on your motherboard. ISA is the
729 name of a bus system, i.e. the way the CPU talks to the other stuff
730 inside your box. Other bus systems are PCI, EISA, MicroChannel
731 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
732 newer boards don't support it. If you have ISA, say Y, otherwise N.
734 config EISA
735 bool "EISA support"
736 depends on ISA
737 ---help---
738 The Extended Industry Standard Architecture (EISA) bus was
739 developed as an open alternative to the IBM MicroChannel bus.
741 The EISA bus provided some of the features of the IBM MicroChannel
742 bus while maintaining backward compatibility with cards made for
743 the older ISA bus. The EISA bus saw limited use between 1988 and
744 1995 when it was made obsolete by the PCI bus.
746 Say Y here if you are building a kernel for an EISA-based machine.
748 Otherwise, say N.
750 source "drivers/eisa/Kconfig"
752 config MCA
753 bool "MCA support"
754 depends on !(X86_VISWS || X86_VOYAGER)
755 help
756 MicroChannel Architecture is found in some IBM PS/2 machines and
757 laptops. It is a bus system similar to PCI or ISA. See
758 <file:Documentation/mca.txt> (and especially the web page given
759 there) before attempting to build an MCA bus kernel.
761 config MCA
762 depends on X86_VOYAGER
763 default y if X86_VOYAGER
765 source "drivers/mca/Kconfig"
767 config SCx200
768 tristate "NatSemi SCx200 support"
769 depends on !X86_VOYAGER
770 help
771 This provides basic support for the National Semiconductor SCx200
772 processor. Right now this is just a driver for the GPIO pins.
774 If you don't know what to do here, say N.
776 This support is also available as a module. If compiled as a
777 module, it will be called scx200.
779 source "drivers/pcmcia/Kconfig"
781 source "drivers/pci/hotplug/Kconfig"
783 endmenu
785 endif
787 menu "Kernel hacking"
789 config DEBUG_KERNEL
790 bool "Kernel debugging"
791 help
792 Say Y here if you are developing drivers or trying to debug and
793 identify kernel problems.
795 config EARLY_PRINTK
796 bool "Early printk" if EMBEDDED
797 default y
798 help
799 Write kernel log output directly into the VGA buffer or to a serial
800 port.
802 This is useful for kernel debugging when your machine crashes very
803 early before the console code is initialized. For normal operation
804 it is not recommended because it looks ugly and doesn't cooperate
805 with klogd/syslogd or the X server. You should normally N here,
806 unless you want to debug such a crash.
808 config DEBUG_STACKOVERFLOW
809 bool "Check for stack overflows"
810 depends on DEBUG_KERNEL
812 config DEBUG_STACK_USAGE
813 bool "Stack utilization instrumentation"
814 depends on DEBUG_KERNEL
815 help
816 Enables the display of the minimum amount of free stack which each
817 task has ever had available in the sysrq-T and sysrq-P debug output.
819 This option will slow down process creation somewhat.
821 config DEBUG_SLAB
822 bool "Debug memory allocations"
823 depends on DEBUG_KERNEL
824 help
825 Say Y here to have the kernel do limited verification on memory
826 allocation as well as poisoning memory on free to catch use of freed
827 memory.
829 config MAGIC_SYSRQ
830 bool "Magic SysRq key"
831 depends on DEBUG_KERNEL
832 help
833 If you say Y here, you will have some control over the system even
834 if the system crashes for example during kernel debugging (e.g., you
835 will be able to flush the buffer cache to disk, reboot the system
836 immediately or dump some status information). This is accomplished
837 by pressing various keys while holding SysRq (Alt+PrintScreen). It
838 also works on a serial console (on PC hardware at least), if you
839 send a BREAK and then within 5 seconds a command keypress. The
840 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
841 unless you really know what this hack does.
843 config DEBUG_SPINLOCK
844 bool "Spinlock debugging"
845 depends on DEBUG_KERNEL
846 help
847 Say Y here and build SMP to catch missing spinlock initialization
848 and certain other kinds of spinlock errors commonly made. This is
849 best used in conjunction with the NMI watchdog so that spinlock
850 deadlocks are also debuggable.
852 config DEBUG_PAGEALLOC
853 bool "Page alloc debugging"
854 depends on DEBUG_KERNEL
855 help
856 Unmap pages from the kernel linear mapping after free_pages().
857 This results in a large slowdown, but helps to find certain types
858 of memory corruptions.
860 config DEBUG_HIGHMEM
861 bool "Highmem debugging"
862 depends on DEBUG_KERNEL && HIGHMEM
863 help
864 This options enables addition error checking for high memory systems.
865 Disable for production systems.
867 config DEBUG_INFO
868 bool "Compile the kernel with debug info"
869 depends on DEBUG_KERNEL
870 help
871 If you say Y here the resulting kernel image will include
872 debugging info resulting in a larger kernel image.
873 Say Y here only if you plan to use gdb to debug the kernel.
874 If you don't debug the kernel, you can say N.
876 config DEBUG_SPINLOCK_SLEEP
877 bool "Sleep-inside-spinlock checking"
878 help
879 If you say Y here, various routines which may sleep will become very
880 noisy if they are called with a spinlock held.
882 config FRAME_POINTER
883 bool "Compile the kernel with frame pointers"
884 help
885 If you say Y here the resulting kernel image will be slightly larger
886 and slower, but it will give very useful debugging information.
887 If you don't debug the kernel, you can say N, but we may not be able
888 to solve problems without frame pointers.
890 config 4KSTACKS
891 bool "Use 4Kb for kernel stacks instead of 8Kb"
892 help
893 If you say Y here the kernel will use a 4Kb stacksize for the
894 kernel stack attached to each process/thread. This facilitates
895 running more threads on a system and also reduces the pressure
896 on the VM subsystem for higher order allocations. This option
897 will also use IRQ stacks to compensate for the reduced stackspace.
899 config X86_FIND_SMP_CONFIG
900 bool
901 depends on X86_LOCAL_APIC || X86_VOYAGER
902 default y
904 config X86_MPPARSE
905 bool
906 depends on X86_LOCAL_APIC && !X86_VISWS
907 default y
909 endmenu
911 config X86_SMP
912 bool
913 depends on SMP && !X86_VOYAGER
914 default y
916 config X86_HT
917 bool
918 depends on SMP && !(X86_VISWS || X86_VOYAGER)
919 default y
921 config X86_BIOS_REBOOT
922 bool
923 depends on !(X86_VISWS || X86_VOYAGER)
924 default y
926 config X86_TRAMPOLINE
927 bool
928 depends on X86_SMP || (X86_VOYAGER && SMP)
929 default y
931 # std_resources is overridden for pc9800, but that's not
932 # a currently selectable arch choice
933 config X86_STD_RESOURCES
934 bool
935 default y
937 config PC
938 bool
939 depends on X86 && !EMBEDDED
940 default y
942 endmenu