ia64/xen-unstable

view linux-2.6-xen-sparse/arch/x86_64/Kconfig @ 13647:057c4c2991fa

32-on-64: Fix an one-off error in compat_addr_ok().
Signed-off-by: Jan Beulich <jbeulich@novell.com>
author kaf24@localhost.localdomain
date Fri Jan 26 13:36:52 2007 +0000 (2007-01-26)
parents 3adf00179a63
children bd66af1b5df2
line source
1 #
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
4 #
5 # Note: ISA is disabled and will hopefully never be enabled.
6 # If you managed to buy an ISA x86-64 box you'll have to fix all the
7 # ISA drivers you need yourself.
8 #
10 mainmenu "Linux Kernel Configuration"
12 config X86_64
13 bool
14 default y
15 help
16 Port to the x86-64 architecture. x86-64 is a 64-bit extension to the
17 classical 32-bit x86 architecture. For details see
18 <http://www.x86-64.org/>.
20 config 64BIT
21 def_bool y
23 config X86
24 bool
25 default y
27 config LOCKDEP_SUPPORT
28 bool
29 default y
31 config STACKTRACE_SUPPORT
32 bool
33 default y
35 config SEMAPHORE_SLEEPERS
36 bool
37 default y
39 config MMU
40 bool
41 default y
43 config ISA
44 bool
46 config SBUS
47 bool
49 config RWSEM_GENERIC_SPINLOCK
50 bool
51 default y
53 config RWSEM_XCHGADD_ALGORITHM
54 bool
56 config GENERIC_HWEIGHT
57 bool
58 default y
60 config GENERIC_CALIBRATE_DELAY
61 bool
62 default y
64 config X86_CMPXCHG
65 bool
66 default y
68 config EARLY_PRINTK
69 bool
70 default y
72 config GENERIC_ISA_DMA
73 bool
74 default y
76 config GENERIC_IOMAP
77 bool
78 default y
80 config ARCH_MAY_HAVE_PC_FDC
81 bool
82 default y
84 config DMI
85 bool
86 default y
88 config AUDIT_ARCH
89 bool
90 default y
92 source "init/Kconfig"
95 menu "Processor type and features"
97 choice
98 prompt "Subarchitecture Type"
99 default X86_PC
101 config X86_PC
102 bool "PC-compatible"
103 help
104 Choose this option if your computer is a standard PC or compatible.
106 config X86_VSMP
107 bool "Support for ScaleMP vSMP"
108 help
109 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
110 supposed to run on these EM64T-based machines. Only choose this option
111 if you have one of these machines.
113 endchoice
115 choice
116 prompt "Processor family"
117 default MK8
119 config MK8
120 bool "AMD-Opteron/Athlon64"
121 help
122 Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
124 config MPSC
125 bool "Intel EM64T"
126 help
127 Optimize for Intel Pentium 4 and Xeon CPUs with Intel
128 Extended Memory 64 Technology(EM64T). For details see
129 <http://www.intel.com/technology/64bitextensions/>.
131 config GENERIC_CPU
132 bool "Generic-x86-64"
133 help
134 Generic x86-64 CPU.
136 endchoice
138 config X86_64_XEN
139 bool "Enable Xen compatible kernel"
140 select SWIOTLB
141 help
142 This option will compile a kernel compatible with Xen hypervisor
144 config X86_NO_TSS
145 bool
146 depends on X86_64_XEN
147 default y
149 config X86_NO_IDT
150 bool
151 depends on X86_64_XEN
152 default y
154 #
155 # Define implied options from the CPU selection here
156 #
157 config X86_L1_CACHE_BYTES
158 int
159 default "128" if GENERIC_CPU || MPSC
160 default "64" if MK8
162 config X86_L1_CACHE_SHIFT
163 int
164 default "7" if GENERIC_CPU || MPSC
165 default "6" if MK8
167 config X86_INTERNODE_CACHE_BYTES
168 int
169 default "4096" if X86_VSMP
170 default X86_L1_CACHE_BYTES if !X86_VSMP
172 config X86_TSC
173 bool
174 depends on !X86_64_XEN
175 default y
177 config X86_GOOD_APIC
178 bool
179 default y
181 config MICROCODE
182 tristate "/dev/cpu/microcode - Intel CPU microcode support"
183 ---help---
184 If you say Y here the 'File systems' section, you will be
185 able to update the microcode on Intel processors. You will
186 obviously need the actual microcode binary data itself which is
187 not shipped with the Linux kernel.
189 For latest news and information on obtaining all the required
190 ingredients for this driver, check:
191 <http://www.urbanmyth.org/microcode/>.
193 To compile this driver as a module, choose M here: the
194 module will be called microcode.
195 If you use modprobe or kmod you may also want to add the line
196 'alias char-major-10-184 microcode' to your /etc/modules.conf file.
198 config X86_MSR
199 tristate "/dev/cpu/*/msr - Model-specific register support"
200 help
201 This device gives privileged processes access to the x86
202 Model-Specific Registers (MSRs). It is a character device with
203 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
204 MSR accesses are directed to a specific CPU on multi-processor
205 systems.
207 config X86_CPUID
208 tristate "/dev/cpu/*/cpuid - CPU information support"
209 help
210 This device gives processes access to the x86 CPUID instruction to
211 be executed on a specific processor. It is a character device
212 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
213 /dev/cpu/31/cpuid.
215 config X86_HT
216 bool
217 depends on SMP && !MK8 && !X86_64_XEN
218 default y
220 config MATH_EMULATION
221 bool
223 config MCA
224 bool
226 config EISA
227 bool
229 config X86_IO_APIC
230 bool
231 depends !XEN_UNPRIVILEGED_GUEST
232 default y
234 config X86_XEN_GENAPIC
235 bool
236 depends X86_64_XEN
237 default XEN_PRIVILEGED_GUEST || SMP
239 config X86_LOCAL_APIC
240 bool
241 depends !XEN_UNPRIVILEGED_GUEST
242 default y
244 config MTRR
245 bool "MTRR (Memory Type Range Register) support"
246 depends on !XEN_UNPRIVILEGED_GUEST
247 ---help---
248 On Intel P6 family processors (Pentium Pro, Pentium II and later)
249 the Memory Type Range Registers (MTRRs) may be used to control
250 processor access to memory ranges. This is most useful if you have
251 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
252 allows bus write transfers to be combined into a larger transfer
253 before bursting over the PCI/AGP bus. This can increase performance
254 of image write operations 2.5 times or more. Saying Y here creates a
255 /proc/mtrr file which may be used to manipulate your processor's
256 MTRRs. Typically the X server should use this.
258 This code has a reasonably generic interface so that similar
259 control registers on other processors can be easily supported
260 as well.
262 Saying Y here also fixes a problem with buggy SMP BIOSes which only
263 set the MTRRs for the boot CPU and not for the secondary CPUs. This
264 can lead to all sorts of problems, so it's good to say Y here.
266 Just say Y here, all x86-64 machines support MTRRs.
268 See <file:Documentation/mtrr.txt> for more information.
270 config SMP
271 bool "Symmetric multi-processing support"
272 ---help---
273 This enables support for systems with more than one CPU. If you have
274 a system with only one CPU, like most personal computers, say N. If
275 you have a system with more than one CPU, say Y.
277 If you say N here, the kernel will run on single and multiprocessor
278 machines, but will use only one CPU of a multiprocessor machine. If
279 you say Y here, the kernel will run on many, but not all,
280 singleprocessor machines. On a singleprocessor machine, the kernel
281 will run faster if you say N here.
283 If you don't know what to do here, say N.
285 config SCHED_SMT
286 bool "SMT (Hyperthreading) scheduler support"
287 depends on SMP && !X86_64_XEN
288 default n
289 help
290 SMT scheduler support improves the CPU scheduler's decision making
291 when dealing with Intel Pentium 4 chips with HyperThreading at a
292 cost of slightly increased overhead in some places. If unsure say
293 N here.
295 config SCHED_MC
296 bool "Multi-core scheduler support"
297 depends on SMP && !X86_64_XEN
298 default y
299 help
300 Multi-core scheduler support improves the CPU scheduler's decision
301 making when dealing with multi-core CPU chips at a cost of slightly
302 increased overhead in some places. If unsure say N here.
304 source "kernel/Kconfig.preempt"
306 config NUMA
307 bool "Non Uniform Memory Access (NUMA) Support"
308 depends on SMP && !X86_64_XEN
309 help
310 Enable NUMA (Non Uniform Memory Access) support. The kernel
311 will try to allocate memory used by a CPU on the local memory
312 controller of the CPU and add some more NUMA awareness to the kernel.
313 This code is recommended on all multiprocessor Opteron systems.
314 If the system is EM64T, you should say N unless your system is EM64T
315 NUMA.
317 config K8_NUMA
318 bool "Old style AMD Opteron NUMA detection"
319 depends on NUMA
320 default y
321 help
322 Enable K8 NUMA node topology detection. You should say Y here if
323 you have a multi processor AMD K8 system. This uses an old
324 method to read the NUMA configurtion directly from the builtin
325 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
326 instead, which also takes priority if both are compiled in.
328 config NODES_SHIFT
329 int
330 default "6"
331 depends on NEED_MULTIPLE_NODES
333 # Dummy CONFIG option to select ACPI_NUMA from drivers/acpi/Kconfig.
335 config X86_64_ACPI_NUMA
336 bool "ACPI NUMA detection"
337 depends on NUMA
338 select ACPI
339 select PCI
340 select ACPI_NUMA
341 default y
342 help
343 Enable ACPI SRAT based node topology detection.
345 config NUMA_EMU
346 bool "NUMA emulation"
347 depends on NUMA
348 help
349 Enable NUMA emulation. A flat machine will be split
350 into virtual nodes when booted with "numa=fake=N", where N is the
351 number of nodes. This is only useful for debugging.
353 config ARCH_DISCONTIGMEM_ENABLE
354 bool
355 depends on NUMA
356 default y
359 config ARCH_DISCONTIGMEM_ENABLE
360 def_bool y
361 depends on NUMA
363 config ARCH_DISCONTIGMEM_DEFAULT
364 def_bool y
365 depends on NUMA
367 config ARCH_SPARSEMEM_ENABLE
368 def_bool y
369 depends on (NUMA || EXPERIMENTAL) && !X86_64_XEN
371 config ARCH_MEMORY_PROBE
372 def_bool y
373 depends on MEMORY_HOTPLUG
375 config ARCH_FLATMEM_ENABLE
376 def_bool y
377 depends on !NUMA
379 source "mm/Kconfig"
381 config HAVE_ARCH_EARLY_PFN_TO_NID
382 def_bool y
383 depends on NUMA
385 config OUT_OF_LINE_PFN_TO_PAGE
386 def_bool y
387 depends on DISCONTIGMEM
389 config NR_CPUS
390 int "Maximum number of CPUs (2-256)"
391 range 2 255
392 depends on SMP
393 default "16" if X86_64_XEN
394 default "8"
395 help
396 This allows you to specify the maximum number of CPUs which this
397 kernel will support. Current maximum is 256 CPUs due to
398 APIC addressing limits. Less depending on the hardware.
400 This is purely to save memory - each supported CPU requires
401 memory in the static kernel configuration.
403 config HOTPLUG_CPU
404 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
405 depends on SMP && HOTPLUG && EXPERIMENTAL
406 help
407 Say Y here to experiment with turning CPUs off and on. CPUs
408 can be controlled through /sys/devices/system/cpu/cpu#.
409 Say N if you want to disable CPU hotplug.
411 config ARCH_ENABLE_MEMORY_HOTPLUG
412 def_bool y
414 config HPET_TIMER
415 bool
416 depends on !X86_64_XEN
417 default y
418 help
419 Use the IA-PC HPET (High Precision Event Timer) to manage
420 time in preference to the PIT and RTC, if a HPET is
421 present. The HPET provides a stable time base on SMP
422 systems, unlike the TSC, but it is more expensive to access,
423 as it is off-chip. You can find the HPET spec at
424 <http://www.intel.com/hardwaredesign/hpetspec.htm>.
426 config HPET_EMULATE_RTC
427 bool "Provide RTC interrupt"
428 depends on HPET_TIMER && RTC=y
430 # Mark as embedded because too many people got it wrong.
431 # The code disables itself when not needed.
432 config IOMMU
433 bool "IOMMU support" if EMBEDDED
434 default y
435 select SWIOTLB
436 select AGP
437 depends on PCI && !X86_64_XEN
438 help
439 Support for full DMA access of devices with 32bit memory access only
440 on systems with more than 3GB. This is usually needed for USB,
441 sound, many IDE/SATA chipsets and some other devices.
442 Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
443 based IOMMU and a software bounce buffer based IOMMU used on Intel
444 systems and as fallback.
445 The code is only active when needed (enough memory and limited
446 device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
447 too.
449 config CALGARY_IOMMU
450 bool "IBM Calgary IOMMU support"
451 default y
452 select SWIOTLB
453 depends on PCI && EXPERIMENTAL
454 help
455 Support for hardware IOMMUs in IBM's xSeries x366 and x460
456 systems. Needed to run systems with more than 3GB of memory
457 properly with 32-bit PCI devices that do not support DAC
458 (Double Address Cycle). Calgary also supports bus level
459 isolation, where all DMAs pass through the IOMMU. This
460 prevents them from going anywhere except their intended
461 destination. This catches hard-to-find kernel bugs and
462 mis-behaving drivers and devices that do not use the DMA-API
463 properly to set up their DMA buffers. The IOMMU can be
464 turned off at boot time with the iommu=off parameter.
465 Normally the kernel will make the right choice by itself.
466 If unsure, say Y.
468 # need this always selected by IOMMU for the VIA workaround
469 config SWIOTLB
470 bool
472 config X86_MCE
473 bool "Machine check support" if EMBEDDED
474 depends on !X86_64_XEN
475 default y
476 help
477 Include a machine check error handler to report hardware errors.
478 This version will require the mcelog utility to decode some
479 machine check error logs. See
480 ftp://ftp.x86-64.org/pub/linux/tools/mcelog
482 config X86_MCE_INTEL
483 bool "Intel MCE features"
484 depends on X86_MCE && X86_LOCAL_APIC
485 default y
486 help
487 Additional support for intel specific MCE features such as
488 the thermal monitor.
490 config X86_MCE_AMD
491 bool "AMD MCE features"
492 depends on X86_MCE && X86_LOCAL_APIC
493 default y
494 help
495 Additional support for AMD specific MCE features such as
496 the DRAM Error Threshold.
498 config KEXEC
499 bool "kexec system call (EXPERIMENTAL)"
500 depends on EXPERIMENTAL && !XEN_UNPRIVILEGED_GUEST
501 help
502 kexec is a system call that implements the ability to shutdown your
503 current kernel, and to start another kernel. It is like a reboot
504 but it is independent of the system firmware. And like a reboot
505 you can start any kernel with it, not just Linux.
507 The name comes from the similarity to the exec system call.
509 It is an ongoing process to be certain the hardware in a machine
510 is properly shutdown, so do not be surprised if this code does not
511 initially work for you. It may help to enable device hotplugging
512 support. As of this writing the exact hardware interface is
513 strongly in flux, so no good recommendation can be made.
515 config CRASH_DUMP
516 bool "kernel crash dumps (EXPERIMENTAL)"
517 depends on EXPERIMENTAL
518 help
519 Generate crash dump after being started by kexec.
521 config PHYSICAL_START
522 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
523 default "0x1000000" if CRASH_DUMP
524 default "0x200000"
525 help
526 This gives the physical address where the kernel is loaded. Normally
527 for regular kernels this value is 0x200000 (2MB). But in the case
528 of kexec on panic the fail safe kernel needs to run at a different
529 address than the panic-ed kernel. This option is used to set the load
530 address for kernels used to capture crash dump on being kexec'ed
531 after panic. The default value for crash dump kernels is
532 0x1000000 (16MB). This can also be set based on the "X" value as
533 specified in the "crashkernel=YM@XM" command line boot parameter
534 passed to the panic-ed kernel. Typically this parameter is set as
535 crashkernel=64M@16M. Please take a look at
536 Documentation/kdump/kdump.txt for more details about crash dumps.
538 Don't change this unless you know what you are doing.
540 config SECCOMP
541 bool "Enable seccomp to safely compute untrusted bytecode"
542 depends on PROC_FS
543 default y
544 help
545 This kernel feature is useful for number crunching applications
546 that may need to compute untrusted bytecode during their
547 execution. By using pipes or other transports made available to
548 the process as file descriptors supporting the read/write
549 syscalls, it's possible to isolate those applications in
550 their own address space using seccomp. Once seccomp is
551 enabled via /proc/<pid>/seccomp, it cannot be disabled
552 and the task is only allowed to execute a few safe syscalls
553 defined by each seccomp mode.
555 If unsure, say Y. Only embedded should say N here.
557 source kernel/Kconfig.hz
559 config REORDER
560 bool "Function reordering"
561 default n
562 help
563 This option enables the toolchain to reorder functions for a more
564 optimal TLB usage. If you have pretty much any version of binutils,
565 this can increase your kernel build time by roughly one minute.
567 config K8_NB
568 def_bool y
569 depends on AGP_AMD64 || IOMMU || (PCI && NUMA)
571 endmenu
573 #
574 # Use the generic interrupt handling code in kernel/irq/:
575 #
576 config GENERIC_HARDIRQS
577 bool
578 default y
580 config GENERIC_IRQ_PROBE
581 bool
582 default y
584 # we have no ISA slots, but we do have ISA-style DMA.
585 config ISA_DMA_API
586 bool
587 default y
589 config GENERIC_PENDING_IRQ
590 bool
591 depends on GENERIC_HARDIRQS && SMP
592 default y
594 menu "Power management options"
595 depends on !XEN_UNPRIVILEGED_GUEST
597 if !X86_64_XEN
598 source kernel/power/Kconfig
599 endif
601 source "drivers/acpi/Kconfig"
603 source "arch/x86_64/kernel/cpufreq/Kconfig"
605 endmenu
607 menu "Bus options (PCI etc.)"
609 config PCI
610 bool "PCI support"
612 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
613 config PCI_DIRECT
614 bool
615 depends on PCI
616 default y
618 config PCI_MMCONFIG
619 bool "Support mmconfig PCI config space access"
620 depends on PCI && ACPI
622 config XEN_PCIDEV_FRONTEND
623 bool "Xen PCI Frontend"
624 depends on PCI && X86_64_XEN
625 default y
626 help
627 The PCI device frontend driver allows the kernel to import arbitrary
628 PCI devices from a PCI backend to support PCI driver domains.
630 config XEN_PCIDEV_FE_DEBUG
631 bool "Xen PCI Frontend Debugging"
632 depends on XEN_PCIDEV_FRONTEND
633 default n
634 help
635 Enables some debug statements within the PCI Frontend.
637 source "drivers/pci/pcie/Kconfig"
639 source "drivers/pci/Kconfig"
641 source "drivers/pcmcia/Kconfig"
643 source "drivers/pci/hotplug/Kconfig"
645 endmenu
648 menu "Executable file formats / Emulations"
650 source "fs/Kconfig.binfmt"
652 config IA32_EMULATION
653 bool "IA32 Emulation"
654 help
655 Include code to run 32-bit programs under a 64-bit kernel. You should likely
656 turn this on, unless you're 100% sure that you don't have any 32-bit programs
657 left.
659 config IA32_AOUT
660 tristate "IA32 a.out support"
661 depends on IA32_EMULATION
662 help
663 Support old a.out binaries in the 32bit emulation.
665 config COMPAT
666 bool
667 depends on IA32_EMULATION
668 default y
670 config SYSVIPC_COMPAT
671 bool
672 depends on COMPAT && SYSVIPC
673 default y
675 endmenu
677 source "net/Kconfig"
679 source drivers/Kconfig
681 source "drivers/firmware/Kconfig"
683 source fs/Kconfig
685 menu "Instrumentation Support"
686 depends on EXPERIMENTAL
688 source "arch/x86_64/oprofile/Kconfig"
690 config KPROBES
691 bool "Kprobes (EXPERIMENTAL)"
692 depends on EXPERIMENTAL && MODULES
693 help
694 Kprobes allows you to trap at almost any kernel address and
695 execute a callback function. register_kprobe() establishes
696 a probepoint and specifies the callback. Kprobes is useful
697 for kernel debugging, non-intrusive instrumentation and testing.
698 If in doubt, say "N".
699 endmenu
701 source "arch/x86_64/Kconfig.debug"
703 source "security/Kconfig"
705 source "crypto/Kconfig"
707 source "drivers/xen/Kconfig"
709 source "lib/Kconfig"