debuggers.hg

view linux-2.6.9-xen-sparse/arch/xen/i386/Kconfig @ 3361:ddc28d82a044

bitkeeper revision 1.1159.1.502 (41c9f250UPMNaCe07pXLSQ_YQhUUnw)

Merge scramble.cl.cam.ac.uk:/local/scratch/kaf24/xen-2.0-testing.bk
into scramble.cl.cam.ac.uk:/local/scratch/kaf24/xen-unstable.bk
author kaf24@scramble.cl.cam.ac.uk
date Wed Dec 22 22:16:48 2004 +0000 (2004-12-22)
parents c23dd7ec1f54 01c9d6eb4af5
children
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 "Symmetric multi-processing support"
326 ---help---
327 This enables support for systems with more than one CPU. If you have
328 a system with only one CPU, like most personal computers, say N. If
329 you have a system with more than one CPU, say Y.
331 If you say N here, the kernel will run on single and multiprocessor
332 machines, but will use only one CPU of a multiprocessor machine. If
333 you say Y here, the kernel will run on many, but not all,
334 singleprocessor machines. On a singleprocessor machine, the kernel
335 will run faster if you say N here.
337 Note that if you say Y here and choose architecture "586" or
338 "Pentium" under "Processor family", the kernel will not work on 486
339 architectures. Similarly, multiprocessor kernels for the "PPro"
340 architecture may not work on all Pentium based boards.
342 People using multiprocessor machines who say Y here should also say
343 Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
344 Management" code will be disabled if you say Y here.
346 See also the <file:Documentation/smp.txt>,
347 <file:Documentation/i386/IO-APIC.txt>,
348 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
349 <http://www.tldp.org/docs.html#howto>.
351 If you don't know what to do here, say N.
353 config NR_CPUS
354 int "Maximum number of CPUs (2-255)"
355 range 2 255
356 depends on SMP
357 default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
358 default "8"
359 help
360 This allows you to specify the maximum number of CPUs which this
361 kernel will support. The maximum supported value is 255 and the
362 minimum value which makes sense is 2.
364 This is purely to save memory - each supported CPU adds
365 approximately eight kilobytes to the kernel image.
367 config SCHED_SMT
368 bool "SMT (Hyperthreading) scheduler support"
369 depends on SMP
370 default off
371 help
372 SMT scheduler support improves the CPU scheduler's decision making
373 when dealing with Intel Pentium 4 chips with HyperThreading at a
374 cost of slightly increased overhead in some places. If unsure say
375 N here.
377 config PREEMPT
378 bool "Preemptible Kernel"
379 help
380 This option reduces the latency of the kernel when reacting to
381 real-time or interactive events by allowing a low priority process to
382 be preempted even if it is in kernel mode executing a system call.
383 This allows applications to run more reliably even when the system is
384 under load.
386 Say Y here if you are building a kernel for a desktop, embedded
387 or real-time system. Say N if you are unsure.
389 #config X86_TSC
390 # bool
391 # depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2) && !X86_NUMAQ
392 # default y
394 #config X86_MCE
395 # bool "Machine Check Exception"
396 # depends on !X86_VOYAGER
397 # ---help---
398 # Machine Check Exception support allows the processor to notify the
399 # kernel if it detects a problem (e.g. overheating, component failure).
400 # The action the kernel takes depends on the severity of the problem,
401 # ranging from a warning message on the console, to halting the machine.
402 # Your processor must be a Pentium or newer to support this - check the
403 # flags in /proc/cpuinfo for mce. Note that some older Pentium systems
404 # have a design flaw which leads to false MCE events - hence MCE is
405 # disabled on all P5 processors, unless explicitly enabled with "mce"
406 # as a boot argument. Similarly, if MCE is built in and creates a
407 # problem on some new non-standard machine, you can boot with "nomce"
408 # to disable it. MCE support simply ignores non-MCE processors like
409 # the 386 and 486, so nearly everyone can say Y here.
411 #config X86_MCE_NONFATAL
412 # tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
413 # depends on X86_MCE
414 # help
415 # Enabling this feature starts a timer that triggers every 5 seconds which
416 # will look at the machine check registers to see if anything happened.
417 # Non-fatal problems automatically get corrected (but still logged).
418 # Disable this if you don't want to see these messages.
419 # Seeing the messages this option prints out may be indicative of dying hardware,
420 # or out-of-spec (ie, overclocked) hardware.
421 # This option only does something on certain CPUs.
422 # (AMD Athlon/Duron and Intel Pentium 4)
424 #config X86_MCE_P4THERMAL
425 # bool "check for P4 thermal throttling interrupt."
426 # depends on X86_MCE && (X86_UP_APIC || SMP)
427 # help
428 # Enabling this feature will cause a message to be printed when the P4
429 # enters thermal throttling.
431 #config MICROCODE
432 # tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
433 # ---help---
434 # If you say Y here and also to "/dev file system support" in the
435 # 'File systems' section, you will be able to update the microcode on
436 # Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
437 # Pentium III, Pentium 4, Xeon etc. You will obviously need the
438 # actual microcode binary data itself which is not shipped with the
439 # Linux kernel.
440 #
441 # For latest news and information on obtaining all the required
442 # ingredients for this driver, check:
443 # <http://www.urbanmyth.org/microcode/>.
444 #
445 # To compile this driver as a module, choose M here: the
446 # module will be called microcode.
448 #config X86_MSR
449 # tristate "/dev/cpu/*/msr - Model-specific register support"
450 # help
451 # This device gives privileged processes access to the x86
452 # Model-Specific Registers (MSRs). It is a character device with
453 # major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
454 # MSR accesses are directed to a specific CPU on multi-processor
455 # systems.
457 config X86_CPUID
458 tristate "/dev/cpu/*/cpuid - CPU information support"
459 help
460 This device gives processes access to the x86 CPUID instruction to
461 be executed on a specific processor. It is a character device
462 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
463 /dev/cpu/31/cpuid.
465 source "drivers/firmware/Kconfig"
467 choice
468 prompt "High Memory Support"
469 default NOHIGHMEM
471 config NOHIGHMEM
472 bool "off"
473 ---help---
474 Linux can use up to 64 Gigabytes of physical memory on x86 systems.
475 However, the address space of 32-bit x86 processors is only 4
476 Gigabytes large. That means that, if you have a large amount of
477 physical memory, not all of it can be "permanently mapped" by the
478 kernel. The physical memory that's not permanently mapped is called
479 "high memory".
481 If you are compiling a kernel which will never run on a machine with
482 more than 1 Gigabyte total physical RAM, answer "off" here (default
483 choice and suitable for most users). This will result in a "3GB/1GB"
484 split: 3GB are mapped so that each process sees a 3GB virtual memory
485 space and the remaining part of the 4GB virtual memory space is used
486 by the kernel to permanently map as much physical memory as
487 possible.
489 If the machine has between 1 and 4 Gigabytes physical RAM, then
490 answer "4GB" here.
492 If more than 4 Gigabytes is used then answer "64GB" here. This
493 selection turns Intel PAE (Physical Address Extension) mode on.
494 PAE implements 3-level paging on IA32 processors. PAE is fully
495 supported by Linux, PAE mode is implemented on all recent Intel
496 processors (Pentium Pro and better). NOTE: If you say "64GB" here,
497 then the kernel will not boot on CPUs that don't support PAE!
499 The actual amount of total physical memory will either be
500 auto detected or can be forced by using a kernel command line option
501 such as "mem=256M". (Try "man bootparam" or see the documentation of
502 your boot loader (lilo or loadlin) about how to pass options to the
503 kernel at boot time.)
505 If unsure, say "off".
507 config HIGHMEM4G
508 bool "4GB"
509 help
510 Select this if you have a 32-bit processor and between 1 and 4
511 gigabytes of physical RAM.
513 #config HIGHMEM64G
514 # bool "64GB"
515 # help
516 # Select this if you have a 32-bit processor and more than 4
517 # gigabytes of physical RAM.
519 endchoice
521 config HIGHMEM
522 bool
523 depends on HIGHMEM64G || HIGHMEM4G
524 default y
526 config X86_PAE
527 bool
528 depends on HIGHMEM64G
529 default y
531 # Common NUMA Features
532 config NUMA
533 bool "Numa Memory Allocation and Scheduler Support"
534 depends on SMP && HIGHMEM64G && (X86_NUMAQ || X86_GENERICARCH || (X86_SUMMIT && ACPI))
535 default n if X86_PC
536 default y if (X86_NUMAQ || X86_SUMMIT)
538 # Need comments to help the hapless user trying to turn on NUMA support
539 comment "NUMA (NUMA-Q) requires SMP, 64GB highmem support"
540 depends on X86_NUMAQ && (!HIGHMEM64G || !SMP)
542 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
543 depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI)
545 config DISCONTIGMEM
546 bool
547 depends on NUMA
548 default y
550 config HAVE_ARCH_BOOTMEM_NODE
551 bool
552 depends on NUMA
553 default y
555 #config HIGHPTE
556 # bool "Allocate 3rd-level pagetables from highmem"
557 # depends on HIGHMEM4G || HIGHMEM64G
558 # help
559 # The VM uses one page table entry for each page of physical memory.
560 # For systems with a lot of RAM, this can be wasteful of precious
561 # low memory. Setting this option will put user-space page table
562 # entries in high memory.
564 config MTRR
565 bool
566 depends on XEN_PRIVILEGED_GUEST
567 default y
569 #config MTRR
570 # bool "MTRR (Memory Type Range Register) support"
571 # ---help---
572 # On Intel P6 family processors (Pentium Pro, Pentium II and later)
573 # the Memory Type Range Registers (MTRRs) may be used to control
574 # processor access to memory ranges. This is most useful if you have
575 # a video (VGA) card on a PCI or AGP bus. Enabling write-combining
576 # allows bus write transfers to be combined into a larger transfer
577 # before bursting over the PCI/AGP bus. This can increase performance
578 # of image write operations 2.5 times or more. Saying Y here creates a
579 # /proc/mtrr file which may be used to manipulate your processor's
580 # MTRRs. Typically the X server should use this.
581 #
582 # This code has a reasonably generic interface so that similar
583 # control registers on other processors can be easily supported
584 # as well:
585 #
586 # The Cyrix 6x86, 6x86MX and M II processors have Address Range
587 # Registers (ARRs) which provide a similar functionality to MTRRs. For
588 # these, the ARRs are used to emulate the MTRRs.
589 # The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
590 # MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
591 # write-combining. All of these processors are supported by this code
592 # and it makes sense to say Y here if you have one of them.
593 #
594 # Saying Y here also fixes a problem with buggy SMP BIOSes which only
595 # set the MTRRs for the boot CPU and not for the secondary CPUs. This
596 # can lead to all sorts of problems, so it's good to say Y here.
597 #
598 # You can safely say Y even if your machine doesn't have MTRRs, you'll
599 # just add about 9 KB to your kernel.
600 #
601 # See <file:Documentation/mtrr.txt> for more information.
603 config IRQBALANCE
604 bool "Enable kernel irq balancing"
605 depends on SMP && X86_IO_APIC
606 default y
607 help
608 The default yes will allow the kernel to do irq load balancing.
609 Saying no will keep the kernel from doing irq load balancing.
611 config HAVE_DEC_LOCK
612 bool
613 depends on (SMP || PREEMPT) && X86_CMPXCHG
614 default y
616 # turning this on wastes a bunch of space.
617 # Summit needs it only when NUMA is on
618 config BOOT_IOREMAP
619 bool
620 depends on (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI))
621 default y
623 config REGPARM
624 bool "Use register arguments (EXPERIMENTAL)"
625 depends on EXPERIMENTAL
626 default n
627 help
628 Compile the kernel with -mregparm=3. This uses an different ABI
629 and passes the first three arguments of a function call in registers.
630 This will probably break binary only modules.
632 This feature is only enabled for gcc-3.0 and later - earlier compilers
633 generate incorrect output with certain kernel constructs when
634 -mregparm=3 is used.
637 config X86_LOCAL_APIC
638 bool
639 depends on (X86_VISWS || SMP) && !X86_VOYAGER
640 default n
642 if XEN_PHYSDEV_ACCESS
644 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
646 config X86_VISWS_APIC
647 bool
648 depends on X86_VISWS
649 default y
651 #config X86_IO_APIC
652 # bool
653 # depends on SMP && !(X86_VISWS || X86_VOYAGER)
654 # default y
656 config PCI
657 bool "PCI support" if !X86_VISWS
658 depends on !X86_VOYAGER
659 default y if X86_VISWS
660 help
661 Find out whether you have a PCI motherboard. PCI is the name of a
662 bus system, i.e. the way the CPU talks to the other stuff inside
663 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
664 VESA. If you have PCI, say Y, otherwise N.
666 The PCI-HOWTO, available from
667 <http://www.tldp.org/docs.html#howto>, contains valuable
668 information about which PCI hardware does work under Linux and which
669 doesn't.
671 #choice
672 # prompt "PCI access mode"
673 # depends on PCI && !X86_VISWS
674 # default PCI_GOANY
675 # ---help---
676 # On PCI systems, the BIOS can be used to detect the PCI devices and
677 # determine their configuration. However, some old PCI motherboards
678 # have BIOS bugs and may crash if this is done. Also, some embedded
679 # PCI-based systems don't have any BIOS at all. Linux can also try to
680 # detect the PCI hardware directly without using the BIOS.
681 #
682 # With this option, you can specify how Linux should detect the
683 # PCI devices. If you choose "BIOS", the BIOS will be used,
684 # if you choose "Direct", the BIOS won't be used, and if you
685 # choose "MMConfig", then PCI Express MMCONFIG will be used.
686 # If you choose "Any", the kernel will try MMCONFIG, then the
687 # direct access method and falls back to the BIOS if that doesn't
688 # work. If unsure, go with the default, which is "Any".
689 #
690 #config PCI_GOBIOS
691 # bool "BIOS"
692 #
693 #config PCI_GOMMCONFIG
694 # bool "MMConfig"
695 #
696 #config PCI_GODIRECT
697 # bool "Direct"
698 #
699 #config PCI_GOANY
700 # bool "Any"
701 #
702 #endchoice
703 #
704 #config PCI_BIOS
705 # bool
706 # depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
707 # default y
708 #
709 #config PCI_DIRECT
710 # bool
711 # depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
712 # default y
714 config PCI_DIRECT
715 bool
716 depends on PCI
717 default y
719 source "drivers/pci/Kconfig"
721 config ISA
722 bool "ISA support"
723 depends on !(X86_VOYAGER || X86_VISWS)
724 help
725 Find out whether you have ISA slots on your motherboard. ISA is the
726 name of a bus system, i.e. the way the CPU talks to the other stuff
727 inside your box. Other bus systems are PCI, EISA, MicroChannel
728 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
729 newer boards don't support it. If you have ISA, say Y, otherwise N.
731 config EISA
732 bool "EISA support"
733 depends on ISA
734 ---help---
735 The Extended Industry Standard Architecture (EISA) bus was
736 developed as an open alternative to the IBM MicroChannel bus.
738 The EISA bus provided some of the features of the IBM MicroChannel
739 bus while maintaining backward compatibility with cards made for
740 the older ISA bus. The EISA bus saw limited use between 1988 and
741 1995 when it was made obsolete by the PCI bus.
743 Say Y here if you are building a kernel for an EISA-based machine.
745 Otherwise, say N.
747 source "drivers/eisa/Kconfig"
749 config MCA
750 bool "MCA support"
751 depends on !(X86_VISWS || X86_VOYAGER)
752 help
753 MicroChannel Architecture is found in some IBM PS/2 machines and
754 laptops. It is a bus system similar to PCI or ISA. See
755 <file:Documentation/mca.txt> (and especially the web page given
756 there) before attempting to build an MCA bus kernel.
758 config MCA
759 depends on X86_VOYAGER
760 default y if X86_VOYAGER
762 source "drivers/mca/Kconfig"
764 config SCx200
765 tristate "NatSemi SCx200 support"
766 depends on !X86_VOYAGER
767 help
768 This provides basic support for the National Semiconductor SCx200
769 processor. Right now this is just a driver for the GPIO pins.
771 If you don't know what to do here, say N.
773 This support is also available as a module. If compiled as a
774 module, it will be called scx200.
776 source "drivers/pcmcia/Kconfig"
778 source "drivers/pci/hotplug/Kconfig"
780 endmenu
782 endif
784 menu "Kernel hacking"
786 config DEBUG_KERNEL
787 bool "Kernel debugging"
788 help
789 Say Y here if you are developing drivers or trying to debug and
790 identify kernel problems.
792 config EARLY_PRINTK
793 bool "Early printk" if EMBEDDED
794 default y
795 help
796 Write kernel log output directly into the VGA buffer or to a serial
797 port.
799 This is useful for kernel debugging when your machine crashes very
800 early before the console code is initialized. For normal operation
801 it is not recommended because it looks ugly and doesn't cooperate
802 with klogd/syslogd or the X server. You should normally N here,
803 unless you want to debug such a crash.
805 config DEBUG_STACKOVERFLOW
806 bool "Check for stack overflows"
807 depends on DEBUG_KERNEL
809 config DEBUG_STACK_USAGE
810 bool "Stack utilization instrumentation"
811 depends on DEBUG_KERNEL
812 help
813 Enables the display of the minimum amount of free stack which each
814 task has ever had available in the sysrq-T and sysrq-P debug output.
816 This option will slow down process creation somewhat.
818 config DEBUG_SLAB
819 bool "Debug memory allocations"
820 depends on DEBUG_KERNEL
821 help
822 Say Y here to have the kernel do limited verification on memory
823 allocation as well as poisoning memory on free to catch use of freed
824 memory.
826 config MAGIC_SYSRQ
827 bool "Magic SysRq key"
828 depends on DEBUG_KERNEL
829 help
830 If you say Y here, you will have some control over the system even
831 if the system crashes for example during kernel debugging (e.g., you
832 will be able to flush the buffer cache to disk, reboot the system
833 immediately or dump some status information). This is accomplished
834 by pressing various keys while holding SysRq (Alt+PrintScreen). It
835 also works on a serial console (on PC hardware at least), if you
836 send a BREAK and then within 5 seconds a command keypress. The
837 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
838 unless you really know what this hack does.
840 config DEBUG_SPINLOCK
841 bool "Spinlock debugging"
842 depends on DEBUG_KERNEL
843 help
844 Say Y here and build SMP to catch missing spinlock initialization
845 and certain other kinds of spinlock errors commonly made. This is
846 best used in conjunction with the NMI watchdog so that spinlock
847 deadlocks are also debuggable.
849 config DEBUG_PAGEALLOC
850 bool "Page alloc debugging"
851 depends on DEBUG_KERNEL
852 help
853 Unmap pages from the kernel linear mapping after free_pages().
854 This results in a large slowdown, but helps to find certain types
855 of memory corruptions.
857 config DEBUG_HIGHMEM
858 bool "Highmem debugging"
859 depends on DEBUG_KERNEL && HIGHMEM
860 help
861 This options enables addition error checking for high memory systems.
862 Disable for production systems.
864 config DEBUG_INFO
865 bool "Compile the kernel with debug info"
866 depends on DEBUG_KERNEL
867 help
868 If you say Y here the resulting kernel image will include
869 debugging info resulting in a larger kernel image.
870 Say Y here only if you plan to use gdb to debug the kernel.
871 If you don't debug the kernel, you can say N.
873 config DEBUG_SPINLOCK_SLEEP
874 bool "Sleep-inside-spinlock checking"
875 help
876 If you say Y here, various routines which may sleep will become very
877 noisy if they are called with a spinlock held.
879 config FRAME_POINTER
880 bool "Compile the kernel with frame pointers"
881 help
882 If you say Y here the resulting kernel image will be slightly larger
883 and slower, but it will give very useful debugging information.
884 If you don't debug the kernel, you can say N, but we may not be able
885 to solve problems without frame pointers.
887 config 4KSTACKS
888 bool "Use 4Kb for kernel stacks instead of 8Kb"
889 help
890 If you say Y here the kernel will use a 4Kb stacksize for the
891 kernel stack attached to each process/thread. This facilitates
892 running more threads on a system and also reduces the pressure
893 on the VM subsystem for higher order allocations. This option
894 will also use IRQ stacks to compensate for the reduced stackspace.
896 config X86_FIND_SMP_CONFIG
897 bool
898 depends on X86_LOCAL_APIC || X86_VOYAGER
899 default y
901 config X86_MPPARSE
902 bool
903 depends on X86_LOCAL_APIC && !X86_VISWS
904 default y
906 endmenu
908 config X86_SMP
909 bool
910 depends on SMP && !X86_VOYAGER
911 default y
913 #config X86_HT
914 # bool
915 # depends on SMP && !(X86_VISWS || X86_VOYAGER)
916 # default y
918 config X86_BIOS_REBOOT
919 bool
920 depends on !(X86_VISWS || X86_VOYAGER)
921 default y
923 config X86_TRAMPOLINE
924 bool
925 depends on X86_SMP || (X86_VOYAGER && SMP)
926 default y
928 # std_resources is overridden for pc9800, but that's not
929 # a currently selectable arch choice
930 config X86_STD_RESOURCES
931 bool
932 default y
934 config PC
935 bool
936 depends on X86 && !EMBEDDED
937 default y
939 endmenu