Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux...
[sfrench/cifs-2.6.git] / arch / mips / Kconfig
index 248d39b8a1608c9cf5dd137a524b064026defd1d..add388236f4ef2cdf2558b0d282605fadce6912a 100644 (file)
@@ -7,6 +7,7 @@ config MIPS
        select ARCH_CLOCKSOURCE_DATA
        select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
        select ARCH_HAS_UBSAN_SANITIZE_ALL
+       select ARCH_HAS_FORTIFY_SOURCE
        select ARCH_SUPPORTS_UPROBES
        select ARCH_USE_BUILTIN_BSWAP
        select ARCH_USE_CMPXCHG_LOCKREF if 64BIT
@@ -73,6 +74,7 @@ config MIPS
        select HAVE_PERF_EVENTS
        select HAVE_REGS_AND_STACK_ACCESS_API
        select HAVE_RSEQ
+       select HAVE_SPARSE_SYSCALL_NR
        select HAVE_STACKPROTECTOR
        select HAVE_SYSCALL_TRACEPOINTS
        select HAVE_VIRT_CPU_ACCOUNTING_GEN if 64BIT || !SMP
@@ -86,6 +88,8 @@ config MIPS
        select SYSCTL_EXCEPTION_TRACE
        select VIRT_TO_BUS
        select ARCH_HAS_PTE_SPECIAL if !(32BIT && CPU_HAS_RIXI)
+       select ARCH_HAS_KCOV
+       select HAVE_GCC_PLUGINS
 
 menu "Machine selection"
 
@@ -359,6 +363,8 @@ config MACH_DECSTATION
 
 config MACH_JAZZ
        bool "Jazz family of machines"
+       select ARC_MEMORY
+       select ARC_PROMLIB
        select ARCH_MIGHT_HAVE_PC_PARPORT
        select ARCH_MIGHT_HAVE_PC_SERIO
        select FW_ARC
@@ -441,7 +447,7 @@ config LASAT
        select SYS_SUPPORTS_LITTLE_ENDIAN
 
 config MACH_LOONGSON32
-       bool "Loongson-1 family of machines"
+       bool "Loongson 32-bit family of machines"
        select SYS_SUPPORTS_ZBOOT
        help
          This enables support for the Loongson-1 family of machines.
@@ -450,18 +456,48 @@ config MACH_LOONGSON32
          the Institute of Computing Technology (ICT), Chinese Academy of
          Sciences (CAS).
 
+config MACH_LOONGSON2EF
+       bool "Loongson-2E/F family of machines"
+       select SYS_SUPPORTS_ZBOOT
+       help
+         This enables the support of early Loongson-2E/F family of machines.
+
 config MACH_LOONGSON64
-       bool "Loongson-2/3 family of machines"
+       bool "Loongson 64-bit family of machines"
+       select ARCH_SPARSEMEM_ENABLE
+       select ARCH_MIGHT_HAVE_PC_PARPORT
+       select ARCH_MIGHT_HAVE_PC_SERIO
+       select GENERIC_ISA_DMA_SUPPORT_BROKEN
+       select BOOT_ELF32
+       select BOARD_SCACHE
+       select CSRC_R4K
+       select CEVT_R4K
+       select CPU_HAS_WB
+       select FORCE_PCI
+       select ISA
+       select I8259
+       select IRQ_MIPS_CPU
+       select NR_CPUS_DEFAULT_4
+       select USE_GENERIC_EARLY_PRINTK_8250
+       select SYS_HAS_CPU_LOONGSON64
+       select SYS_HAS_EARLY_PRINTK
+       select SYS_SUPPORTS_SMP
+       select SYS_SUPPORTS_HOTPLUG_CPU
+       select SYS_SUPPORTS_NUMA
+       select SYS_SUPPORTS_64BIT_KERNEL
+       select SYS_SUPPORTS_HIGHMEM
+       select SYS_SUPPORTS_LITTLE_ENDIAN
        select SYS_SUPPORTS_ZBOOT
+       select LOONGSON_MC146818
+       select ZONE_DMA32
+       select NUMA
        help
          This enables the support of Loongson-2/3 family of machines.
 
-         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.
+         Loongson-2 and Loongson-3 are 64-bit general-purpose processors with
+         GS264/GS464/GS464E/GS464V microarchitecture (except old Loongson-2E
+         and Loongson-2F which will be removed), developed by the Institute
+         of Computing Technology (ICT), Chinese Academy of Sciences (CAS).
 
 config MACH_PISTACHIO
        bool "IMG Pistachio SoC based boards"
@@ -631,6 +667,8 @@ config RALINK
 
 config SGI_IP22
        bool "SGI IP22 (Indy/Indigo2)"
+       select ARC_MEMORY
+       select ARC_PROMLIB
        select FW_ARC
        select FW_ARC32
        select ARCH_MIGHT_HAVE_PC_SERIO
@@ -654,14 +692,7 @@ config SGI_IP22
        select SWAP_IO_SPACE
        select SYS_HAS_CPU_R4X00
        select SYS_HAS_CPU_R5000
-       #
-       # Disable EARLY_PRINTK for now since it leads to overwritten prom
-       # memory during early boot on some machines.
-       #
-       # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
-       # for a more details discussion
-       #
-       # select SYS_HAS_EARLY_PRINTK
+       select SYS_HAS_EARLY_PRINTK
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_64BIT_KERNEL
        select SYS_SUPPORTS_BIG_ENDIAN
@@ -674,8 +705,10 @@ config SGI_IP22
 config SGI_IP27
        bool "SGI IP27 (Origin200/2000)"
        select ARCH_HAS_PHYS_TO_DMA
+       select ARCH_SPARSEMEM_ENABLE
        select FW_ARC
        select FW_ARC64
+       select ARC_CMDLINE_ONLY
        select BOOT_ELF64
        select DEFAULT_SGI_PARTITION
        select SYS_HAS_EARLY_PRINTK
@@ -698,6 +731,8 @@ config SGI_IP27
 
 config SGI_IP28
        bool "SGI IP28 (Indigo2 R10k)"
+       select ARC_MEMORY
+       select ARC_PROMLIB
        select FW_ARC
        select FW_ARC64
        select ARCH_MIGHT_HAVE_PC_SERIO
@@ -719,14 +754,7 @@ config SGI_IP28
        select SGI_HAS_ZILOG
        select SWAP_IO_SPACE
        select SYS_HAS_CPU_R10000
-       #
-       # Disable EARLY_PRINTK for now since it leads to overwritten prom
-       # memory during early boot on some machines.
-       #
-       # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
-       # for a more details discussion
-       #
-       # select SYS_HAS_EARLY_PRINTK
+       select SYS_HAS_EARLY_PRINTK
        select SYS_SUPPORTS_64BIT_KERNEL
        select SYS_SUPPORTS_BIG_ENDIAN
        select MIPS_L1_CACHE_SHIFT_7
@@ -734,8 +762,37 @@ config SGI_IP28
          This is the SGI Indigo2 with R10000 processor.  To compile a Linux
          kernel that runs on these, say Y here.
 
+config SGI_IP30
+       bool "SGI IP30 (Octane/Octane2)"
+       select ARCH_HAS_PHYS_TO_DMA
+       select FW_ARC
+       select FW_ARC64
+       select BOOT_ELF64
+       select CEVT_R4K
+       select CSRC_R4K
+       select SYNC_R4K if SMP
+       select ZONE_DMA32
+       select HAVE_PCI
+       select IRQ_MIPS_CPU
+       select IRQ_DOMAIN_HIERARCHY
+       select NR_CPUS_DEFAULT_2
+       select PCI_DRIVERS_GENERIC
+       select PCI_XTALK_BRIDGE
+       select SYS_HAS_EARLY_PRINTK
+       select SYS_HAS_CPU_R10000
+       select SYS_SUPPORTS_64BIT_KERNEL
+       select SYS_SUPPORTS_BIG_ENDIAN
+       select SYS_SUPPORTS_SMP
+       select MIPS_L1_CACHE_SHIFT_7
+       select ARC_MEMORY
+       help
+         These are the SGI Octane and Octane2 graphics workstations.  To
+         compile a Linux kernel that runs on these, say Y here.
+
 config SGI_IP32
        bool "SGI IP32 (O2)"
+       select ARC_MEMORY
+       select ARC_PROMLIB
        select ARCH_HAS_PHYS_TO_DMA
        select FW_ARC
        select FW_ARC32
@@ -843,6 +900,8 @@ config SIBYTE_BIGSUR
 
 config SNI_RM
        bool "SNI RM200/300/400"
+       select ARC_MEMORY
+       select ARC_PROMLIB
        select FW_ARC if CPU_LITTLE_ENDIAN
        select FW_ARC32 if CPU_LITTLE_ENDIAN
        select FW_SNIPROM if CPU_BIG_ENDIAN
@@ -1038,6 +1097,7 @@ source "arch/mips/sibyte/Kconfig"
 source "arch/mips/txx9/Kconfig"
 source "arch/mips/vr41xx/Kconfig"
 source "arch/mips/cavium-octeon/Kconfig"
+source "arch/mips/loongson2ef/Kconfig"
 source "arch/mips/loongson32/Kconfig"
 source "arch/mips/loongson64/Kconfig"
 source "arch/mips/netlogic/Kconfig"
@@ -1353,19 +1413,18 @@ config MIPS_L1_CACHE_SHIFT
 config HAVE_STD_PC_SERIAL_PORT
        bool
 
+config ARC_CMDLINE_ONLY
+       bool
+
 config ARC_CONSOLE
        bool "ARC console support"
        depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
 
 config ARC_MEMORY
        bool
-       depends on MACH_JAZZ || SNI_RM || SGI_IP32
-       default y
 
 config ARC_PROMLIB
        bool
-       depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP28 || SGI_IP32
-       default y
 
 config FW_ARC64
        bool
@@ -1379,51 +1438,56 @@ choice
        prompt "CPU type"
        default CPU_R4X00
 
-config CPU_LOONGSON3
-       bool "Loongson 3 CPU"
-       depends on SYS_HAS_CPU_LOONGSON3
+config CPU_LOONGSON64
+       bool "Loongson 64-bit CPU"
+       depends on SYS_HAS_CPU_LOONGSON64
        select ARCH_HAS_PHYS_TO_DMA
        select CPU_SUPPORTS_64BIT_KERNEL
        select CPU_SUPPORTS_HIGHMEM
        select CPU_SUPPORTS_HUGEPAGES
+       select CPU_SUPPORTS_MSA
        select CPU_HAS_LOAD_STORE_LR
        select WEAK_ORDERING
        select WEAK_REORDERING_BEYOND_LLSC
+       select MIPS_ASID_BITS_VARIABLE
        select MIPS_PGD_C0_CONTEXT
        select MIPS_L1_CACHE_SHIFT_6
        select GPIOLIB
        select SWIOTLB
        help
-               The Loongson 3 processor implements the MIPS64R2 instruction
-               set with many extensions.
+               The Loongson GSx64(GS264/GS464/GS464E/GS464V) series of processor
+               cores implements the MIPS64R2 instruction set with many extensions,
+               including most 64-bit Loongson-2 (2H, 2K) and Loongson-3 (3A1000,
+               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"
+       bool "New Loongson-3 CPU Enhancements"
        default n
        select CPU_MIPSR2
        select CPU_HAS_PREFETCH
-       depends on CPU_LOONGSON3
+       depends on CPU_LOONGSON64
        help
-         New Loongson 3 CPU (since Loongson-3A R2, as opposed to Loongson-3A
+         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/DSPv2 ASE, User
+         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.
+         new Loongson-3 machines only, please say 'Y' here.
 
 config CPU_LOONGSON3_WORKAROUNDS
-       bool "Old Loongson 3 LLSC Workarounds"
+       bool "Old Loongson-3 LLSC Workarounds"
        default y if SMP
-       depends on CPU_LOONGSON3
+       depends on CPU_LOONGSON64
        help
-         Loongson 3 processors have the llsc issues which require workarounds.
+         Loongson-3 processors have the llsc issues which require workarounds.
          Without workarounds the system may hang unexpectedly.
 
-         Newer Loongson 3 will fix these issues and no workarounds are needed.
+         Newer Loongson-3 will fix these issues and no workarounds are needed.
          The workarounds have no significant side effect on them but may
          decrease the performance of the system so this option should be
          disabled unless the kernel is intended to be run on old systems.
@@ -1433,7 +1497,7 @@ config CPU_LOONGSON3_WORKAROUNDS
 config CPU_LOONGSON2E
        bool "Loongson 2E"
        depends on SYS_HAS_CPU_LOONGSON2E
-       select CPU_LOONGSON2
+       select CPU_LOONGSON2EF
        help
          The Loongson 2E processor implements the MIPS III instruction set
          with many extensions.
@@ -1444,7 +1508,7 @@ config CPU_LOONGSON2E
 config CPU_LOONGSON2F
        bool "Loongson 2F"
        depends on SYS_HAS_CPU_LOONGSON2F
-       select CPU_LOONGSON2
+       select CPU_LOONGSON2EF
        select GPIOLIB
        help
          The Loongson 2F processor implements the MIPS III instruction set
@@ -1457,7 +1521,7 @@ config CPU_LOONGSON2F
 config CPU_LOONGSON1B
        bool "Loongson 1B"
        depends on SYS_HAS_CPU_LOONGSON1B
-       select CPU_LOONGSON1
+       select CPU_LOONGSON32
        select LEDS_GPIO_REGISTER
        help
          The Loongson 1B is a 32-bit SoC, which implements the MIPS32
@@ -1467,7 +1531,7 @@ config CPU_LOONGSON1B
 config CPU_LOONGSON1C
        bool "Loongson 1C"
        depends on SYS_HAS_CPU_LOONGSON1C
-       select CPU_LOONGSON1
+       select CPU_LOONGSON32
        select LEDS_GPIO_REGISTER
        help
          The Loongson 1C is a 32-bit SoC, which implements the MIPS32
@@ -1857,7 +1921,7 @@ config SYS_SUPPORTS_ZBOOT_UART_PROM
        bool
        select SYS_SUPPORTS_ZBOOT
 
-config CPU_LOONGSON2
+config CPU_LOONGSON2EF
        bool
        select CPU_SUPPORTS_32BIT_KERNEL
        select CPU_SUPPORTS_64BIT_KERNEL
@@ -1866,7 +1930,7 @@ config CPU_LOONGSON2
        select ARCH_HAS_PHYS_TO_DMA
        select CPU_HAS_LOAD_STORE_LR
 
-config CPU_LOONGSON1
+config CPU_LOONGSON32
        bool
        select CPU_MIPS32
        select CPU_MIPSR2
@@ -1900,7 +1964,7 @@ config CPU_BMIPS5000
        select SYS_SUPPORTS_HOTPLUG_CPU
        select CPU_HAS_RIXI
 
-config SYS_HAS_CPU_LOONGSON3
+config SYS_HAS_CPU_LOONGSON64
        bool
        select CPU_SUPPORTS_CPUFREQ
        select CPU_HAS_RIXI
@@ -1912,7 +1976,6 @@ config SYS_HAS_CPU_LOONGSON2F
        bool
        select CPU_SUPPORTS_CPUFREQ
        select CPU_SUPPORTS_ADDRWINCFG if 64BIT
-       select CPU_SUPPORTS_UNCACHED_ACCELERATED
 
 config SYS_HAS_CPU_LOONGSON1B
        bool
@@ -2089,8 +2152,6 @@ config CPU_SUPPORTS_ADDRWINCFG
 config CPU_SUPPORTS_HUGEPAGES
        bool
        depends on !(32BIT && (ARCH_PHYS_ADDR_T_64BIT || EVA))
-config CPU_SUPPORTS_UNCACHED_ACCELERATED
-       bool
 config MIPS_PGD_C0_CONTEXT
        bool
        default y if 64BIT && (CPU_MIPSR2 || CPU_MIPSR6) && !CPU_XLP
@@ -2162,7 +2223,7 @@ choice
 
 config PAGE_SIZE_4KB
        bool "4kB"
-       depends on !CPU_LOONGSON2 && !CPU_LOONGSON3
+       depends on !CPU_LOONGSON2EF && !CPU_LOONGSON64
        help
          This option select the standard 4kB Linux page size.  On some
          R3000-family processors this is the only available page size.  Using
@@ -2554,6 +2615,10 @@ config CPU_R4000_WORKAROUNDS
 config CPU_R4400_WORKAROUNDS
        bool
 
+config CPU_R4X00_BUGS64
+       bool
+       default y if SYS_HAS_CPU_R4X00 && 64BIT && (TARGET_ISA_REV < 1)
+
 config MIPS_ASID_SHIFT
        int
        default 6 if CPU_R3000 || CPU_TX39XX
@@ -2612,20 +2677,11 @@ config CPU_SUPPORTS_MSA
 
 config ARCH_FLATMEM_ENABLE
        def_bool y
-       depends on !NUMA && !CPU_LOONGSON2
-
-config ARCH_DISCONTIGMEM_ENABLE
-       bool
-       default y if SGI_IP27
-       help
-         Say Y to support efficient handling of discontiguous physical memory,
-         for architectures which are either NUMA (Non-Uniform Memory Access)
-         or have huge holes in the physical address space for other reasons.
-         See <file:Documentation/vm/numa.rst> for more.
+       depends on !NUMA && !CPU_LOONGSON2EF
 
 config ARCH_SPARSEMEM_ENABLE
        bool
-       select SPARSEMEM_STATIC
+       select SPARSEMEM_STATIC if !SGI_IP27
 
 config NUMA
        bool "NUMA Support"
@@ -2702,7 +2758,7 @@ config NODES_SHIFT
 
 config HW_PERF_EVENTS
        bool "Enable hardware performance counter support for perf events"
-       depends on PERF_EVENTS && !OPROFILE && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP || CPU_LOONGSON3)
+       depends on PERF_EVENTS && !OPROFILE && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP || CPU_LOONGSON64)
        default y
        help
          Enable hardware performance counter support for perf events. If