fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / x86_64 / Kconfig
index 0f4ed71..4142fe8 100644 (file)
@@ -24,6 +24,19 @@ config X86
        bool
        default y
 
        bool
        default y
 
+config ZONE_DMA32
+       bool
+       default y
+
+config LOCKDEP_SUPPORT
+       bool
+       default y
+
+config STACKTRACE_SUPPORT
+       bool
+       depends on !X86_64_XEN
+       default y
+
 config SEMAPHORE_SLEEPERS
        bool
        default y
 config SEMAPHORE_SLEEPERS
        bool
        default y
@@ -73,10 +86,30 @@ config ARCH_MAY_HAVE_PC_FDC
        bool
        default y
 
        bool
        default y
 
+config ARCH_POPULATES_NODE_MAP
+       def_bool y
+
 config DMI
        bool
        default y
 
 config DMI
        bool
        default y
 
+config AUDIT_ARCH
+       bool
+       default y
+
+config GENERIC_BUG
+       bool
+       default y
+       depends on BUG
+
+config ARCH_HAS_ILOG2_U32
+       bool
+       default n
+
+config ARCH_HAS_ILOG2_U64
+       bool
+       default n
+
 source "init/Kconfig"
 
 
 source "init/Kconfig"
 
 
@@ -93,6 +126,7 @@ config X86_PC
 
 config X86_VSMP
        bool "Support for ScaleMP vSMP"
 
 config X86_VSMP
        bool "Support for ScaleMP vSMP"
+       depends on PCI
         help
          Support for ScaleMP vSMP systems.  Say 'Y' here if this kernel is
          supposed to run on these EM64T-based machines.  Only choose this option
         help
          Support for ScaleMP vSMP systems.  Say 'Y' here if this kernel is
          supposed to run on these EM64T-based machines.  Only choose this option
@@ -102,7 +136,7 @@ endchoice
 
 choice
        prompt "Processor family"
 
 choice
        prompt "Processor family"
-       default MK8
+       default GENERIC_CPU
 
 config MK8
        bool "AMD-Opteron/Athlon64"
 
 config MK8
        bool "AMD-Opteron/Athlon64"
@@ -110,16 +144,31 @@ config MK8
          Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
 
 config MPSC
          Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
 
 config MPSC
-       bool "Intel EM64T"
+       bool "Intel P4 / older Netburst based Xeon"
        help
        help
-         Optimize for Intel Pentium 4 and Xeon CPUs with Intel
-         Extended Memory 64 Technology(EM64T). For details see
+         Optimize for Intel Pentium 4 and older Nocona/Dempsey Xeon CPUs
+         with Intel Extended Memory 64 Technology(EM64T). For details see
          <http://www.intel.com/technology/64bitextensions/>.
          <http://www.intel.com/technology/64bitextensions/>.
+         Note the the latest Xeons (Xeon 51xx and 53xx) are not based on the
+          Netburst core and shouldn't use this option. You can distingush them
+         using the cpu family field
+         in /proc/cpuinfo. Family 15 is a older Xeon, Family 6 a newer one
+         (this rule only applies to system that support EM64T)
+
+config MCORE2
+       bool "Intel Core2 / newer Xeon"
+       help
+         Optimize for Intel Core2 and newer Xeons (51xx)
+         You can distingush the newer Xeons from the older ones using
+         the cpu family field in /proc/cpuinfo. 15 is a older Xeon
+         (use CONFIG_MPSC then), 6 is a newer one. This rule only
+         applies to CPUs that support EM64T.
 
 config GENERIC_CPU
        bool "Generic-x86-64"
        help
          Generic x86-64 CPU.
 
 config GENERIC_CPU
        bool "Generic-x86-64"
        help
          Generic x86-64 CPU.
+         Run equally well on all x86-64 CPUs.
 
 endchoice
 
 
 endchoice
 
@@ -145,12 +194,12 @@ config X86_NO_IDT
 config X86_L1_CACHE_BYTES
        int
        default "128" if GENERIC_CPU || MPSC
 config X86_L1_CACHE_BYTES
        int
        default "128" if GENERIC_CPU || MPSC
-       default "64" if MK8
+       default "64" if MK8 || MCORE2
 
 config X86_L1_CACHE_SHIFT
        int
        default "7" if GENERIC_CPU || MPSC
 
 config X86_L1_CACHE_SHIFT
        int
        default "7" if GENERIC_CPU || MPSC
-       default "6" if MK8
+       default "6" if MK8 || MCORE2
 
 config X86_INTERNODE_CACHE_BYTES
        int
 
 config X86_INTERNODE_CACHE_BYTES
        int
@@ -168,6 +217,7 @@ config X86_GOOD_APIC
 
 config MICROCODE
        tristate "/dev/cpu/microcode - Intel CPU microcode support"
 
 config MICROCODE
        tristate "/dev/cpu/microcode - Intel CPU microcode support"
+       select FW_LOADER
        ---help---
          If you say Y here the 'File systems' section, you will be
          able to update the microcode on Intel processors. You will
        ---help---
          If you say Y here the 'File systems' section, you will be
          able to update the microcode on Intel processors. You will
@@ -183,6 +233,11 @@ config MICROCODE
          If you use modprobe or kmod you may also want to add the line
          'alias char-major-10-184 microcode' to your /etc/modules.conf file.
 
          If you use modprobe or kmod you may also want to add the line
          'alias char-major-10-184 microcode' to your /etc/modules.conf file.
 
+config MICROCODE_OLD_INTERFACE
+       bool
+       depends on MICROCODE
+       default y
+
 config X86_MSR
        tristate "/dev/cpu/*/msr - Model-specific register support"
        help
 config X86_MSR
        tristate "/dev/cpu/*/msr - Model-specific register support"
        help
@@ -304,12 +359,12 @@ config NUMA
 
 config K8_NUMA
        bool "Old style AMD Opteron NUMA detection"
 
 config K8_NUMA
        bool "Old style AMD Opteron NUMA detection"
-       depends on NUMA
+       depends on NUMA && PCI
        default y
        help
         Enable K8 NUMA node topology detection.  You should say Y here if
         you have a multi processor AMD K8 system. This uses an old
        default y
        help
         Enable K8 NUMA node topology detection.  You should say Y here if
         you have a multi processor AMD K8 system. This uses an old
-        method to read the NUMA configurtion directly from the builtin
+        method to read the NUMA configuration directly from the builtin
         Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
         instead, which also takes priority if both are compiled in.   
 
         Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
         instead, which also takes priority if both are compiled in.   
 
@@ -324,6 +379,7 @@ config X86_64_ACPI_NUMA
        bool "ACPI NUMA detection"
        depends on NUMA
        select ACPI 
        bool "ACPI NUMA detection"
        depends on NUMA
        select ACPI 
+       select PCI
        select ACPI_NUMA
        default y
        help
        select ACPI_NUMA
        default y
        help
@@ -342,11 +398,6 @@ config ARCH_DISCONTIGMEM_ENABLE
        depends on NUMA
        default y
 
        depends on NUMA
        default y
 
-
-config ARCH_DISCONTIGMEM_ENABLE
-       def_bool y
-       depends on NUMA
-
 config ARCH_DISCONTIGMEM_DEFAULT
        def_bool y
        depends on NUMA
 config ARCH_DISCONTIGMEM_DEFAULT
        def_bool y
        depends on NUMA
@@ -365,6 +416,10 @@ config ARCH_FLATMEM_ENABLE
 
 source "mm/Kconfig"
 
 
 source "mm/Kconfig"
 
+config MEMORY_HOTPLUG_RESERVE
+       def_bool y
+       depends on (MEMORY_HOTPLUG && DISCONTIGMEM)
+
 config HAVE_ARCH_EARLY_PFN_TO_NID
        def_bool y
        depends on NUMA
 config HAVE_ARCH_EARLY_PFN_TO_NID
        def_bool y
        depends on NUMA
@@ -414,27 +469,57 @@ config HPET_EMULATE_RTC
        bool "Provide RTC interrupt"
        depends on HPET_TIMER && RTC=y
 
        bool "Provide RTC interrupt"
        depends on HPET_TIMER && RTC=y
 
-config GART_IOMMU
-       bool "K8 GART IOMMU support"
+# Mark as embedded because too many people got it wrong.
+# The code disables itself when not needed.
+config IOMMU
+       bool "IOMMU support" if EMBEDDED
        default y
        select SWIOTLB
        default y
        select SWIOTLB
+       select AGP
        depends on PCI && !X86_64_XEN
        help
        depends on PCI && !X86_64_XEN
        help
-         Support for hardware IOMMU in AMD's Opteron/Athlon64 Processors
-         and for the bounce buffering software IOMMU.
-         Needed to run systems with more than 3GB of memory properly with
-         32-bit PCI devices that do not support DAC (Double Address Cycle).
-         The IOMMU can be turned off at runtime with the iommu=off parameter.
-         Normally the kernel will take the right choice by itself.
-         This option includes a driver for the AMD Opteron/Athlon64 IOMMU
-         northbridge and a software emulation used on other systems without
-         hardware IOMMU.  If unsure, say Y.
-
-# need this always enabled with GART_IOMMU for the VIA workaround
+         Support for full DMA access of devices with 32bit memory access only
+         on systems with more than 3GB. This is usually needed for USB,
+         sound, many IDE/SATA chipsets and some other devices.
+         Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
+         based IOMMU and a software bounce buffer based IOMMU used on Intel
+         systems and as fallback.
+         The code is only active when needed (enough memory and limited
+         device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
+         too.
+
+config CALGARY_IOMMU
+       bool "IBM Calgary IOMMU support"
+       select SWIOTLB
+       depends on PCI && EXPERIMENTAL
+       help
+         Support for hardware IOMMUs in IBM's xSeries x366 and x460
+         systems. Needed to run systems with more than 3GB of memory
+         properly with 32-bit PCI devices that do not support DAC
+         (Double Address Cycle). Calgary also supports bus level
+         isolation, where all DMAs pass through the IOMMU.  This
+         prevents them from going anywhere except their intended
+         destination. This catches hard-to-find kernel bugs and
+         mis-behaving drivers and devices that do not use the DMA-API
+         properly to set up their DMA buffers.  The IOMMU can be
+         turned off at boot time with the iommu=off parameter.
+         Normally the kernel will make the right choice by itself.
+         If unsure, say Y.
+
+config CALGARY_IOMMU_ENABLED_BY_DEFAULT
+       bool "Should Calgary be enabled by default?"
+       default y
+       depends on CALGARY_IOMMU
+       help
+         Should Calgary be enabled by default? if you choose 'y', Calgary
+         will be used (if it exists). If you choose 'n', Calgary will not be
+         used even if it exists. If you choose 'n' and would like to use
+         Calgary anyway, pass 'iommu=calgary' on the kernel command line.
+         If unsure, say Y.
+
+# need this always selected by IOMMU for the VIA workaround
 config SWIOTLB
        bool
 config SWIOTLB
        bool
-       default y
-       depends on GART_IOMMU
 
 config X86_MCE
        bool "Machine check support" if EMBEDDED
 
 config X86_MCE
        bool "Machine check support" if EMBEDDED
@@ -463,15 +548,15 @@ config X86_MCE_AMD
           the DRAM Error Threshold.
 
 config KEXEC
           the DRAM Error Threshold.
 
 config KEXEC
-       bool "kexec system call (EXPERIMENTAL)"
-       depends on EXPERIMENTAL && !X86_64_XEN
+       bool "kexec system call"
+       depends on !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
        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
-         but it is indepedent of the system firmware.   And like a reboot
+         but it is independent of the system firmware.   And like a reboot
          you can start any kernel with it, not just Linux.
 
          you can start any kernel with it, not just Linux.
 
-         The name comes from the similiarity to the exec system call.
+         The name comes from the similarity to the exec system call.
 
          It is an ongoing process to be certain the hardware in a machine
          is properly shutdown, so do not be surprised if this code does not
 
          It is an ongoing process to be certain the hardware in a machine
          is properly shutdown, so do not be surprised if this code does not
@@ -483,7 +568,14 @@ config CRASH_DUMP
        bool "kernel crash dumps (EXPERIMENTAL)"
        depends on EXPERIMENTAL
        help
        bool "kernel crash dumps (EXPERIMENTAL)"
        depends on EXPERIMENTAL
        help
-               Generate crash dump after being started by kexec.
+          Generate crash dump after being started by kexec.
+          This should be normally only set in special crash dump kernels
+          which are loaded in the main kernel with kexec-tools into
+          a specially reserved region and then later executed after
+          a crash by kdump/kexec. The crash dump kernel must be compiled
+         to a memory address not used by the main kernel or BIOS using
+         PHYSICAL_START.
+          For more details see Documentation/kdump/kdump.txt
 
 config PHYSICAL_START
        hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
 
 config PHYSICAL_START
        hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
@@ -521,6 +613,30 @@ config SECCOMP
 
          If unsure, say Y. Only embedded should say N here.
 
 
          If unsure, say Y. Only embedded should say N here.
 
+config CC_STACKPROTECTOR
+       bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
+       depends on EXPERIMENTAL
+       help
+         This option turns on the -fstack-protector GCC feature. This
+         feature puts, at the beginning of critical functions, a canary
+         value on the stack just before the return address, and validates
+         the value just before actually returning.  Stack based buffer
+         overflows (that need to overwrite this return address) now also
+         overwrite the canary, which gets detected and the attack is then
+         neutralized via a kernel panic.
+
+         This feature requires gcc version 4.2 or above, or a distribution
+         gcc with the feature backported. Older versions are automatically
+         detected and for those versions, this configuration option is ignored.
+
+config CC_STACKPROTECTOR_ALL
+       bool "Use stack-protector for all functions"
+       depends on CC_STACKPROTECTOR
+       help
+         Normally, GCC only inserts the canary value protection for
+         functions that use large-ish on-stack buffers. By enabling
+         this option, GCC will be asked to do this for ALL functions.
+
 source kernel/Kconfig.hz
 
 config REORDER
 source kernel/Kconfig.hz
 
 config REORDER
@@ -531,6 +647,10 @@ config REORDER
          optimal TLB usage. If you have pretty much any version of binutils, 
         this can increase your kernel build time by roughly one minute.
 
          optimal TLB usage. If you have pretty much any version of binutils, 
         this can increase your kernel build time by roughly one minute.
 
+config K8_NB
+       def_bool y
+       depends on AGP_AMD64 || IOMMU || (PCI && NUMA)
+
 endmenu
 
 #
 endmenu
 
 #
@@ -652,7 +772,7 @@ source "arch/x86_64/oprofile/Kconfig"
 
 config KPROBES
        bool "Kprobes (EXPERIMENTAL)"
 
 config KPROBES
        bool "Kprobes (EXPERIMENTAL)"
-       depends on EXPERIMENTAL && MODULES
+       depends on KALLSYMS && EXPERIMENTAL && MODULES
        help
          Kprobes allows you to trap at almost any kernel address and
          execute a callback function.  register_kprobe() establishes
        help
          Kprobes allows you to trap at almost any kernel address and
          execute a callback function.  register_kprobe() establishes