These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / arch / mips / Kconfig
index 9b95c9b..bd8be6a 100644 (file)
@@ -1,8 +1,11 @@
 config MIPS
        bool
        default y
+       select ARCH_SUPPORTS_UPROBES
        select ARCH_MIGHT_HAVE_PC_PARPORT
        select ARCH_MIGHT_HAVE_PC_SERIO
+       select ARCH_USE_CMPXCHG_LOCKREF if 64BIT
+       select ARCH_USE_BUILTIN_BSWAP
        select HAVE_CONTEXT_TRACKING
        select HAVE_GENERIC_DMA_COHERENT
        select HAVE_IDE
@@ -13,7 +16,6 @@ config MIPS
        select HAVE_ARCH_SECCOMP_FILTER
        select HAVE_ARCH_TRACEHOOK
        select HAVE_BPF_JIT if !CPU_MICROMIPS
-       select ARCH_HAVE_CUSTOM_GPIO_H
        select HAVE_FUNCTION_TRACER
        select HAVE_DYNAMIC_FTRACE
        select HAVE_FTRACE_MCOUNT_RECORD
@@ -21,11 +23,12 @@ config MIPS
        select HAVE_FUNCTION_GRAPH_TRACER
        select HAVE_KPROBES
        select HAVE_KRETPROBES
+       select HAVE_SYSCALL_TRACEPOINTS
        select HAVE_DEBUG_KMEMLEAK
        select HAVE_SYSCALL_TRACEPOINTS
        select ARCH_HAS_ELF_RANDOMIZE
        select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES && 64BIT
-       select RTC_LIB if !MACH_LOONGSON
+       select RTC_LIB if !MACH_LOONGSON64
        select GENERIC_ATOMIC64 if !64BIT
        select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
        select HAVE_DMA_ATTRS
@@ -58,6 +61,8 @@ config MIPS
        select SYSCTL_EXCEPTION_TRACE
        select HAVE_VIRT_CPU_ACCOUNTING_GEN
        select HAVE_IRQ_TIME_ACCOUNTING
+       select GENERIC_TIME_VSYSCALL
+       select ARCH_CLOCKSOURCE_DATA
 
 menu "Machine selection"
 
@@ -70,7 +75,7 @@ config MIPS_ALCHEMY
        select ARCH_PHYS_ADDR_T_64BIT
        select CEVT_R4K
        select CSRC_R4K
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select DMA_MAYBE_COHERENT       # Au1000,1500,1100 aren't, rest is
        select SYS_HAS_CPU_MIPS32_R1
        select SYS_SUPPORTS_32BIT_KERNEL
@@ -85,7 +90,7 @@ config AR7
        select DMA_NONCOHERENT
        select CEVT_R4K
        select CSRC_R4K
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select NO_EXCEPT_FILL
        select SWAP_IO_SPACE
        select SYS_HAS_CPU_MIPS32_R1
@@ -106,7 +111,7 @@ config ATH25
        select CEVT_R4K
        select CSRC_R4K
        select DMA_NONCOHERENT
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select IRQ_DOMAIN
        select SYS_HAS_CPU_MIPS32_R1
        select SYS_SUPPORTS_BIG_ENDIAN
@@ -117,20 +122,24 @@ config ATH25
 
 config ATH79
        bool "Atheros AR71XX/AR724X/AR913X based boards"
+       select ARCH_HAS_RESET_CONTROLLER
        select ARCH_REQUIRE_GPIOLIB
        select BOOT_RAW
        select CEVT_R4K
        select CSRC_R4K
        select DMA_NONCOHERENT
        select HAVE_CLK
+       select COMMON_CLK
        select CLKDEV_LOOKUP
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select MIPS_MACHINE
        select SYS_HAS_CPU_MIPS32_R2
        select SYS_HAS_EARLY_PRINTK
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_BIG_ENDIAN
        select SYS_SUPPORTS_MIPS16
+       select SYS_SUPPORTS_ZBOOT
+       select USE_OF
        help
          Support for the Atheros AR71XX/AR724X/AR913X SoCs.
 
@@ -146,8 +155,7 @@ config BMIPS_GENERIC
        select BCM7038_L1_IRQ
        select BCM7120_L2_IRQ
        select BRCMSTB_L2_IRQ
-       select IRQ_CPU
-       select RAW_IRQ_ACCESSORS
+       select IRQ_MIPS_CPU
        select DMA_NONCOHERENT
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_LITTLE_ENDIAN
@@ -176,7 +184,7 @@ config BCM47XX
        select CSRC_R4K
        select DMA_NONCOHERENT
        select HW_HAS_PCI
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select SYS_HAS_CPU_MIPS32_R1
        select NO_EXCEPT_FILL
        select SYS_SUPPORTS_32BIT_KERNEL
@@ -186,6 +194,7 @@ config BCM47XX
        select USE_GENERIC_EARLY_PRINTK_8250
        select GPIOLIB
        select LEDS_GPIO_REGISTER
+       select BCM47XX_NVRAM
        help
         Support for BCM47XX based boards
 
@@ -196,7 +205,7 @@ config BCM63XX
        select CSRC_R4K
        select SYNC_R4K
        select DMA_NONCOHERENT
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_BIG_ENDIAN
        select SYS_HAS_EARLY_PRINTK
@@ -216,7 +225,7 @@ config MIPS_COBALT
        select HW_HAS_PCI
        select I8253
        select I8259
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select IRQ_GT641XX
        select PCI_GT64XXX_PCI0
        select PCI
@@ -239,7 +248,7 @@ config MACH_DECSTATION
        select CPU_R4400_WORKAROUNDS if 64BIT
        select DMA_NONCOHERENT
        select NO_IOPORT_MAP
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select SYS_HAS_CPU_R3000
        select SYS_HAS_CPU_R4X00
        select SYS_SUPPORTS_32BIT_KERNEL
@@ -274,7 +283,7 @@ config MACH_JAZZ
        select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
        select GENERIC_ISA_DMA
        select HAVE_PCSPKR_PLATFORM
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select I8253
        select I8259
        select ISA
@@ -288,23 +297,24 @@ config MACH_JAZZ
         Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
         Olivetti M700-10 workstations.
 
-config MACH_JZ4740
-       bool "Ingenic JZ4740 based machines"
-       select SYS_HAS_CPU_MIPS32_R1
+config MACH_INGENIC
+       bool "Ingenic SoC based machines"
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_LITTLE_ENDIAN
        select SYS_SUPPORTS_ZBOOT_UART16550
        select DMA_NONCOHERENT
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select ARCH_REQUIRE_GPIOLIB
-       select SYS_HAS_EARLY_PRINTK
-       select HAVE_CLK
+       select COMMON_CLK
        select GENERIC_IRQ_CHIP
+       select BUILTIN_DTB
+       select USE_OF
+       select LIBFDT
 
 config LANTIQ
        bool "Lantiq based platforms"
        select DMA_NONCOHERENT
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select CEVT_R4K
        select CSRC_R4K
        select SYS_HAS_CPU_MIPS32_R1
@@ -333,7 +343,7 @@ config LASAT
        select DMA_NONCOHERENT
        select SYS_HAS_EARLY_PRINTK
        select HW_HAS_PCI
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select PCI_GT64XXX_PCI0
        select MIPS_NILE4
        select R5000_CPU_SCACHE
@@ -342,26 +352,28 @@ config LASAT
        select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
        select SYS_SUPPORTS_LITTLE_ENDIAN
 
-config MACH_LOONGSON
-       bool "Loongson family of machines"
+config MACH_LOONGSON32
+       bool "Loongson-1 family of machines"
        select SYS_SUPPORTS_ZBOOT
        help
-         This enables the support of Loongson family of machines.
+         This enables support for the Loongson-1 family of machines.
 
-         Loongson is a family of general-purpose MIPS-compatible CPUs.
-         developed at Institute of Computing Technology (ICT),
-         Chinese Academy of Sciences (CAS) in the People's Republic
-         of China. The chief architect is Professor Weiwu Hu.
+         Loongson-1 is a family of 32-bit MIPS-compatible SoCs developed by
+         the Institute of Computing Technology (ICT), Chinese Academy of
+         Sciences (CAS).
 
-config MACH_LOONGSON1
-       bool "Loongson 1 family of machines"
+config MACH_LOONGSON64
+       bool "Loongson-2/3 family of machines"
        select SYS_SUPPORTS_ZBOOT
        help
-         This enables support for the Loongson 1 based machines.
+         This enables the support of Loongson-2/3 family of machines.
 
-         Loongson 1 is a family of 32-bit MIPS-compatible SoCs developed by
-         the ICT (Institute of Computing Technology) and the Chinese Academy
-         of Sciences.
+         Loongson-2 is a family of single-core CPUs and Loongson-3 is a
+         family of multi-core CPUs. They are both 64-bit general-purpose
+         MIPS-compatible CPUs. Loongson-2/3 are developed by the Institute
+         of Computing Technology (ICT), Chinese Academy of Sciences (CAS)
+         in the People's Republic of China. The chief architect is Professor
+         Weiwu Hu.
 
 config MACH_PISTACHIO
        bool "IMG Pistachio SoC based boards"
@@ -373,7 +385,7 @@ config MACH_PISTACHIO
        select COMMON_CLK
        select CSRC_R4K
        select DMA_MAYBE_COHERENT
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select LIBFDT
        select MFD_SYSCON
        select MIPS_CPU_SCACHE
@@ -386,22 +398,48 @@ config MACH_PISTACHIO
        select SYS_SUPPORTS_MIPS_CPS
        select SYS_SUPPORTS_MULTITHREADING
        select SYS_SUPPORTS_ZBOOT
+       select SYS_HAS_EARLY_PRINTK
+       select USE_GENERIC_EARLY_PRINTK_8250
        select USE_OF
        help
          This enables support for the IMG Pistachio SoC platform.
 
+config MACH_XILFPGA
+       bool "MIPSfpga Xilinx based boards"
+       select ARCH_REQUIRE_GPIOLIB
+       select BOOT_ELF32
+       select BOOT_RAW
+       select BUILTIN_DTB
+       select CEVT_R4K
+       select COMMON_CLK
+       select CSRC_R4K
+       select IRQ_MIPS_CPU
+       select LIBFDT
+       select MIPS_CPU_SCACHE
+       select SYS_HAS_EARLY_PRINTK
+       select SYS_HAS_CPU_MIPS32_R2
+       select SYS_SUPPORTS_32BIT_KERNEL
+       select SYS_SUPPORTS_LITTLE_ENDIAN
+       select SYS_SUPPORTS_ZBOOT_UART16550
+       select USE_OF
+       select USE_GENERIC_EARLY_PRINTK_8250
+       help
+         This enables support for the IMG University Program MIPSfpga platform.
+
 config MIPS_MALTA
        bool "MIPS Malta board"
        select ARCH_MAY_HAVE_PC_FDC
        select BOOT_ELF32
        select BOOT_RAW
+       select BUILTIN_DTB
        select CEVT_R4K
        select CSRC_R4K
        select CLKSRC_MIPS_GIC
+       select COMMON_CLK
        select DMA_MAYBE_COHERENT
        select GENERIC_ISA_DMA
        select HAVE_PCSPKR_PLATFORM
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select MIPS_GIC
        select HW_HAS_PCI
        select I8253
@@ -411,6 +449,7 @@ config MIPS_MALTA
        select MIPS_L1_CACHE_SHIFT_6
        select PCI_GT64XXX_PCI0
        select MIPS_MSC
+       select SMP_UP if SMP
        select SWAP_IO_SPACE
        select SYS_HAS_CPU_MIPS32_R1
        select SYS_HAS_CPU_MIPS32_R2
@@ -434,6 +473,10 @@ config MIPS_MALTA
        select SYS_SUPPORTS_MULTITHREADING
        select SYS_SUPPORTS_SMARTMIPS
        select SYS_SUPPORTS_ZBOOT
+       select USE_OF
+       select ZONE_DMA32 if 64BIT
+       select BUILTIN_DTB
+       select LIBFDT
        help
          This enables support for the MIPS Technologies Malta evaluation
          board.
@@ -446,10 +489,11 @@ config MIPS_SEAD3
        select CEVT_R4K
        select CSRC_R4K
        select CLKSRC_MIPS_GIC
+       select COMMON_CLK
        select CPU_MIPSR2_IRQ_VI
        select CPU_MIPSR2_IRQ_EI
        select DMA_NONCOHERENT
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select MIPS_GIC
        select LIBFDT
        select MIPS_MSC
@@ -512,7 +556,7 @@ config PMC_MSP
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_BIG_ENDIAN
        select SYS_SUPPORTS_MIPS16
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select SERIAL_8250
        select SERIAL_8250_CONSOLE
        select USB_EHCI_BIG_ENDIAN_MMIO
@@ -529,7 +573,7 @@ config RALINK
        select CSRC_R4K
        select BOOT_RAW
        select DMA_NONCOHERENT
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select USE_OF
        select SYS_HAS_CPU_MIPS32_R1
        select SYS_HAS_CPU_MIPS32_R2
@@ -555,7 +599,7 @@ config SGI_IP22
        select I8253
        select I8259
        select IP22_CPU_SCACHE
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select GENERIC_ISA_DMA_SUPPORT_BROKEN
        select SGI_HAS_I8042
        select SGI_HAS_INDYDOG
@@ -614,7 +658,7 @@ config SGI_IP28
        select DEFAULT_SGI_PARTITION
        select DMA_NONCOHERENT
        select GENERIC_ISA_DMA_SUPPORT_BROKEN
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select HW_HAS_EISA
        select I8253
        select I8259
@@ -650,7 +694,7 @@ config SGI_IP32
        select CSRC_R4K
        select DMA_NONCOHERENT
        select HW_HAS_PCI
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select R5000_CPU_SCACHE
        select RM7000_CPU_SCACHE
        select SYS_HAS_CPU_R5000
@@ -766,7 +810,7 @@ config SNI_RM
        select HAVE_PCSPKR_PLATFORM
        select HW_HAS_EISA
        select HW_HAS_PCI
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select I8253
        select I8259
        select ISA
@@ -799,7 +843,7 @@ config MIKROTIK_RB532
        select CSRC_R4K
        select DMA_NONCOHERENT
        select HW_HAS_PCI
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select SYS_HAS_CPU_MIPS32_R1
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_LITTLE_ENDIAN
@@ -819,6 +863,7 @@ config CAVIUM_OCTEON_SOC
        select SYS_SUPPORTS_64BIT_KERNEL
        select SYS_SUPPORTS_BIG_ENDIAN
        select EDAC_SUPPORT
+       select EDAC_ATOMIC_SCRUB
        select SYS_SUPPORTS_LITTLE_ENDIAN
        select SYS_SUPPORTS_HOTPLUG_CPU if CPU_BIG_ENDIAN
        select SYS_HAS_EARLY_PRINTK
@@ -865,7 +910,7 @@ config NLM_XLR_BOARD
        select NR_CPUS_DEFAULT_32
        select CEVT_R4K
        select CSRC_R4K
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select ZONE_DMA32 if 64BIT
        select SYNC_R4K
        select SYS_HAS_EARLY_PRINTK
@@ -885,6 +930,7 @@ config NLM_XLP_BOARD
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_64BIT_KERNEL
        select ARCH_PHYS_ADDR_T_64BIT
+       select ARCH_REQUIRE_GPIOLIB
        select SYS_SUPPORTS_BIG_ENDIAN
        select SYS_SUPPORTS_LITTLE_ENDIAN
        select SYS_SUPPORTS_HIGHMEM
@@ -892,7 +938,7 @@ config NLM_XLP_BOARD
        select NR_CPUS_DEFAULT_32
        select CEVT_R4K
        select CSRC_R4K
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select ZONE_DMA32 if 64BIT
        select SYNC_R4K
        select SYS_HAS_EARLY_PRINTK
@@ -934,6 +980,7 @@ source "arch/mips/jazz/Kconfig"
 source "arch/mips/jz4740/Kconfig"
 source "arch/mips/lantiq/Kconfig"
 source "arch/mips/lasat/Kconfig"
+source "arch/mips/pistachio/Kconfig"
 source "arch/mips/pmcs-msp71xx/Kconfig"
 source "arch/mips/ralink/Kconfig"
 source "arch/mips/sgi-ip27/Kconfig"
@@ -941,10 +988,11 @@ source "arch/mips/sibyte/Kconfig"
 source "arch/mips/txx9/Kconfig"
 source "arch/mips/vr41xx/Kconfig"
 source "arch/mips/cavium-octeon/Kconfig"
-source "arch/mips/loongson/Kconfig"
-source "arch/mips/loongson1/Kconfig"
+source "arch/mips/loongson32/Kconfig"
+source "arch/mips/loongson64/Kconfig"
 source "arch/mips/netlogic/Kconfig"
 source "arch/mips/paravirt/Kconfig"
+source "arch/mips/xilfpga/Kconfig"
 
 endmenu
 
@@ -1017,6 +1065,9 @@ config CSRC_R4K
 config CSRC_SB1250
        bool
 
+config MIPS_CLOCK_VSYSCALL
+       def_bool CSRC_R4K || CLKSRC_MIPS_GIC
+
 config GPIO_TXX9
        select ARCH_REQUIRE_GPIOLIB
        bool
@@ -1027,6 +1078,9 @@ config FW_CFE
 config ARCH_DMA_ADDR_T_64BIT
        def_bool (HIGHMEM && ARCH_PHYS_ADDR_T_64BIT) || 64BIT
 
+config ARCH_SUPPORTS_UPROBES
+       bool
+
 config DMA_MAYBE_COHERENT
        select DMA_NONCOHERENT
        bool
@@ -1057,10 +1111,6 @@ config HOTPLUG_CPU
 config SYS_SUPPORTS_HOTPLUG_CPU
        bool
 
-config I8259
-       bool
-       select IRQ_DOMAIN
-
 config MIPS_BONITO64
        bool
 
@@ -1141,10 +1191,6 @@ config SYS_SUPPORTS_HUGETLBFS
 config MIPS_HUGE_TLB_SUPPORT
        def_bool HUGETLB_PAGE || TRANSPARENT_HUGEPAGE
 
-config IRQ_CPU
-       bool
-       select IRQ_DOMAIN
-
 config IRQ_CPU_RM7K
        bool
 
@@ -1171,7 +1217,7 @@ config SOC_EMMA2RH
        select CEVT_R4K
        select CSRC_R4K
        select DMA_NONCOHERENT
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select SWAP_IO_SPACE
        select SYS_HAS_CPU_R5500
        select SYS_SUPPORTS_32BIT_KERNEL
@@ -1182,7 +1228,7 @@ config SOC_PNX833X
        bool
        select CEVT_R4K
        select CSRC_R4K
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select DMA_NONCOHERENT
        select SYS_HAS_CPU_MIPS32_R2
        select SYS_SUPPORTS_32BIT_KERNEL
@@ -1358,7 +1404,7 @@ config CPU_MIPS32_R2
          otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
 
 config CPU_MIPS32_R6
-       bool "MIPS32 Release 6 (EXPERIMENTAL)"
+       bool "MIPS32 Release 6"
        depends on SYS_HAS_CPU_MIPS32_R6
        select CPU_HAS_PREFETCH
        select CPU_SUPPORTS_32BIT_KERNEL
@@ -1409,7 +1455,7 @@ config CPU_MIPS64_R2
          otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
 
 config CPU_MIPS64_R6
-       bool "MIPS64 Release 6 (EXPERIMENTAL)"
+       bool "MIPS64 Release 6"
        depends on SYS_HAS_CPU_MIPS64_R6
        select CPU_HAS_PREFETCH
        select CPU_SUPPORTS_32BIT_KERNEL
@@ -1569,7 +1615,8 @@ config CPU_CAVIUM_OCTEON
        select WEAK_ORDERING
        select CPU_SUPPORTS_HIGHMEM
        select CPU_SUPPORTS_HUGEPAGES
-       select USB_EHCI_BIG_ENDIAN_MMIO
+       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
        help
          The Cavium Octeon processor is a highly integrated chip containing
@@ -1587,7 +1634,7 @@ config CPU_BMIPS
        select CPU_BMIPS5000 if SYS_HAS_CPU_BMIPS5000
        select CPU_SUPPORTS_32BIT_KERNEL
        select DMA_NONCOHERENT
-       select IRQ_CPU
+       select IRQ_MIPS_CPU
        select SWAP_IO_SPACE
        select WEAK_ORDERING
        select CPU_SUPPORTS_HIGHMEM
@@ -1958,6 +2005,7 @@ config 32BIT
        select TRAD_SIGNALS
        help
          Select this option if you want to build a 32-bit kernel.
+
 config 64BIT
        bool "64-bit kernel"
        depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
@@ -2103,11 +2151,11 @@ config CPU_R4K_CACHE_TLB
 
 config MIPS_MT_SMP
        bool "MIPS MT SMP support (1 TC on each available VPE)"
-       depends on SYS_SUPPORTS_MULTITHREADING
+       depends on SYS_SUPPORTS_MULTITHREADING && !CPU_MIPSR6
        select CPU_MIPSR2_IRQ_VI
        select CPU_MIPSR2_IRQ_EI
        select SYNC_R4K
-       select MIPS_GIC_IPI
+       select MIPS_GIC_IPI if MIPS_GIC
        select MIPS_MT
        select SMP
        select SMP_UP
@@ -2204,8 +2252,8 @@ config MIPS_VPE_APSP_API_MT
 
 config MIPS_CMP
        bool "MIPS CMP framework support (DEPRECATED)"
-       depends on SYS_SUPPORTS_MIPS_CMP
-       select MIPS_GIC_IPI
+       depends on SYS_SUPPORTS_MIPS_CMP && !CPU_MIPSR6
+       select MIPS_GIC_IPI if MIPS_GIC
        select SMP
        select SYNC_R4K
        select SYS_SUPPORTS_SMP
@@ -2221,11 +2269,11 @@ config MIPS_CMP
 
 config MIPS_CPS
        bool "MIPS Coherent Processing System support"
-       depends on SYS_SUPPORTS_MIPS_CPS && !64BIT
+       depends on SYS_SUPPORTS_MIPS_CPS && !CPU_MIPSR6
        select MIPS_CM
        select MIPS_CPC
        select MIPS_CPS_PM if HOTPLUG_CPU
-       select MIPS_GIC_IPI
+       select MIPS_GIC_IPI if MIPS_GIC
        select SMP
        select SYNC_R4K if (CEVT_R4K || CSRC_R4K)
        select SYS_SUPPORTS_HOTPLUG_CPU
@@ -2244,6 +2292,7 @@ config MIPS_CPS_PM
        bool
 
 config MIPS_GIC_IPI
+       depends on MIPS_GIC
        bool
 
 config MIPS_CM
@@ -2252,11 +2301,6 @@ config MIPS_CM
 config MIPS_CPC
        bool
 
-config SB1_PASS_1_WORKAROUNDS
-       bool
-       depends on CPU_SB1_PASS_1
-       default y
-
 config SB1_PASS_2_WORKAROUNDS
        bool
        depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
@@ -2301,7 +2345,7 @@ config CPU_MICROMIPS
 endchoice
 
 config CPU_HAS_MSA
-       bool "Support for the MIPS SIMD Architecture (EXPERIMENTAL)"
+       bool "Support for the MIPS SIMD Architecture"
        depends on CPU_SUPPORTS_MSA
        depends on 64BIT || MIPS_O32_FP64_SUPPORT
        help
@@ -2518,6 +2562,9 @@ choice
        help
         Allows the configuration of the timer frequency.
 
+       config HZ_24
+               bool "24 HZ" if SYS_SUPPORTS_24HZ || SYS_SUPPORTS_ARBIT_HZ
+
        config HZ_48
                bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
 
@@ -2541,6 +2588,9 @@ choice
 
 endchoice
 
+config SYS_SUPPORTS_24HZ
+       bool
+
 config SYS_SUPPORTS_48HZ
        bool
 
@@ -2564,13 +2614,18 @@ config SYS_SUPPORTS_1024HZ
 
 config SYS_SUPPORTS_ARBIT_HZ
        bool
-       default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
-                    !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
-                    !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
+       default y if !SYS_SUPPORTS_24HZ && \
+                    !SYS_SUPPORTS_48HZ && \
+                    !SYS_SUPPORTS_100HZ && \
+                    !SYS_SUPPORTS_128HZ && \
+                    !SYS_SUPPORTS_250HZ && \
+                    !SYS_SUPPORTS_256HZ && \
+                    !SYS_SUPPORTS_1000HZ && \
                     !SYS_SUPPORTS_1024HZ
 
 config HZ
        int
+       default 24 if HZ_24
        default 48 if HZ_48
        default 100 if HZ_100
        default 128 if HZ_128
@@ -2586,6 +2641,7 @@ source "kernel/Kconfig.preempt"
 
 config KEXEC
        bool "Kexec system call"
+       select KEXEC_CORE
        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
@@ -2641,7 +2697,7 @@ config SECCOMP
          If unsure, say Y. Only embedded should say N here.
 
 config MIPS_O32_FP64_SUPPORT
-       bool "Support for O32 binaries using 64-bit FP (EXPERIMENTAL)"
+       bool "Support for O32 binaries using 64-bit FP"
        depends on 32BIT || MIPS32_O32
        help
          When this is enabled, the kernel will support use of 64-bit floating
@@ -2672,6 +2728,84 @@ config USE_OF
 config BUILTIN_DTB
        bool
 
+choice
+       prompt "Kernel appended dtb support" if USE_OF
+       default MIPS_NO_APPENDED_DTB
+
+       config MIPS_NO_APPENDED_DTB
+               bool "None"
+               help
+                 Do not enable appended dtb support.
+
+       config MIPS_ELF_APPENDED_DTB
+               bool "vmlinux"
+               help
+                 With this option, the boot code will look for a device tree binary
+                 DTB) included in the vmlinux ELF section .appended_dtb. By default
+                 it is empty and the DTB can be appended using binutils command
+                 objcopy:
+
+                   objcopy --update-section .appended_dtb=<filename>.dtb vmlinux
+
+                 This is meant as a backward compatiblity convenience for those
+                 systems with a bootloader that can't be upgraded to accommodate
+                 the documented boot protocol using a device tree.
+
+       config MIPS_RAW_APPENDED_DTB
+               bool "vmlinux.bin"
+               help
+                 With this option, the boot code will look for a device tree binary
+                 DTB) appended to raw vmlinux.bin (without decompressor).
+                 (e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb).
+
+                 This is meant as a backward compatibility convenience for those
+                 systems with a bootloader that can't be upgraded to accommodate
+                 the documented boot protocol using a device tree.
+
+                 Beware that there is very little in terms of protection against
+                 this option being confused by leftover garbage in memory that might
+                 look like a DTB header after a reboot if no actual DTB is appended
+                 to vmlinux.bin.  Do not leave this option active in a production kernel
+                 if you don't intend to always append a DTB.
+
+       config MIPS_ZBOOT_APPENDED_DTB
+               bool "vmlinuz.bin"
+               depends on SYS_SUPPORTS_ZBOOT
+               help
+                 With this option, the boot code will look for a device tree binary
+                 DTB) appended to raw vmlinuz.bin (with decompressor).
+                 (e.g. cat vmlinuz.bin <filename>.dtb > vmlinuz_w_dtb).
+
+                 This is meant as a backward compatibility convenience for those
+                 systems with a bootloader that can't be upgraded to accommodate
+                 the documented boot protocol using a device tree.
+
+                 Beware that there is very little in terms of protection against
+                 this option being confused by leftover garbage in memory that might
+                 look like a DTB header after a reboot if no actual DTB is appended
+                 to vmlinuz.bin.  Do not leave this option active in a production kernel
+                 if you don't intend to always append a DTB.
+endchoice
+
+choice
+       prompt "Kernel command line type" if !CMDLINE_OVERRIDE
+       default MIPS_CMDLINE_FROM_DTB if USE_OF && !ATH79 && !MACH_INGENIC && \
+                                        !MIPS_MALTA && !MIPS_SEAD3 && \
+                                        !CAVIUM_OCTEON_SOC
+       default MIPS_CMDLINE_FROM_BOOTLOADER
+
+       config MIPS_CMDLINE_FROM_DTB
+               depends on USE_OF
+               bool "Dtb kernel arguments if available"
+
+       config MIPS_CMDLINE_DTB_EXTEND
+               depends on USE_OF
+               bool "Extend dtb kernel arguments with bootloader arguments"
+
+       config MIPS_CMDLINE_FROM_BOOTLOADER
+               bool "Bootloader kernel arguments if available"
+endchoice
+
 endmenu
 
 config LOCKDEP_SUPPORT
@@ -2682,6 +2816,10 @@ config STACKTRACE_SUPPORT
        bool
        default y
 
+config HAVE_LATENCYTOP_SUPPORT
+       bool
+       default y
+
 config PGTABLE_LEVELS
        int
        default 3 if 64BIT && !PAGE_SIZE_64KB