Merge branch 'x86/core' into x86/mce2
[safe/jmp/linux-2.6] / arch / x86 / Kconfig
index 270ecf9..3afc94a 100644 (file)
@@ -140,7 +140,6 @@ config HAVE_CPUMASK_OF_CPU_MAP
 
 config ARCH_HIBERNATION_POSSIBLE
        def_bool y
-       depends on !SMP
 
 config ARCH_SUSPEND_POSSIBLE
        def_bool y
@@ -195,6 +194,10 @@ config X86_TRAMPOLINE
        depends on SMP || (64BIT && ACPI_SLEEP)
        default y
 
+config X86_32_LAZY_GS
+       def_bool y
+       depends on X86_32 && !CC_STACKPROTECTOR
+
 config KTIME_SCALAR
        def_bool X86_32
 source "init/Kconfig"
@@ -232,6 +235,20 @@ config SMP
 
          If you don't know what to do here, say N.
 
+config X86_X2APIC
+       bool "Support x2apic"
+       depends on X86_LOCAL_APIC && X86_64
+       ---help---
+         This enables x2apic support on CPUs that have this feature.
+
+         This allows 32-bit apic IDs (so it can support very large systems),
+         and accesses the local apic via MSRs not via mmio.
+
+         ( On certain CPU models you may need to enable INTR_REMAP too,
+           to get functional x2apic mode. )
+
+         If you don't know what to do here, say N.
+
 config SPARSE_IRQ
        bool "Support sparse irq numbering"
        depends on PCI_MSI || HT_IRQ
@@ -268,65 +285,74 @@ config X86_BIGSMP
        ---help---
          This option is needed for the systems that have more than 8 CPUs
 
-config X86_NON_STANDARD
-       bool "Support for non-standard x86 platforms"
+if X86_32
+config X86_EXTENDED_PLATFORM
+       bool "Support for extended (non-PC) x86 platforms"
+       default y
        ---help---
          If you disable this option then the kernel will only support
          standard PC platforms. (which covers the vast majority of
          systems out there.)
 
-         If you enable this option then you'll be able to select a number
-         of less common non-PC x86 platforms: VisWS, RDC321, SGI/UV.
+         If you enable this option then you'll be able to select support
+         for the following (non-PC) 32 bit x86 platforms:
+               AMD Elan
+               NUMAQ (IBM/Sequent)
+               RDC R-321x SoC
+               SGI 320/540 (Visual Workstation)
+               Summit/EXA (IBM x440)
+               Unisys ES7000 IA32 series
 
          If you have one of these systems, or if you want to build a
          generic distribution kernel, say Y here - otherwise say N.
+endif
 
-config X86_VISWS
-       bool "SGI 320/540 (Visual Workstation)"
-       depends on X86_32 && PCI && X86_MPPARSE && PCI_GODIRECT
-       depends on X86_NON_STANDARD
+if X86_64
+config X86_EXTENDED_PLATFORM
+       bool "Support for extended (non-PC) x86 platforms"
+       default y
        ---help---
-         The SGI Visual Workstation series is an IA32-based workstation
-         based on SGI systems chips with some legacy PC hardware attached.
+         If you disable this option then the kernel will only support
+         standard PC platforms. (which covers the vast majority of
+         systems out there.)
 
-         Say Y here to create a kernel to run on the SGI 320 or 540.
+         If you enable this option then you'll be able to select support
+         for the following (non-PC) 64 bit x86 platforms:
+               ScaleMP vSMP
+               SGI Ultraviolet
 
-         A kernel compiled for the Visual Workstation will run on general
-         PCs as well. See <file:Documentation/sgi-visws.txt> for details.
+         If you have one of these systems, or if you want to build a
+         generic distribution kernel, say Y here - otherwise say N.
+endif
+# This is an alphabetically sorted list of 64 bit extended platforms
+# Please maintain the alphabetic order if and when there are additions
 
-config X86_RDC321X
-       bool "RDC R-321x SoC"
-       depends on X86_32
-       depends on X86_NON_STANDARD
-       select M486
-       select X86_REBOOTFIXUPS
+config X86_VSMP
+       bool "ScaleMP vSMP"
+       select PARAVIRT
+       depends on X86_64 && PCI
+       depends on X86_EXTENDED_PLATFORM
        ---help---
-         This option is needed for RDC R-321x system-on-chip, also known
-         as R-8610-(G).
-         If you don't have one of these chips, you should say N here.
+         Support for ScaleMP vSMP systems.  Say 'Y' here if this kernel is
+         supposed to run on these EM64T-based machines.  Only choose this option
+         if you have one of these machines.
 
 config X86_UV
        bool "SGI Ultraviolet"
        depends on X86_64
-       depends on X86_NON_STANDARD
+       depends on X86_EXTENDED_PLATFORM
+       select X86_X2APIC
        ---help---
          This option is needed in order to support SGI Ultraviolet systems.
          If you don't have one of these, you should say N here.
 
-config X86_VSMP
-       bool "Support for ScaleMP vSMP"
-       select PARAVIRT
-       depends on X86_64 && PCI
-       depends on X86_NON_STANDARD
-       ---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
-         if you have one of these machines.
+# Following is an alphabetically sorted list of 32 bit extended platforms
+# Please maintain the alphabetic order if and when there are additions
 
 config X86_ELAN
        bool "AMD Elan"
        depends on X86_32
-       depends on X86_NON_STANDARD
+       depends on X86_EXTENDED_PLATFORM
        ---help---
          Select this for an AMD Elan processor.
 
@@ -334,16 +360,29 @@ config X86_ELAN
 
          If unsure, choose "PC-compatible" instead.
 
+config X86_RDC321X
+       bool "RDC R-321x SoC"
+       depends on X86_32
+       depends on X86_EXTENDED_PLATFORM
+       select M486
+       select X86_REBOOTFIXUPS
+       ---help---
+         This option is needed for RDC R-321x system-on-chip, also known
+         as R-8610-(G).
+         If you don't have one of these chips, you should say N here.
+
 config X86_32_NON_STANDARD
        bool "Support non-standard 32-bit SMP architectures"
        depends on X86_32 && SMP
-       depends on X86_NON_STANDARD
+       depends on X86_EXTENDED_PLATFORM
        ---help---
          This option compiles in the NUMAQ, Summit, bigsmp, ES7000, default
          subarchitectures.  It is intended for a generic binary kernel.
          if you select them all, kernel will probe it one by one. and will
          fallback to default.
 
+# Alphabetically sorted list of Non standard 32 bit platforms
+
 config X86_NUMAQ
        bool "NUMAQ (IBM/Sequent)"
        depends on X86_32_NON_STANDARD
@@ -356,6 +395,19 @@ config X86_NUMAQ
          of Flat Logical.  You will need a new lynxer.elf file to flash your
          firmware with - send email to <Martin.Bligh@us.ibm.com>.
 
+config X86_VISWS
+       bool "SGI 320/540 (Visual Workstation)"
+       depends on X86_32 && PCI && X86_MPPARSE && PCI_GODIRECT
+       depends on X86_32_NON_STANDARD
+       ---help---
+         The SGI Visual Workstation series is an IA32-based workstation
+         based on SGI systems chips with some legacy PC hardware attached.
+
+         Say Y here to create a kernel to run on the SGI 320 or 540.
+
+         A kernel compiled for the Visual Workstation will run on general
+         PCs as well. See <file:Documentation/sgi-visws.txt> for details.
+
 config X86_SUMMIT
        bool "Summit/EXA (IBM x440)"
        depends on X86_32_NON_STANDARD
@@ -364,25 +416,12 @@ config X86_SUMMIT
          In particular, it is needed for the x440.
 
 config X86_ES7000
-       bool "Support for Unisys ES7000 IA32 series"
+       bool "Unisys ES7000 IA32 series"
        depends on X86_32_NON_STANDARD && X86_BIGSMP
        ---help---
          Support for Unisys ES7000 systems.  Say 'Y' here if this kernel is
          supposed to run on an IA32-based Unisys ES7000 system.
 
-config X86_VOYAGER
-       bool "Voyager (NCR)"
-       depends on SMP && !PCI && BROKEN
-       depends on X86_32_NON_STANDARD
-       ---help---
-         Voyager is an MCA-based 32-way capable SMP architecture proprietary
-         to NCR Corp.  Machine classes 345x/35xx/4100/51xx are Voyager-based.
-
-         *** WARNING ***
-
-         If you do not specifically know you have a Voyager based machine,
-         say N here, otherwise the kernel you build will not be bootable.
-
 config SCHED_OMIT_FRAME_POINTER
        def_bool y
        prompt "Single-depth WCHAN output"
@@ -738,6 +777,11 @@ config X86_MCE_AMD
           Additional support for AMD specific MCE features such as
           the DRAM Error Threshold.
 
+config X86_MCE_THRESHOLD
+       depends on X86_MCE_AMD || X86_MCE_INTEL
+       bool
+       default y
+
 config X86_MCE_NONFATAL
        tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
        depends on X86_32 && X86_MCE
@@ -1331,7 +1375,6 @@ config CC_STACKPROTECTOR_ALL
 
 config CC_STACKPROTECTOR
        bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
-       depends on X86_64
        select CC_STACKPROTECTOR_ALL
        ---help---
          This option turns on the -fstack-protector GCC feature. This
@@ -1784,7 +1827,7 @@ config DMAR
          remapping devices.
 
 config DMAR_DEFAULT_ON
-       def_bool n
+       def_bool y
        prompt "Enable DMA Remapping Devices by default"
        depends on DMAR
        help
@@ -1817,6 +1860,7 @@ config DMAR_FLOPPY_WA
 config INTR_REMAP
        bool "Support for Interrupt Remapping (EXPERIMENTAL)"
        depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL
+       select X86_X2APIC
        ---help---
          Supports Interrupt remapping for IO-APIC and MSI devices.
          To use x2apic mode in the CPU's which support x2APIC enhancements or