ia64/xen-unstable

view linux-2.6-xen-sparse/arch/xen/i386/Kconfig @ 6552:a9873d384da4

Merge.
author adsharma@los-vmm.sc.intel.com
date Thu Aug 25 12:24:48 2005 -0700 (2005-08-25)
parents 112d44270733 fa0754a9f64f
children dfaf788ab18c
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 X86
13 bool
14 default y
15 help
16 This is Linux's home port. Linux was originally native to the Intel
17 386, and runs on all the later x86 processors including the Intel
18 486, 586, Pentiums, and various instruction-set-compatible chips by
19 AMD, Cyrix, and others.
21 config MMU
22 bool
23 default y
25 config SBUS
26 bool
28 config UID16
29 bool
30 default y
32 config GENERIC_ISA_DMA
33 bool
34 default y
36 config GENERIC_IOMAP
37 bool
38 default y
40 choice
41 prompt "Processor family"
42 default M686
44 config M386
45 bool "386"
46 ---help---
47 This is the processor type of your CPU. This information is used for
48 optimizing purposes. In order to compile a kernel that can run on
49 all x86 CPU types (albeit not optimally fast), you can specify
50 "386" here.
52 The kernel will not necessarily run on earlier architectures than
53 the one you have chosen, e.g. a Pentium optimized kernel will run on
54 a PPro, but not necessarily on a i486.
56 Here are the settings recommended for greatest speed:
57 - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI
58 486DLC/DLC2, UMC 486SX-S and NexGen Nx586. Only "386" kernels
59 will run on a 386 class machine.
60 - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
61 SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
62 - "586" for generic Pentium CPUs lacking the TSC
63 (time stamp counter) register.
64 - "Pentium-Classic" for the Intel Pentium.
65 - "Pentium-MMX" for the Intel Pentium MMX.
66 - "Pentium-Pro" for the Intel Pentium Pro.
67 - "Pentium-II" for the Intel Pentium II or pre-Coppermine Celeron.
68 - "Pentium-III" for the Intel Pentium III or Coppermine Celeron.
69 - "Pentium-4" for the Intel Pentium 4 or P4-based Celeron.
70 - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
71 - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
72 - "Crusoe" for the Transmeta Crusoe series.
73 - "Efficeon" for the Transmeta Efficeon series.
74 - "Winchip-C6" for original IDT Winchip.
75 - "Winchip-2" for IDT Winchip 2.
76 - "Winchip-2A" for IDT Winchips with 3dNow! capabilities.
77 - "GeodeGX1" for Geode GX1 (Cyrix MediaGX).
78 - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
79 - "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above).
81 If you don't know what to do, choose "386".
83 config M486
84 bool "486"
85 help
86 Select this for a 486 series processor, either Intel or one of the
87 compatible processors from AMD, Cyrix, IBM, or Intel. Includes DX,
88 DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or
89 U5S.
91 config M586
92 bool "586/K5/5x86/6x86/6x86MX"
93 help
94 Select this for an 586 or 686 series processor such as the AMD K5,
95 the Cyrix 5x86, 6x86 and 6x86MX. This choice does not
96 assume the RDTSC (Read Time Stamp Counter) instruction.
98 config M586TSC
99 bool "Pentium-Classic"
100 help
101 Select this for a Pentium Classic processor with the RDTSC (Read
102 Time Stamp Counter) instruction for benchmarking.
104 config M586MMX
105 bool "Pentium-MMX"
106 help
107 Select this for a Pentium with the MMX graphics/multimedia
108 extended instructions.
110 config M686
111 bool "Pentium-Pro"
112 help
113 Select this for Intel Pentium Pro chips. This enables the use of
114 Pentium Pro extended instructions, and disables the init-time guard
115 against the f00f bug found in earlier Pentiums.
117 config MPENTIUMII
118 bool "Pentium-II/Celeron(pre-Coppermine)"
119 help
120 Select this for Intel chips based on the Pentium-II and
121 pre-Coppermine Celeron core. This option enables an unaligned
122 copy optimization, compiles the kernel with optimization flags
123 tailored for the chip, and applies any applicable Pentium Pro
124 optimizations.
126 config MPENTIUMIII
127 bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
128 help
129 Select this for Intel chips based on the Pentium-III and
130 Celeron-Coppermine core. This option enables use of some
131 extended prefetch instructions in addition to the Pentium II
132 extensions.
134 config MPENTIUMM
135 bool "Pentium M"
136 help
137 Select this for Intel Pentium M (not Pentium-4 M)
138 notebook chips.
140 config MPENTIUM4
141 bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon"
142 help
143 Select this for Intel Pentium 4 chips. This includes the
144 Pentium 4, P4-based Celeron and Xeon, and Pentium-4 M
145 (not Pentium M) chips. This option enables compile flags
146 optimized for the chip, uses the correct cache shift, and
147 applies any applicable Pentium III optimizations.
149 config MK6
150 bool "K6/K6-II/K6-III"
151 help
152 Select this for an AMD K6-family processor. Enables use of
153 some extended instructions, and passes appropriate optimization
154 flags to GCC.
156 config MK7
157 bool "Athlon/Duron/K7"
158 help
159 Select this for an AMD Athlon K7-family processor. Enables use of
160 some extended instructions, and passes appropriate optimization
161 flags to GCC.
163 config MK8
164 bool "Opteron/Athlon64/Hammer/K8"
165 help
166 Select this for an AMD Opteron or Athlon64 Hammer-family processor. Enables
167 use of some extended instructions, and passes appropriate optimization
168 flags to GCC.
170 config MCRUSOE
171 bool "Crusoe"
172 help
173 Select this for a Transmeta Crusoe processor. Treats the processor
174 like a 586 with TSC, and sets some GCC optimization flags (like a
175 Pentium Pro with no alignment requirements).
177 config MEFFICEON
178 bool "Efficeon"
179 help
180 Select this for a Transmeta Efficeon processor.
182 config MWINCHIPC6
183 bool "Winchip-C6"
184 help
185 Select this for an IDT Winchip C6 chip. Linux and GCC
186 treat this chip as a 586TSC with some extended instructions
187 and alignment requirements.
189 config MWINCHIP2
190 bool "Winchip-2"
191 help
192 Select this for an IDT Winchip-2. Linux and GCC
193 treat this chip as a 586TSC with some extended instructions
194 and alignment requirements.
196 config MWINCHIP3D
197 bool "Winchip-2A/Winchip-3"
198 help
199 Select this for an IDT Winchip-2A or 3. Linux and GCC
200 treat this chip as a 586TSC with some extended instructions
201 and alignment reqirements. Also enable out of order memory
202 stores for this CPU, which can increase performance of some
203 operations.
205 config MGEODEGX1
206 bool "GeodeGX1"
207 help
208 Select this for a Geode GX1 (Cyrix MediaGX) chip.
210 config MCYRIXIII
211 bool "CyrixIII/VIA-C3"
212 help
213 Select this for a Cyrix III or C3 chip. Presently Linux and GCC
214 treat this chip as a generic 586. Whilst the CPU is 686 class,
215 it lacks the cmov extension which gcc assumes is present when
216 generating 686 code.
217 Note that Nehemiah (Model 9) and above will not boot with this
218 kernel due to them lacking the 3DNow! instructions used in earlier
219 incarnations of the CPU.
221 config MVIAC3_2
222 bool "VIA C3-2 (Nehemiah)"
223 help
224 Select this for a VIA C3 "Nehemiah". Selecting this enables usage
225 of SSE and tells gcc to treat the CPU as a 686.
226 Note, this kernel will not boot on older (pre model 9) C3s.
228 endchoice
230 config X86_GENERIC
231 bool "Generic x86 support"
232 help
233 Instead of just including optimizations for the selected
234 x86 variant (e.g. PII, Crusoe or Athlon), include some more
235 generic optimizations as well. This will make the kernel
236 perform better on x86 CPUs other than that selected.
238 This is really intended for distributors who need more
239 generic optimizations.
241 #
242 # Define implied options from the CPU selection here
243 #
244 config X86_CMPXCHG
245 bool
246 depends on !M386
247 default y
249 config X86_XADD
250 bool
251 depends on !M386
252 default y
254 config X86_L1_CACHE_SHIFT
255 int
256 default "7" if MPENTIUM4 || X86_GENERIC
257 default "4" if X86_ELAN || M486 || M386
258 default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODEGX1
259 default "6" if MK7 || MK8 || MPENTIUMM
261 config RWSEM_GENERIC_SPINLOCK
262 bool
263 depends on M386
264 default y
266 config RWSEM_XCHGADD_ALGORITHM
267 bool
268 depends on !M386
269 default y
271 config GENERIC_CALIBRATE_DELAY
272 bool
273 default y
275 config X86_PPRO_FENCE
276 bool
277 depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODEGX1
278 default y
280 config X86_F00F_BUG
281 bool
282 depends on M586MMX || M586TSC || M586 || M486 || M386
283 default y
285 config X86_WP_WORKS_OK
286 bool
287 depends on !M386
288 default y
290 config X86_INVLPG
291 bool
292 depends on !M386
293 default y
295 config X86_BSWAP
296 bool
297 depends on !M386
298 default y
300 config X86_POPAD_OK
301 bool
302 depends on !M386
303 default y
305 config X86_ALIGNMENT_16
306 bool
307 depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
308 default y
310 config X86_GOOD_APIC
311 bool
312 depends on MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8 || MEFFICEON
313 default y
315 config X86_INTEL_USERCOPY
316 bool
317 depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON
318 default y
320 config X86_USE_PPRO_CHECKSUM
321 bool
322 depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MEFFICEON
323 default y
325 config X86_USE_3DNOW
326 bool
327 depends on MCYRIXIII || MK7
328 default y
330 config X86_OOSTORE
331 bool
332 depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR
333 default y
335 config HPET_TIMER
336 bool
337 default n
338 #config HPET_TIMER
339 # bool "HPET Timer Support"
340 # help
341 # This enables the use of the HPET for the kernel's internal timer.
342 # HPET is the next generation timer replacing legacy 8254s.
343 # You can safely choose Y here. However, HPET will only be
344 # activated if the platform and the BIOS support this feature.
345 # Otherwise the 8254 will be used for timing services.
346 #
347 # Choose N to continue using the legacy 8254 timer.
349 config HPET_EMULATE_RTC
350 def_bool HPET_TIMER && RTC=y
352 config SMP
353 bool "Symmetric multi-processing support"
354 ---help---
355 This enables support for systems with more than one CPU. If you have
356 a system with only one CPU, like most personal computers, say N. If
357 you have a system with more than one CPU, say Y.
359 If you say N here, the kernel will run on single and multiprocessor
360 machines, but will use only one CPU of a multiprocessor machine. If
361 you say Y here, the kernel will run on many, but not all,
362 singleprocessor machines. On a singleprocessor machine, the kernel
363 will run faster if you say N here.
365 Note that if you say Y here and choose architecture "586" or
366 "Pentium" under "Processor family", the kernel will not work on 486
367 architectures. Similarly, multiprocessor kernels for the "PPro"
368 architecture may not work on all Pentium based boards.
370 People using multiprocessor machines who say Y here should also say
371 Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
372 Management" code will be disabled if you say Y here.
374 See also the <file:Documentation/smp.txt>,
375 <file:Documentation/i386/IO-APIC.txt>,
376 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
377 <http://www.tldp.org/docs.html#howto>.
379 If you don't know what to do here, say N.
381 config SMP_ALTERNATIVES
382 bool "SMP alternatives support (EXPERIMENTAL)"
383 depends on SMP && EXPERIMENTAL
384 help
385 Try to reduce the overhead of running an SMP kernel on a uniprocessor
386 host slightly by replacing certain key instruction sequences
387 according to whether we currently have more than one CPU available.
388 This should provide a noticeable boost to performance when
389 running SMP kernels on UP machines, and have negligible impact
390 when running on an true SMP host.
392 If unsure, say N.
394 config NR_CPUS
395 int "Maximum number of CPUs (2-255)"
396 range 2 255
397 depends on SMP
398 default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
399 default "8"
400 help
401 This allows you to specify the maximum number of CPUs which this
402 kernel will support. The maximum supported value is 255 and the
403 minimum value which makes sense is 2.
405 This is purely to save memory - each supported CPU adds
406 approximately eight kilobytes to the kernel image.
408 config SCHED_SMT
409 bool "SMT (Hyperthreading) scheduler support"
410 depends on SMP
411 default off
412 help
413 SMT scheduler support improves the CPU scheduler's decision making
414 when dealing with Intel Pentium 4 chips with HyperThreading at a
415 cost of slightly increased overhead in some places. If unsure say
416 N here.
418 config PREEMPT
419 bool "Preemptible Kernel"
420 help
421 This option reduces the latency of the kernel when reacting to
422 real-time or interactive events by allowing a low priority process to
423 be preempted even if it is in kernel mode executing a system call.
424 This allows applications to run more reliably even when the system is
425 under load.
427 Say Y here if you are building a kernel for a desktop, embedded
428 or real-time system. Say N if you are unsure.
430 config PREEMPT_BKL
431 bool "Preempt The Big Kernel Lock"
432 depends on PREEMPT
433 default y
434 help
435 This option reduces the latency of the kernel by making the
436 big kernel lock preemptible.
438 Say Y here if you are building a kernel for a desktop system.
439 Say N if you are unsure.
441 #config X86_TSC
442 # bool
443 # depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODEGX1) && !X86_NUMAQ
444 # default y
446 #config X86_MCE
447 # bool "Machine Check Exception"
448 # depends on !X86_VOYAGER
449 # ---help---
450 # Machine Check Exception support allows the processor to notify the
451 # kernel if it detects a problem (e.g. overheating, component failure).
452 # The action the kernel takes depends on the severity of the problem,
453 # ranging from a warning message on the console, to halting the machine.
454 # Your processor must be a Pentium or newer to support this - check the
455 # flags in /proc/cpuinfo for mce. Note that some older Pentium systems
456 # have a design flaw which leads to false MCE events - hence MCE is
457 # disabled on all P5 processors, unless explicitly enabled with "mce"
458 # as a boot argument. Similarly, if MCE is built in and creates a
459 # problem on some new non-standard machine, you can boot with "nomce"
460 # to disable it. MCE support simply ignores non-MCE processors like
461 # the 386 and 486, so nearly everyone can say Y here.
463 #config X86_MCE_NONFATAL
464 # tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
465 # depends on X86_MCE
466 # help
467 # Enabling this feature starts a timer that triggers every 5 seconds which
468 # will look at the machine check registers to see if anything happened.
469 # Non-fatal problems automatically get corrected (but still logged).
470 # Disable this if you don't want to see these messages.
471 # Seeing the messages this option prints out may be indicative of dying hardware,
472 # or out-of-spec (ie, overclocked) hardware.
473 # This option only does something on certain CPUs.
474 # (AMD Athlon/Duron and Intel Pentium 4)
476 #config X86_MCE_P4THERMAL
477 # bool "check for P4 thermal throttling interrupt."
478 # depends on X86_MCE && (X86_UP_APIC || SMP)
479 # help
480 # Enabling this feature will cause a message to be printed when the P4
481 # enters thermal throttling.
483 config X86_REBOOTFIXUPS
484 bool "Enable X86 board specific fixups for reboot"
485 depends on X86
486 default n
487 ---help---
488 This enables chipset and/or board specific fixups to be done
489 in order to get reboot to work correctly. This is only needed on
490 some combinations of hardware and BIOS. The symptom, for which
491 this config is intended, is when reboot ends with a stalled/hung
492 system.
494 Currently, the only fixup is for the Geode GX1/CS5530A/TROM2.1.
495 combination.
497 Say Y if you want to enable the fixup. Currently, it's safe to
498 enable this option even if you don't need it.
499 Say N otherwise.
501 config MICROCODE
502 tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
503 depends on XEN_PRIVILEGED_GUEST
504 ---help---
505 If you say Y here and also to "/dev file system support" in the
506 'File systems' section, you will be able to update the microcode on
507 Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
508 Pentium III, Pentium 4, Xeon etc. You will obviously need the
509 actual microcode binary data itself which is not shipped with the
510 Linux kernel.
512 For latest news and information on obtaining all the required
513 ingredients for this driver, check:
514 <http://www.urbanmyth.org/microcode/>.
516 To compile this driver as a module, choose M here: the
517 module will be called microcode.
519 #config X86_MSR
520 # tristate "/dev/cpu/*/msr - Model-specific register support"
521 # help
522 # This device gives privileged processes access to the x86
523 # Model-Specific Registers (MSRs). It is a character device with
524 # major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
525 # MSR accesses are directed to a specific CPU on multi-processor
526 # systems.
528 config X86_CPUID
529 tristate "/dev/cpu/*/cpuid - CPU information support"
530 help
531 This device gives processes access to the x86 CPUID instruction to
532 be executed on a specific processor. It is a character device
533 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
534 /dev/cpu/31/cpuid.
536 config SWIOTLB
537 bool
538 depends on PCI
539 default y
541 source "drivers/firmware/Kconfig"
543 choice
544 prompt "High Memory Support"
545 default NOHIGHMEM
547 config NOHIGHMEM
548 bool "off"
549 ---help---
550 Linux can use up to 64 Gigabytes of physical memory on x86 systems.
551 However, the address space of 32-bit x86 processors is only 4
552 Gigabytes large. That means that, if you have a large amount of
553 physical memory, not all of it can be "permanently mapped" by the
554 kernel. The physical memory that's not permanently mapped is called
555 "high memory".
557 If you are compiling a kernel which will never run on a machine with
558 more than 1 Gigabyte total physical RAM, answer "off" here (default
559 choice and suitable for most users). This will result in a "3GB/1GB"
560 split: 3GB are mapped so that each process sees a 3GB virtual memory
561 space and the remaining part of the 4GB virtual memory space is used
562 by the kernel to permanently map as much physical memory as
563 possible.
565 If the machine has between 1 and 4 Gigabytes physical RAM, then
566 answer "4GB" here.
568 If more than 4 Gigabytes is used then answer "64GB" here. This
569 selection turns Intel PAE (Physical Address Extension) mode on.
570 PAE implements 3-level paging on IA32 processors. PAE is fully
571 supported by Linux, PAE mode is implemented on all recent Intel
572 processors (Pentium Pro and better). NOTE: If you say "64GB" here,
573 then the kernel will not boot on CPUs that don't support PAE!
575 The actual amount of total physical memory will either be
576 auto detected or can be forced by using a kernel command line option
577 such as "mem=256M". (Try "man bootparam" or see the documentation of
578 your boot loader (lilo or loadlin) about how to pass options to the
579 kernel at boot time.)
581 If unsure, say "off".
583 config HIGHMEM4G
584 bool "4GB"
585 help
586 Select this if you have a 32-bit processor and between 1 and 4
587 gigabytes of physical RAM.
589 config HIGHMEM64G
590 bool "64GB"
591 help
592 Select this if you have a 32-bit processor and more than 4
593 gigabytes of physical RAM.
595 endchoice
597 config HIGHMEM
598 bool
599 depends on HIGHMEM64G || HIGHMEM4G
600 default y
602 config X86_PAE
603 bool
604 depends on HIGHMEM64G
605 default y
607 # Common NUMA Features
608 config NUMA
609 bool "Numa Memory Allocation and Scheduler Support"
610 depends on SMP && HIGHMEM64G && (X86_NUMAQ || X86_GENERICARCH || (X86_SUMMIT && ACPI))
611 default n if X86_PC
612 default y if (X86_NUMAQ || X86_SUMMIT)
614 # Need comments to help the hapless user trying to turn on NUMA support
615 comment "NUMA (NUMA-Q) requires SMP, 64GB highmem support"
616 depends on X86_NUMAQ && (!HIGHMEM64G || !SMP)
618 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
619 depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI)
621 config DISCONTIGMEM
622 bool
623 depends on NUMA
624 default y
626 config HAVE_ARCH_BOOTMEM_NODE
627 bool
628 depends on NUMA
629 default y
631 config HAVE_MEMORY_PRESENT
632 bool
633 depends on DISCONTIGMEM
634 default y
636 config NEED_NODE_MEMMAP_SIZE
637 bool
638 depends on DISCONTIGMEM
639 default y
641 #config HIGHPTE
642 # bool "Allocate 3rd-level pagetables from highmem"
643 # depends on HIGHMEM4G || HIGHMEM64G
644 # help
645 # The VM uses one page table entry for each page of physical memory.
646 # For systems with a lot of RAM, this can be wasteful of precious
647 # low memory. Setting this option will put user-space page table
648 # entries in high memory.
650 config MTRR
651 bool
652 depends on XEN_PRIVILEGED_GUEST
653 default y
655 #config MTRR
656 # bool "MTRR (Memory Type Range Register) support"
657 # ---help---
658 # On Intel P6 family processors (Pentium Pro, Pentium II and later)
659 # the Memory Type Range Registers (MTRRs) may be used to control
660 # processor access to memory ranges. This is most useful if you have
661 # a video (VGA) card on a PCI or AGP bus. Enabling write-combining
662 # allows bus write transfers to be combined into a larger transfer
663 # before bursting over the PCI/AGP bus. This can increase performance
664 # of image write operations 2.5 times or more. Saying Y here creates a
665 # /proc/mtrr file which may be used to manipulate your processor's
666 # MTRRs. Typically the X server should use this.
667 #
668 # This code has a reasonably generic interface so that similar
669 # control registers on other processors can be easily supported
670 # as well:
671 #
672 # The Cyrix 6x86, 6x86MX and M II processors have Address Range
673 # Registers (ARRs) which provide a similar functionality to MTRRs. For
674 # these, the ARRs are used to emulate the MTRRs.
675 # The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
676 # MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
677 # write-combining. All of these processors are supported by this code
678 # and it makes sense to say Y here if you have one of them.
679 #
680 # Saying Y here also fixes a problem with buggy SMP BIOSes which only
681 # set the MTRRs for the boot CPU and not for the secondary CPUs. This
682 # can lead to all sorts of problems, so it's good to say Y here.
683 #
684 # You can safely say Y even if your machine doesn't have MTRRs, you'll
685 # just add about 9 KB to your kernel.
686 #
687 # See <file:Documentation/mtrr.txt> for more information.
689 config IRQBALANCE
690 bool "Enable kernel irq balancing"
691 depends on SMP && X86_IO_APIC && !XEN
692 default y
693 help
694 The default yes will allow the kernel to do irq load balancing.
695 Saying no will keep the kernel from doing irq load balancing.
697 config HAVE_DEC_LOCK
698 bool
699 depends on (SMP || PREEMPT) && X86_CMPXCHG
700 default y
702 # turning this on wastes a bunch of space.
703 # Summit needs it only when NUMA is on
704 config BOOT_IOREMAP
705 bool
706 depends on (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI))
707 default y
709 config REGPARM
710 bool "Use register arguments (EXPERIMENTAL)"
711 depends on EXPERIMENTAL
712 default n
713 help
714 Compile the kernel with -mregparm=3. This uses a different ABI
715 and passes the first three arguments of a function call in registers.
716 This will probably break binary only modules.
718 This feature is only enabled for gcc-3.0 and later - earlier compilers
719 generate incorrect output with certain kernel constructs when
720 -mregparm=3 is used.
722 config X86_LOCAL_APIC
723 bool
724 depends on XEN_PRIVILEGED_GUEST && (X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER))
725 default y
727 config X86_IO_APIC
728 bool
729 depends on XEN_PRIVILEGED_GUEST && (X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)))
730 default y
732 config X86_VISWS_APIC
733 bool
734 depends on X86_VISWS
735 default y
737 config HOTPLUG_CPU
738 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
739 depends on SMP && HOTPLUG && EXPERIMENTAL
740 ---help---
741 Say Y here to experiment with turning CPUs off and on. CPUs
742 can be controlled through /sys/devices/system/cpu.
744 Say N.
747 if XEN_PHYSDEV_ACCESS
749 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
751 config X86_UP_APIC
752 bool "Local APIC support on uniprocessors"
753 depends on !SMP && !(X86_VISWS || X86_VOYAGER)
754 help
755 A local APIC (Advanced Programmable Interrupt Controller) is an
756 integrated interrupt controller in the CPU. If you have a single-CPU
757 system which has a processor with a local APIC, you can say Y here to
758 enable and use it. If you say Y here even though your machine doesn't
759 have a local APIC, then the kernel will still run with no slowdown at
760 all. The local APIC supports CPU-generated self-interrupts (timer,
761 performance counters), and the NMI watchdog which detects hard
762 lockups.
764 config X86_UP_IOAPIC
765 bool "IO-APIC support on uniprocessors"
766 depends on X86_UP_APIC
767 help
768 An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
769 SMP-capable replacement for PC-style interrupt controllers. Most
770 SMP systems and many recent uniprocessor systems have one.
772 If you have a single-CPU system with an IO-APIC, you can say Y here
773 to use it. If you say Y here even though your machine doesn't have
774 an IO-APIC, then the kernel will still run with no slowdown at all.
776 config PCI
777 bool "PCI support" if !X86_VISWS
778 depends on !X86_VOYAGER
779 default y if X86_VISWS
780 help
781 Find out whether you have a PCI motherboard. PCI is the name of a
782 bus system, i.e. the way the CPU talks to the other stuff inside
783 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
784 VESA. If you have PCI, say Y, otherwise N.
786 The PCI-HOWTO, available from
787 <http://www.tldp.org/docs.html#howto>, contains valuable
788 information about which PCI hardware does work under Linux and which
789 doesn't.
791 choice
792 prompt "PCI access mode"
793 depends on PCI && !X86_VISWS
794 default PCI_GOANY
795 ---help---
796 On PCI systems, the BIOS can be used to detect the PCI devices and
797 determine their configuration. However, some old PCI motherboards
798 have BIOS bugs and may crash if this is done. Also, some embedded
799 PCI-based systems don't have any BIOS at all. Linux can also try to
800 detect the PCI hardware directly without using the BIOS.
802 With this option, you can specify how Linux should detect the
803 PCI devices. If you choose "BIOS", the BIOS will be used,
804 if you choose "Direct", the BIOS won't be used, and if you
805 choose "MMConfig", then PCI Express MMCONFIG will be used.
806 If you choose "Any", the kernel will try MMCONFIG, then the
807 direct access method and falls back to the BIOS if that doesn't
808 work. If unsure, go with the default, which is "Any".
810 config PCI_GOBIOS
811 bool "BIOS"
813 config PCI_GOMMCONFIG
814 bool "MMConfig"
816 config PCI_GODIRECT
817 bool "Direct"
819 config PCI_GOANY
820 bool "Any"
822 endchoice
824 config PCI_BIOS
825 bool
826 depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
827 default y
829 config PCI_DIRECT
830 bool
831 depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
832 default y
834 config PCI_MMCONFIG
835 bool
836 depends on PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY)
837 select ACPI_BOOT
838 default y
840 source "drivers/pci/pcie/Kconfig"
842 source "drivers/pci/Kconfig"
844 config ISA_DMA_API
845 bool
846 default y
848 config ISA
849 bool "ISA support"
850 depends on !(X86_VOYAGER || X86_VISWS)
851 help
852 Find out whether you have ISA slots on your motherboard. ISA is the
853 name of a bus system, i.e. the way the CPU talks to the other stuff
854 inside your box. Other bus systems are PCI, EISA, MicroChannel
855 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
856 newer boards don't support it. If you have ISA, say Y, otherwise N.
858 config EISA
859 bool "EISA support"
860 depends on ISA
861 ---help---
862 The Extended Industry Standard Architecture (EISA) bus was
863 developed as an open alternative to the IBM MicroChannel bus.
865 The EISA bus provided some of the features of the IBM MicroChannel
866 bus while maintaining backward compatibility with cards made for
867 the older ISA bus. The EISA bus saw limited use between 1988 and
868 1995 when it was made obsolete by the PCI bus.
870 Say Y here if you are building a kernel for an EISA-based machine.
872 Otherwise, say N.
874 source "drivers/eisa/Kconfig"
876 config MCA
877 bool "MCA support" if !(X86_VISWS || X86_VOYAGER)
878 default y if X86_VOYAGER
879 help
880 MicroChannel Architecture is found in some IBM PS/2 machines and
881 laptops. It is a bus system similar to PCI or ISA. See
882 <file:Documentation/mca.txt> (and especially the web page given
883 there) before attempting to build an MCA bus kernel.
885 source "drivers/mca/Kconfig"
887 config SCx200
888 tristate "NatSemi SCx200 support"
889 depends on !X86_VOYAGER
890 help
891 This provides basic support for the National Semiconductor SCx200
892 processor. Right now this is just a driver for the GPIO pins.
894 If you don't know what to do here, say N.
896 This support is also available as a module. If compiled as a
897 module, it will be called scx200.
899 source "drivers/pcmcia/Kconfig"
901 source "drivers/pci/hotplug/Kconfig"
903 endmenu
905 endif
907 #
908 # Use the generic interrupt handling code in kernel/irq/:
909 #
910 config GENERIC_HARDIRQS
911 bool
912 default y
914 config GENERIC_IRQ_PROBE
915 bool
916 default y
918 config X86_SMP
919 bool
920 depends on SMP && !X86_VOYAGER
921 default y
923 #config X86_HT
924 # bool
925 # depends on SMP && !(X86_VISWS || X86_VOYAGER)
926 # default y
928 config X86_BIOS_REBOOT
929 bool
930 depends on !(X86_VISWS || X86_VOYAGER)
931 default y
933 config X86_TRAMPOLINE
934 bool
935 depends on X86_SMP || (X86_VOYAGER && SMP)
936 default y
938 config PC
939 bool
940 depends on X86 && !EMBEDDED
941 default y
943 config SECCOMP
944 bool "Enable seccomp to safely compute untrusted bytecode"
945 depends on PROC_FS
946 default y
947 help
948 This kernel feature is useful for number crunching applications
949 that may need to compute untrusted bytecode during their
950 execution. By using pipes or other transports made available to
951 the process as file descriptors supporting the read/write
952 syscalls, it's possible to isolate those applications in
953 their own address space using seccomp. Once seccomp is
954 enabled via /proc/<pid>/seccomp, it cannot be disabled
955 and the task is only allowed to execute a few safe syscalls
956 defined by each seccomp mode.
958 If unsure, say Y. Only embedded should say N here.
960 endmenu