]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - arch/mips/Kconfig
MIPS: Avoid VDSO ABI breakage due to global register variable
[linux.git] / arch / mips / Kconfig
index 87bfefcbdb06c0998ce2644bcb88bda0053e5b49..827bbda105f393b4c5604e6d871bb90a4d110ed1 100644 (file)
@@ -47,7 +47,7 @@ config MIPS
        select HAVE_ARCH_TRACEHOOK
        select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES
        select HAVE_ASM_MODVERSIONS
-       select HAVE_EBPF_JIT if (!CPU_MICROMIPS)
+       select HAVE_EBPF_JIT if 64BIT && !CPU_MICROMIPS && TARGET_ISA_REV >= 2
        select HAVE_CONTEXT_TRACKING
        select HAVE_COPY_THREAD_TLS
        select HAVE_C_RECORDMCOUNT
@@ -87,6 +87,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"
 
@@ -444,7 +446,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.
@@ -453,18 +455,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"
@@ -675,6 +707,7 @@ config SGI_IP27
        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
@@ -728,6 +761,33 @@ 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
@@ -1036,6 +1096,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"
@@ -1351,6 +1412,9 @@ 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)
@@ -1373,9 +1437,9 @@ 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
@@ -1390,36 +1454,39 @@ config CPU_LOONGSON3
        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.
@@ -1429,7 +1496,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.
@@ -1440,7 +1507,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
@@ -1453,7 +1520,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
@@ -1463,7 +1530,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
@@ -1853,7 +1920,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
@@ -1862,7 +1929,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
@@ -1896,7 +1963,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
@@ -1908,7 +1975,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
@@ -2085,8 +2151,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
@@ -2158,7 +2222,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
@@ -2612,7 +2676,7 @@ config CPU_SUPPORTS_MSA
 
 config ARCH_FLATMEM_ENABLE
        def_bool y
-       depends on !NUMA && !CPU_LOONGSON2
+       depends on !NUMA && !CPU_LOONGSON2EF
 
 config ARCH_SPARSEMEM_ENABLE
        bool
@@ -2693,7 +2757,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