Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[sfrench/cifs-2.6.git] / arch / mips / Kconfig
index 6f251746777d21e731d6e2816cf2bbb2b3a850f8..06ef440d16ce71bef0092d64e47526690735197c 100644 (file)
@@ -4,6 +4,7 @@ config MIPS
        default y
        select ARCH_32BIT_OFF_T if !64BIT
        select ARCH_BINFMT_ELF_STATE if MIPS_FP_SUPPORT
+       select ARCH_HAS_CPU_CACHE_ALIASING
        select ARCH_HAS_CPU_FINALIZE_INIT
        select ARCH_HAS_CURRENT_STACK_POINTER if !CC_IS_CLANG || CLANG_VERSION >= 140000
        select ARCH_HAS_DEBUG_VIRTUAL if !64BIT
@@ -112,6 +113,9 @@ config MIPS_FIXUP_BIGPHYS_ADDR
 config MIPS_GENERIC
        bool
 
+config MACH_GENERIC_CORE
+       bool
+
 config MACH_INGENIC
        bool
        select SYS_SUPPORTS_32BIT_KERNEL
@@ -148,6 +152,7 @@ config MIPS_GENERIC_KERNEL
        select DMA_NONCOHERENT
        select HAVE_PCI
        select IRQ_MIPS_CPU
+       select MACH_GENERIC_CORE
        select MIPS_AUTO_PFN_OFFSET
        select MIPS_CPU_SCACHE
        select MIPS_GIC
@@ -416,6 +421,7 @@ config MACH_INGENIC_SOC
        bool "Ingenic SoC based machines"
        select MIPS_GENERIC
        select MACH_INGENIC
+       select MACH_GENERIC_CORE
        select SYS_SUPPORTS_ZBOOT_UART16550
        select CPU_SUPPORTS_CPUFREQ
        select MIPS_EXTERNAL_TIMER
@@ -569,6 +575,59 @@ config MACH_PIC32
          Microchip PIC32 is a family of general-purpose 32 bit MIPS core
          microcontrollers.
 
+config MACH_EYEQ5
+       bool "Mobileye EyeQ5 SoC"
+       select MACH_GENERIC_CORE
+       select ARM_AMBA
+       select PHYSICAL_START_BOOL
+       select ARCH_SPARSEMEM_DEFAULT if 64BIT
+       select BOOT_RAW
+       select BUILTIN_DTB
+       select CEVT_R4K
+       select CLKSRC_MIPS_GIC
+       select COMMON_CLK
+       select CPU_MIPSR2_IRQ_EI
+       select CPU_MIPSR2_IRQ_VI
+       select CSRC_R4K
+       select DMA_NONCOHERENT
+       select HAVE_PCI
+       select IRQ_MIPS_CPU
+       select MIPS_AUTO_PFN_OFFSET
+       select MIPS_CPU_SCACHE
+       select MIPS_GIC
+       select MIPS_L1_CACHE_SHIFT_7
+       select PCI_DRIVERS_GENERIC
+       select SMP_UP if SMP
+       select SWAP_IO_SPACE
+       select SYS_HAS_CPU_MIPS64_R6
+       select SYS_SUPPORTS_64BIT_KERNEL
+       select SYS_SUPPORTS_HIGHMEM
+       select SYS_SUPPORTS_LITTLE_ENDIAN
+       select SYS_SUPPORTS_MIPS_CPS
+       select SYS_SUPPORTS_RELOCATABLE
+       select SYS_SUPPORTS_ZBOOT
+       select UHI_BOOT
+       select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
+       select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
+       select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
+       select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
+       select USB_UHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
+       select USB_UHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
+       select USE_OF
+       help
+         Select this to build a kernel supporting EyeQ5 SoC from Mobileye.
+
+       bool
+
+config FIT_IMAGE_FDT_EPM5
+       bool "Include FDT for Mobileye EyeQ5 development platforms"
+       depends on MACH_EYEQ5
+       default n
+       help
+         Enable this to include the FDT for the EyeQ5 development platforms
+         from Mobileye in the FIT kernel image.
+         This requires u-boot on the platform.
+
 config MACH_NINTENDO64
        bool "Nintendo 64 console"
        select CEVT_R4K
@@ -602,6 +661,7 @@ config RALINK
 config MACH_REALTEK_RTL
        bool "Realtek RTL838x/RTL839x based machines"
        select MIPS_GENERIC
+       select MACH_GENERIC_CORE
        select DMA_NONCOHERENT
        select IRQ_MIPS_CPU
        select CSRC_R4K
@@ -1253,6 +1313,7 @@ config CPU_LOONGSON64
        select CPU_SUPPORTS_HIGHMEM
        select CPU_SUPPORTS_HUGEPAGES
        select CPU_SUPPORTS_MSA
+       select CPU_SUPPORTS_VZ
        select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT
        select CPU_MIPSR2_IRQ_VI
        select DMA_NONCOHERENT
@@ -1264,7 +1325,6 @@ config CPU_LOONGSON64
        select MIPS_FP_SUPPORT
        select GPIOLIB
        select SWIOTLB
-       select HAVE_KVM
        help
          The Loongson GSx64(GS264/GS464/GS464E/GS464V) series of processor
          cores implements the MIPS64R2 instruction set with many extensions,
@@ -1272,44 +1332,6 @@ config CPU_LOONGSON64
          3B1000, 3B1500, 3A2000, 3A3000 and 3A4000) processors. However, old
          Loongson-2E/2F is not covered here and will be removed in future.
 
-config LOONGSON3_ENHANCEMENT
-       bool "New Loongson-3 CPU Enhancements"
-       default n
-       depends on CPU_LOONGSON64
-       help
-         New Loongson-3 cores (since Loongson-3A R2, as opposed to Loongson-3A
-         R1, Loongson-3B R1 and Loongson-3B R2) has many enhancements, such as
-         FTLB, L1-VCache, EI/DI/Wait/Prefetch instruction, DSP/DSPr2 ASE, User
-         Local register, Read-Inhibit/Execute-Inhibit, SFB (Store Fill Buffer),
-         Fast TLB refill support, etc.
-
-         This option enable those enhancements which are not probed at run
-         time. If you want a generic kernel to run on all Loongson 3 machines,
-         please say 'N' here. If you want a high-performance kernel to run on
-         new Loongson-3 machines only, please say 'Y' here.
-
-config CPU_LOONGSON3_WORKAROUNDS
-       bool "Loongson-3 LLSC Workarounds"
-       default y if SMP
-       depends on CPU_LOONGSON64
-       help
-         Loongson-3 processors have the llsc issues which require workarounds.
-         Without workarounds the system may hang unexpectedly.
-
-         Say Y, unless you know what you are doing.
-
-config CPU_LOONGSON3_CPUCFG_EMULATION
-       bool "Emulate the CPUCFG instruction on older Loongson cores"
-       default y
-       depends on CPU_LOONGSON64
-       help
-         Loongson-3A R4 and newer have the CPUCFG instruction available for
-         userland to query CPU capabilities, much like CPUID on x86. This
-         option provides emulation of the instruction on older Loongson
-         cores, back to Loongson-3A1000.
-
-         If unsure, please say Y.
-
 config CPU_LOONGSON2E
        bool "Loongson 2E"
        depends on SYS_HAS_CPU_LOONGSON2E
@@ -1377,7 +1399,6 @@ config CPU_MIPS32_R2
        select CPU_SUPPORTS_32BIT_KERNEL
        select CPU_SUPPORTS_HIGHMEM
        select CPU_SUPPORTS_MSA
-       select HAVE_KVM
        help
          Choose this option to build a kernel for release 2 or later of the
          MIPS32 architecture.  Most modern embedded systems with a 32-bit
@@ -1392,7 +1413,7 @@ config CPU_MIPS32_R5
        select CPU_SUPPORTS_32BIT_KERNEL
        select CPU_SUPPORTS_HIGHMEM
        select CPU_SUPPORTS_MSA
-       select HAVE_KVM
+       select CPU_SUPPORTS_VZ
        select MIPS_O32_FP64_SUPPORT
        help
          Choose this option to build a kernel for release 5 or later of the
@@ -1408,7 +1429,7 @@ config CPU_MIPS32_R6
        select CPU_SUPPORTS_32BIT_KERNEL
        select CPU_SUPPORTS_HIGHMEM
        select CPU_SUPPORTS_MSA
-       select HAVE_KVM
+       select CPU_SUPPORTS_VZ
        select MIPS_O32_FP64_SUPPORT
        help
          Choose this option to build a kernel for release 6 or later of the
@@ -1444,7 +1465,6 @@ config CPU_MIPS64_R2
        select CPU_SUPPORTS_HIGHMEM
        select CPU_SUPPORTS_HUGEPAGES
        select CPU_SUPPORTS_MSA
-       select HAVE_KVM
        help
          Choose this option to build a kernel for release 2 or later of the
          MIPS64 architecture.  Many modern embedded systems with a 64-bit
@@ -1462,7 +1482,7 @@ config CPU_MIPS64_R5
        select CPU_SUPPORTS_HUGEPAGES
        select CPU_SUPPORTS_MSA
        select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
-       select HAVE_KVM
+       select CPU_SUPPORTS_VZ
        help
          Choose this option to build a kernel for release 5 or later of the
          MIPS64 architecture.  This is a intermediate MIPS architecture
@@ -1480,7 +1500,7 @@ config CPU_MIPS64_R6
        select CPU_SUPPORTS_HUGEPAGES
        select CPU_SUPPORTS_MSA
        select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
-       select HAVE_KVM
+       select CPU_SUPPORTS_VZ
        help
          Choose this option to build a kernel for release 6 or later of the
          MIPS64 architecture.  New MIPS processors, starting with the Warrior
@@ -1495,9 +1515,9 @@ config CPU_P5600
        select CPU_SUPPORTS_HIGHMEM
        select CPU_SUPPORTS_MSA
        select CPU_SUPPORTS_CPUFREQ
+       select CPU_SUPPORTS_VZ
        select CPU_MIPSR2_IRQ_VI
        select CPU_MIPSR2_IRQ_EI
-       select HAVE_KVM
        select MIPS_O32_FP64_SUPPORT
        help
          Choose this option to build a kernel for MIPS Warrior P5600 CPU.
@@ -1619,7 +1639,7 @@ config CPU_CAVIUM_OCTEON
        select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
        select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
        select MIPS_L1_CACHE_SHIFT_7
-       select HAVE_KVM
+       select CPU_SUPPORTS_VZ
        help
          The Cavium Octeon processor is a highly integrated chip containing
          many ethernet hardware widgets for networking tasks. The processor
@@ -1649,6 +1669,44 @@ config CPU_BMIPS
 
 endchoice
 
+config LOONGSON3_ENHANCEMENT
+       bool "New Loongson-3 CPU Enhancements"
+       default n
+       depends on CPU_LOONGSON64
+       help
+         New Loongson-3 cores (since Loongson-3A R2, as opposed to Loongson-3A
+         R1, Loongson-3B R1 and Loongson-3B R2) has many enhancements, such as
+         FTLB, L1-VCache, EI/DI/Wait/Prefetch instruction, DSP/DSPr2 ASE, User
+         Local register, Read-Inhibit/Execute-Inhibit, SFB (Store Fill Buffer),
+         Fast TLB refill support, etc.
+
+         This option enable those enhancements which are not probed at run
+         time. If you want a generic kernel to run on all Loongson 3 machines,
+         please say 'N' here. If you want a high-performance kernel to run on
+         new Loongson-3 machines only, please say 'Y' here.
+
+config CPU_LOONGSON3_WORKAROUNDS
+       bool "Loongson-3 LLSC Workarounds"
+       default y if SMP
+       depends on CPU_LOONGSON64
+       help
+         Loongson-3 processors have the llsc issues which require workarounds.
+         Without workarounds the system may hang unexpectedly.
+
+         Say Y, unless you know what you are doing.
+
+config CPU_LOONGSON3_CPUCFG_EMULATION
+       bool "Emulate the CPUCFG instruction on older Loongson cores"
+       default y
+       depends on CPU_LOONGSON64
+       help
+         Loongson-3A R4 and newer have the CPUCFG instruction available for
+         userland to query CPU capabilities, much like CPUID on x86. This
+         option provides emulation of the instruction on older Loongson
+         cores, back to Loongson-3A1000.
+
+         If unsure, please say Y.
+
 config CPU_MIPS32_3_5_FEATURES
        bool "MIPS32 Release 3.5 Features"
        depends on SYS_HAS_CPU_MIPS32_R3_5
@@ -1974,6 +2032,8 @@ config CPU_SUPPORTS_ADDRWINCFG
 config CPU_SUPPORTS_HUGEPAGES
        bool
        depends on !(32BIT && (PHYS_ADDR_T_64BIT || EVA))
+config CPU_SUPPORTS_VZ
+       bool
 config MIPS_PGD_C0_CONTEXT
        bool
        depends on 64BIT
@@ -2123,7 +2183,8 @@ config CPU_R4K_CACHE_TLB
 config MIPS_MT_SMP
        bool "MIPS MT SMP support (1 TC on each available VPE)"
        default y
-       depends on SYS_SUPPORTS_MULTITHREADING && !CPU_MIPSR6 && !CPU_MICROMIPS
+       depends on TARGET_ISA_REV > 0 && TARGET_ISA_REV < 6
+       depends on SYS_SUPPORTS_MULTITHREADING && !CPU_MICROMIPS
        select CPU_MIPSR2_IRQ_VI
        select CPU_MIPSR2_IRQ_EI
        select SYNC_R4K