Merge to Fedora kernel-2.6.17-1.2187_FC5 patched with stable patch-2.6.17.13-vs2...
[linux-2.6.git] / arch / x86_64 / Kconfig
index b2cd1f2..0f4ed71 100644 (file)
@@ -123,6 +123,22 @@ config GENERIC_CPU
 
 endchoice
 
+config X86_64_XEN
+       bool "Enable Xen compatible kernel"
+       select SWIOTLB
+       help
+         This option will compile a kernel compatible with Xen hypervisor
+
+config X86_NO_TSS
+       bool
+       depends on X86_64_XEN
+       default y
+
+config X86_NO_IDT
+       bool
+       depends on X86_64_XEN
+       default y
+
 #
 # Define implied options from the CPU selection here
 #
@@ -143,6 +159,7 @@ config X86_INTERNODE_CACHE_BYTES
 
 config X86_TSC
        bool
+       depends on !X86_64_XEN
        default y
 
 config X86_GOOD_APIC
@@ -185,7 +202,7 @@ config X86_CPUID
 
 config X86_HT
        bool
-       depends on SMP && !MK8
+       depends on SMP && !MK8 && !X86_64_XEN
        default y
 
 config MATH_EMULATION
@@ -199,14 +216,22 @@ config EISA
 
 config X86_IO_APIC
        bool
+       depends !XEN_UNPRIVILEGED_GUEST
        default y
 
+config X86_XEN_GENAPIC
+       bool
+       depends X86_64_XEN
+       default XEN_PRIVILEGED_GUEST || SMP
+
 config X86_LOCAL_APIC
        bool
+       depends !XEN_UNPRIVILEGED_GUEST
        default y
 
 config MTRR
        bool "MTRR (Memory Type Range Register) support"
+       depends on !XEN_UNPRIVILEGED_GUEST
        ---help---
          On Intel P6 family processors (Pentium Pro, Pentium II and later)
          the Memory Type Range Registers (MTRRs) may be used to control
@@ -247,7 +272,7 @@ config SMP
 
 config SCHED_SMT
        bool "SMT (Hyperthreading) scheduler support"
-       depends on SMP
+       depends on SMP && !X86_64_XEN
        default n
        help
          SMT scheduler support improves the CPU scheduler's decision making
@@ -257,7 +282,7 @@ config SCHED_SMT
 
 config SCHED_MC
        bool "Multi-core scheduler support"
-       depends on SMP
+       depends on SMP && !X86_64_XEN
        default y
        help
          Multi-core scheduler support improves the CPU scheduler's decision
@@ -268,7 +293,7 @@ source "kernel/Kconfig.preempt"
 
 config NUMA
        bool "Non Uniform Memory Access (NUMA) Support"
-       depends on SMP
+       depends on SMP && !X86_64_XEN
        help
         Enable NUMA (Non Uniform Memory Access) support. The kernel 
         will try to allocate memory used by a CPU on the local memory 
@@ -328,7 +353,7 @@ config ARCH_DISCONTIGMEM_DEFAULT
 
 config ARCH_SPARSEMEM_ENABLE
        def_bool y
-       depends on (NUMA || EXPERIMENTAL)
+       depends on (NUMA || EXPERIMENTAL) && !X86_64_XEN
 
 config ARCH_MEMORY_PROBE
        def_bool y
@@ -352,6 +377,7 @@ config NR_CPUS
        int "Maximum number of CPUs (2-256)"
        range 2 255
        depends on SMP
+       default "16" if X86_64_XEN
        default "8"
        help
          This allows you to specify the maximum number of CPUs which this
@@ -369,9 +395,12 @@ config HOTPLUG_CPU
                can be controlled through /sys/devices/system/cpu/cpu#.
                Say N if you want to disable CPU hotplug.
 
+config ARCH_ENABLE_MEMORY_HOTPLUG
+       def_bool y
 
 config HPET_TIMER
        bool
+       depends on !X86_64_XEN
        default y
        help
          Use the IA-PC HPET (High Precision Event Timer) to manage
@@ -389,7 +418,7 @@ config GART_IOMMU
        bool "K8 GART IOMMU support"
        default y
        select SWIOTLB
-       depends on PCI
+       depends on PCI && !X86_64_XEN
        help
          Support for hardware IOMMU in AMD's Opteron/Athlon64 Processors
          and for the bounce buffering software IOMMU.
@@ -409,6 +438,7 @@ config SWIOTLB
 
 config X86_MCE
        bool "Machine check support" if EMBEDDED
+       depends on !X86_64_XEN
        default y
        help
           Include a machine check error handler to report hardware errors.
@@ -434,7 +464,7 @@ config X86_MCE_AMD
 
 config KEXEC
        bool "kexec system call (EXPERIMENTAL)"
-       depends on EXPERIMENTAL
+       depends on EXPERIMENTAL && !X86_64_XEN
        help
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
@@ -525,8 +555,11 @@ config GENERIC_PENDING_IRQ
        default y
 
 menu "Power management options"
+       depends on !XEN_UNPRIVILEGED_GUEST
 
+if !X86_64_XEN
 source kernel/power/Kconfig
+endif
 
 source "drivers/acpi/Kconfig"
 
@@ -549,6 +582,21 @@ config PCI_MMCONFIG
        bool "Support mmconfig PCI config space access"
        depends on PCI && ACPI
 
+config XEN_PCIDEV_FRONTEND
+       bool "Xen PCI Frontend"
+       depends on PCI && X86_64_XEN
+       default y
+       help
+         The PCI device frontend driver allows the kernel to import arbitrary
+         PCI devices from a PCI backend to support PCI driver domains.
+
+config XEN_PCIDEV_FE_DEBUG
+       bool "Xen PCI Frontend Debugging"
+       depends on XEN_PCIDEV_FRONTEND
+       default n
+       help
+         Enables some debug statements within the PCI Frontend.
+
 source "drivers/pci/pcie/Kconfig"
 
 source "drivers/pci/Kconfig"
@@ -621,4 +669,6 @@ source "security/Kconfig"
 
 source "crypto/Kconfig"
 
+source "drivers/xen/Kconfig"
+
 source "lib/Kconfig"