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