source: trunk/packages/xen-common/xen-common/linux-2.6-xen-sparse/arch/x86_64/Kconfig @ 34

Last change on this file since 34 was 34, checked in by hartmans, 17 years ago

Add xen and xen-common

File size: 17.9 KB
Line 
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#
9
10mainmenu "Linux Kernel Configuration"
11
12config 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/>.
19
20config 64BIT
21        def_bool y
22
23config X86
24        bool
25        default y
26
27config LOCKDEP_SUPPORT
28        bool
29        default y
30
31config STACKTRACE_SUPPORT
32        bool
33        default y
34
35config SEMAPHORE_SLEEPERS
36        bool
37        default y
38
39config MMU
40        bool
41        default y
42
43config ISA
44        bool
45
46config SBUS
47        bool
48
49config RWSEM_GENERIC_SPINLOCK
50        bool
51        default y
52
53config RWSEM_XCHGADD_ALGORITHM
54        bool
55
56config GENERIC_HWEIGHT
57        bool
58        default y
59
60config GENERIC_CALIBRATE_DELAY
61        bool
62        default y
63
64config X86_CMPXCHG
65        bool
66        default y
67
68config EARLY_PRINTK
69        bool
70        default y
71
72config GENERIC_ISA_DMA
73        bool
74        default y
75
76config GENERIC_IOMAP
77        bool
78        default y
79
80config ARCH_MAY_HAVE_PC_FDC
81        bool
82        default y
83
84config DMI
85        bool
86        default y
87
88config AUDIT_ARCH
89        bool
90        default y
91
92source "init/Kconfig"
93
94
95menu "Processor type and features"
96
97choice
98        prompt "Subarchitecture Type"
99        default X86_PC
100
101config X86_PC
102        bool "PC-compatible"
103        help
104          Choose this option if your computer is a standard PC or compatible.
105
106config 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.
112
113endchoice
114
115choice
116        prompt "Processor family"
117        default MK8
118
119config MK8
120        bool "AMD-Opteron/Athlon64"
121        help
122          Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
123
124config 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/>.
130
131config GENERIC_CPU
132        bool "Generic-x86-64"
133        help
134          Generic x86-64 CPU.
135
136endchoice
137
138config 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
143
144config X86_NO_TSS
145        bool
146        depends on X86_64_XEN
147        default y
148
149config X86_NO_IDT
150        bool
151        depends on X86_64_XEN
152        default y
153
154#
155# Define implied options from the CPU selection here
156#
157config X86_L1_CACHE_BYTES
158        int
159        default "128" if GENERIC_CPU || MPSC
160        default "64" if MK8
161
162config X86_L1_CACHE_SHIFT
163        int
164        default "7" if GENERIC_CPU || MPSC
165        default "6" if MK8
166
167config X86_INTERNODE_CACHE_BYTES
168        int
169        default "4096" if X86_VSMP
170        default X86_L1_CACHE_BYTES if !X86_VSMP
171
172config X86_TSC
173        bool
174        depends on !X86_64_XEN
175        default y
176
177config X86_GOOD_APIC
178        bool
179        default y
180
181config 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.
188
189          For latest news and information on obtaining all the required
190          ingredients for this driver, check:
191          <http://www.urbanmyth.org/microcode/>.
192
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.
197
198config 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.
206
207config 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.
214
215config X86_HT
216        bool
217        depends on SMP && !MK8 && !X86_64_XEN
218        default y
219
220config MATH_EMULATION
221        bool
222
223config MCA
224        bool
225
226config EISA
227        bool
228
229config X86_IO_APIC
230        bool
231        depends !XEN_UNPRIVILEGED_GUEST
232        default y
233
234config X86_XEN_GENAPIC
235        bool
236        depends X86_64_XEN
237        default XEN_PRIVILEGED_GUEST || SMP
238
239config X86_LOCAL_APIC
240        bool
241        depends !XEN_UNPRIVILEGED_GUEST
242        default y
243
244config 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.
257
258          This code has a reasonably generic interface so that similar
259          control registers on other processors can be easily supported
260          as well.
261
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.
265
266          Just say Y here, all x86-64 machines support MTRRs.
267
268          See <file:Documentation/mtrr.txt> for more information.
269
270config 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.
276
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.
282
283          If you don't know what to do here, say N.
284
285config 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.
294
295config 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.
303
304source "kernel/Kconfig.preempt"
305
306config 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.
316
317config 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.   
327
328config NODES_SHIFT
329        int
330        default "6"
331        depends on NEED_MULTIPLE_NODES
332
333# Dummy CONFIG option to select ACPI_NUMA from drivers/acpi/Kconfig.
334
335config 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.
344
345config 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.
352
353config ARCH_DISCONTIGMEM_ENABLE
354       bool
355       depends on NUMA
356       default y
357
358
359config ARCH_DISCONTIGMEM_ENABLE
360        def_bool y
361        depends on NUMA
362
363config ARCH_DISCONTIGMEM_DEFAULT
364        def_bool y
365        depends on NUMA
366
367config ARCH_SPARSEMEM_ENABLE
368        def_bool y
369        depends on (NUMA || EXPERIMENTAL) && !X86_64_XEN
370
371config ARCH_MEMORY_PROBE
372        def_bool y
373        depends on MEMORY_HOTPLUG
374
375config ARCH_FLATMEM_ENABLE
376        def_bool y
377        depends on !NUMA
378
379source "mm/Kconfig"
380
381config HAVE_ARCH_EARLY_PFN_TO_NID
382        def_bool y
383        depends on NUMA
384
385config OUT_OF_LINE_PFN_TO_PAGE
386        def_bool y
387        depends on DISCONTIGMEM
388
389config 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.
399
400          This is purely to save memory - each supported CPU requires
401          memory in the static kernel configuration.
402
403config 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.
410
411config ARCH_ENABLE_MEMORY_HOTPLUG
412        def_bool y
413
414config 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>.
425
426config HPET_EMULATE_RTC
427        bool "Provide RTC interrupt"
428        depends on HPET_TIMER && RTC=y
429
430# Mark as embedded because too many people got it wrong.
431# The code disables itself when not needed.
432config 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.
448
449config CALGARY_IOMMU
450        bool "IBM Calgary IOMMU support"
451        default y
452        select SWIOTLB
453        depends on PCI && !X86_64_XEN && 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.
467
468# need this always selected by IOMMU for the VIA workaround
469config SWIOTLB
470        bool
471
472config 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
481
482config 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.
489
490config 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.
497
498config 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.
506
507          The name comes from the similarity to the exec system call.
508
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.
514
515config CRASH_DUMP
516        bool "kernel crash dumps (EXPERIMENTAL)"
517        depends on EXPERIMENTAL
518        help
519                Generate crash dump after being started by kexec.
520
521config 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.
537
538          Don't change this unless you know what you are doing.
539
540config 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.
554
555          If unsure, say Y. Only embedded should say N here.
556
557source kernel/Kconfig.hz
558
559config 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.
566
567config K8_NB
568        def_bool y
569        depends on AGP_AMD64 || IOMMU || (PCI && NUMA)
570
571endmenu
572
573#
574# Use the generic interrupt handling code in kernel/irq/:
575#
576config GENERIC_HARDIRQS
577        bool
578        default y
579
580config GENERIC_IRQ_PROBE
581        bool
582        default y
583
584# we have no ISA slots, but we do have ISA-style DMA.
585config ISA_DMA_API
586        bool
587        default y
588
589config GENERIC_PENDING_IRQ
590        bool
591        depends on GENERIC_HARDIRQS && SMP
592        default y
593
594menu "Power management options"
595        depends on !XEN_UNPRIVILEGED_GUEST
596
597if !X86_64_XEN
598source kernel/power/Kconfig
599endif
600
601source "drivers/acpi/Kconfig"
602
603source "arch/x86_64/kernel/cpufreq/Kconfig"
604
605endmenu
606
607menu "Bus options (PCI etc.)"
608
609config PCI
610        bool "PCI support"
611
612# x86-64 doesn't support PCI BIOS access from long mode so always go direct.
613config PCI_DIRECT
614        bool
615        depends on PCI
616        default y
617
618config PCI_MMCONFIG
619        bool "Support mmconfig PCI config space access"
620        depends on PCI && ACPI
621
622config 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.
629
630config 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.
636
637source "drivers/pci/pcie/Kconfig"
638
639source "drivers/pci/Kconfig"
640
641source "drivers/pcmcia/Kconfig"
642
643source "drivers/pci/hotplug/Kconfig"
644
645endmenu
646
647
648menu "Executable file formats / Emulations"
649
650source "fs/Kconfig.binfmt"
651
652config 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.
658
659config 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.
664
665config COMPAT
666        bool
667        depends on IA32_EMULATION
668        default y
669
670config SYSVIPC_COMPAT
671        bool
672        depends on COMPAT && SYSVIPC
673        default y
674
675endmenu
676
677source "net/Kconfig"
678
679source drivers/Kconfig
680
681source "drivers/firmware/Kconfig"
682
683source fs/Kconfig
684
685menu "Instrumentation Support"
686        depends on EXPERIMENTAL
687
688source "arch/x86_64/oprofile/Kconfig"
689
690config 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".
699endmenu
700
701source "arch/x86_64/Kconfig.debug"
702
703source "security/Kconfig"
704
705source "crypto/Kconfig"
706
707source "drivers/xen/Kconfig"
708
709source "lib/Kconfig"
Note: See TracBrowser for help on using the repository browser.