Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 82abb273 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MIPS updates from Ralf Baechle:
 - three fixes for 3.15 that didn't make it in time
 - limited Octeon 3 support.
 - paravirtualization support
 - improvment to platform support for Netlogix SOCs.
 - add support for powering down the Malta eval board in software
 - add many instructions to the in-kernel microassembler.
 - add support for the BPF JIT.
 - minor cleanups of the BCM47xx code.
 - large cleanup of math emu code resulting in significant code size
   reduction, better readability of the code and more accurate
   emulation.
 - improvments to the MIPS CPS code.
 - support C3 power status for the R4k count/compare clock device.
 - improvments to the GIO support for older SGI workstations.
 - increase number of supported CPUs to 256; this can be reached on
   certain embedded multithreaded ccNUMA configurations.
 - various small cleanups, updates and fixes

* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (173 commits)
  MIPS: IP22/IP28: Improve GIO support
  MIPS: Octeon: Add twsi interrupt initialization for OCTEON 3XXX, 5XXX, 63XX
  DEC: Document the R4k MB ASIC mini interrupt controller
  DEC: Add self as the maintainer
  MIPS: Add microMIPS MSA support.
  MIPS: Replace calls to obsolete strict_strto call with kstrto* equivalents.
  MIPS: Replace obsolete strict_strto call with kstrto
  MIPS: BFP: Simplify code slightly.
  MIPS: Call find_vma with the mmap_sem held
  MIPS: Fix 'write_msa_##' inline macro.
  MIPS: Fix MSA toolchain support detection.
  mips: Update the email address of Geert Uytterhoeven
  MIPS: Add minimal defconfig for mips_paravirt
  MIPS: Enable build for new system 'paravirt'
  MIPS: paravirt: Add pci controller for virtio
  MIPS: Add code for new system 'paravirt'
  MIPS: Add functions for hypervisor call
  MIPS: OCTEON: Add OCTEON3 to __get_cpu_type
  MIPS: Add function get_ebase_cpunum
  MIPS: Add minimal support for OCTEON3 to c-r4k.c
  ...
parents 9b651cc2 f8647b50
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -2700,6 +2700,15 @@ S: Orphan
F:	Documentation/networking/decnet.txt
F:	net/decnet/

DECSTATION PLATFORM SUPPORT
M:	"Maciej W. Rozycki" <macro@linux-mips.org>
L:	linux-mips@linux-mips.org
W:	http://www.linux-mips.org/wiki/DECstation
S:	Maintained
F:	arch/mips/dec/
F:	arch/mips/include/asm/dec/
F:	arch/mips/include/asm/mach-dec/

DEFXX FDDI NETWORK DRIVER
M:	"Maciej W. Rozycki" <macro@linux-mips.org>
S:	Maintained
+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ obj- := $(platform-)

obj-y += kernel/
obj-y += mm/
obj-y += math-emu/
obj-y += net/

ifdef CONFIG_KVM
obj-y += kvm/
+1 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ platforms += loongson1
platforms += mti-malta
platforms += mti-sead3
platforms += netlogic
platforms += paravirt
platforms += pmcs-msp71xx
platforms += pnx833x
platforms += ralink
+71 −71
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ config MIPS
	select HAVE_ARCH_KGDB
	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_FUNCTION_TRACE_MCOUNT_TEST
@@ -50,6 +51,8 @@ config MIPS
	select CLONE_BACKWARDS
	select HAVE_DEBUG_STACKOVERFLOW
	select HAVE_CC_STACKPROTECTOR
	select CPU_PM if CPU_IDLE
	select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST

menu "Machine selection"

@@ -83,6 +86,7 @@ config AR7
	select SYS_HAS_EARLY_PRINTK
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select SYS_SUPPORTS_MIPS16
	select SYS_SUPPORTS_ZBOOT_UART16550
	select ARCH_REQUIRE_GPIOLIB
	select VLYNQ
@@ -106,6 +110,7 @@ config ATH79
	select SYS_HAS_EARLY_PRINTK
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_BIG_ENDIAN
	select SYS_SUPPORTS_MIPS16
	help
	  Support for the Atheros AR71XX/AR724X/AR913X SoCs.

@@ -122,6 +127,7 @@ config BCM47XX
	select NO_EXCEPT_FILL
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select SYS_SUPPORTS_MIPS16
	select SYS_HAS_EARLY_PRINTK
	select USE_GENERIC_EARLY_PRINTK_8250
	help
@@ -168,9 +174,9 @@ config MACH_DECSTATION
	bool "DECstations"
	select BOOT_ELF32
	select CEVT_DS1287
	select CEVT_R4K
	select CEVT_R4K if CPU_R4X00
	select CSRC_IOASIC
	select CSRC_R4K
	select CSRC_R4K if CPU_R4X00
	select CPU_DADDI_WORKAROUNDS if 64BIT
	select CPU_R4000_WORKAROUNDS if 64BIT
	select CPU_R4400_WORKAROUNDS if 64BIT
@@ -248,6 +254,7 @@ config LANTIQ
	select SYS_HAS_CPU_MIPS32_R2
	select SYS_SUPPORTS_BIG_ENDIAN
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_MIPS16
	select SYS_SUPPORTS_MULTITHREADING
	select SYS_HAS_EARLY_PRINTK
	select ARCH_REQUIRE_GPIOLIB
@@ -330,6 +337,7 @@ config MIPS_MALTA
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select SYS_SUPPORTS_MIPS_CMP
	select SYS_SUPPORTS_MIPS_CPS
	select SYS_SUPPORTS_MIPS16
	select SYS_SUPPORTS_MULTITHREADING
	select SYS_SUPPORTS_SMARTMIPS
	select SYS_SUPPORTS_ZBOOT
@@ -361,6 +369,7 @@ config MIPS_SEAD3
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select SYS_SUPPORTS_SMARTMIPS
	select SYS_SUPPORTS_MICROMIPS
	select SYS_SUPPORTS_MIPS16
	select USB_EHCI_BIG_ENDIAN_DESC
	select USB_EHCI_BIG_ENDIAN_MMIO
	select USE_OF
@@ -380,6 +389,7 @@ config MACH_VR41XX
	select CEVT_R4K
	select CSRC_R4K
	select SYS_HAS_CPU_VR41XX
	select SYS_SUPPORTS_MIPS16
	select ARCH_REQUIRE_GPIOLIB

config NXP_STB220
@@ -407,6 +417,7 @@ config PMC_MSP
	select SYS_HAS_CPU_MIPS32_R2
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_BIG_ENDIAN
	select SYS_SUPPORTS_MIPS16
	select IRQ_CPU
	select SERIAL_8250
	select SERIAL_8250_CONSOLE
@@ -430,6 +441,7 @@ config RALINK
	select SYS_HAS_CPU_MIPS32_R2
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select SYS_SUPPORTS_MIPS16
	select SYS_HAS_EARLY_PRINTK
	select HAVE_MACH_CLKDEV
	select CLKDEV_LOOKUP
@@ -674,7 +686,6 @@ config SNI_RM
	select SYS_SUPPORTS_BIG_ENDIAN
	select SYS_SUPPORTS_HIGHMEM
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select USE_GENERIC_EARLY_PRINTK_8250
	help
	  The SNI RM200/300/400 are MIPS-based machines manufactured by
	  Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
@@ -721,6 +732,11 @@ config CAVIUM_OCTEON_SOC
	select ZONE_DMA32
	select HOLES_IN_ZONE
	select ARCH_REQUIRE_GPIOLIB
	select LIBFDT
	select USE_OF
	select ARCH_SPARSEMEM_ENABLE
	select SYS_SUPPORTS_SMP
	select NR_CPUS_DEFAULT_16
	help
	  This option supports all of the Octeon reference boards from Cavium
	  Networks. It builds a kernel that dynamically determines the Octeon
@@ -789,6 +805,25 @@ config NLM_XLP_BOARD
	  This board is based on Netlogic XLP Processor.
	  Say Y here if you have a XLP based board.

config MIPS_PARAVIRT
	bool "Para-Virtualized guest system"
	select CEVT_R4K
	select CSRC_R4K
	select DMA_COHERENT
	select SYS_SUPPORTS_64BIT_KERNEL
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_BIG_ENDIAN
	select SYS_SUPPORTS_SMP
	select NR_CPUS_DEFAULT_4
	select SYS_HAS_EARLY_PRINTK
	select SYS_HAS_CPU_MIPS32_R2
	select SYS_HAS_CPU_MIPS64_R2
	select SYS_HAS_CPU_CAVIUM_OCTEON
	select HW_HAS_PCI
	select SWAP_IO_SPACE
	help
	  This option supports guest running under ????

endchoice

source "arch/mips/alchemy/Kconfig"
@@ -809,6 +844,7 @@ source "arch/mips/cavium-octeon/Kconfig"
source "arch/mips/loongson/Kconfig"
source "arch/mips/loongson1/Kconfig"
source "arch/mips/netlogic/Kconfig"
source "arch/mips/paravirt/Kconfig"

endmenu

@@ -1059,6 +1095,7 @@ config SOC_PNX833X
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select SYS_SUPPORTS_BIG_ENDIAN
	select SYS_SUPPORTS_MIPS16
	select CPU_MIPSR2_IRQ_VI

config SOC_PNX8335
@@ -1398,16 +1435,11 @@ config CPU_SB1
config CPU_CAVIUM_OCTEON
	bool "Cavium Octeon processor"
	depends on SYS_HAS_CPU_CAVIUM_OCTEON
	select ARCH_SPARSEMEM_ENABLE
	select CPU_HAS_PREFETCH
	select CPU_SUPPORTS_64BIT_KERNEL
	select SYS_SUPPORTS_SMP
	select NR_CPUS_DEFAULT_16
	select WEAK_ORDERING
	select CPU_SUPPORTS_HIGHMEM
	select CPU_SUPPORTS_HUGEPAGES
	select LIBFDT
	select USE_OF
	select USB_EHCI_BIG_ENDIAN_MMIO
	select MIPS_L1_CACHE_SHIFT_7
	help
@@ -1659,6 +1691,12 @@ config SYS_HAS_CPU_XLR
config SYS_HAS_CPU_XLP
	bool

config MIPS_MALTA_PM
	depends on MIPS_MALTA
	depends on PCI
	bool
	default y

#
# CPU may reorder R->R, R->W, W->R, W->W
# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
@@ -1842,7 +1880,7 @@ config FORCE_MAX_ZONEORDER

config CEVT_GIC
	bool "Use GIC global counter for clock events"
	depends on IRQ_GIC && !(MIPS_SEAD3 || MIPS_MT_SMTC)
	depends on IRQ_GIC && !MIPS_SEAD3
	help
	  Use the GIC global counter for the clock events. The R4K clock
	  event driver is always present, so if the platform ends up not
@@ -1895,19 +1933,8 @@ config CPU_R4K_CACHE_TLB
	bool
	default y if !(CPU_R3000 || CPU_R8000 || CPU_SB1 || CPU_TX39XX || CPU_CAVIUM_OCTEON)

choice
	prompt "MIPS MT options"

config MIPS_MT_DISABLED
	bool "Disable multithreading support"
	help
	  Use this option if your platform does not support the MT ASE
	  which is hardware multithreading support. On systems without
	  an MT-enabled processor, this will be the only option that is
	  available in this menu.

config MIPS_MT_SMP
	bool "Use 1 TC on each available VPE for SMP"
	bool "MIPS MT SMP support (1 TC on each available VPE)"
	depends on SYS_SUPPORTS_MULTITHREADING
	select CPU_MIPSR2_IRQ_VI
	select CPU_MIPSR2_IRQ_EI
@@ -1926,26 +1953,6 @@ config MIPS_MT_SMP
	  Intel Hyperthreading feature. For further information go to
	  <http://www.imgtec.com/mips/mips-multithreading.asp>.

config MIPS_MT_SMTC
	bool "Use all TCs on all VPEs for SMP (DEPRECATED)"
	depends on CPU_MIPS32_R2
	depends on SYS_SUPPORTS_MULTITHREADING
	depends on !MIPS_CPS
	select CPU_MIPSR2_IRQ_VI
	select CPU_MIPSR2_IRQ_EI
	select MIPS_MT
	select SMP
	select SMP_UP
	select SYS_SUPPORTS_SMP
	select NR_CPUS_DEFAULT_8
	help
	  This is a kernel model which is known as SMTC. This is
	  supported on cores with the MT ASE and presents all TCs
	  available on all VPEs to support SMP. For further
	  information see <http://www.linux-mips.org/wiki/34K#SMTC>.

endchoice

config MIPS_MT
	bool

@@ -1967,7 +1974,7 @@ config SYS_SUPPORTS_MULTITHREADING
config MIPS_MT_FPAFF
	bool "Dynamic FPU affinity for FP-intensive threads"
	default y
	depends on MIPS_MT_SMP || MIPS_MT_SMTC
	depends on MIPS_MT_SMP

config MIPS_VPE_LOADER
	bool "VPE loader support."
@@ -1989,29 +1996,6 @@ config MIPS_VPE_LOADER_MT
	default "y"
	depends on MIPS_VPE_LOADER && !MIPS_CMP

config MIPS_MT_SMTC_IM_BACKSTOP
	bool "Use per-TC register bits as backstop for inhibited IM bits"
	depends on MIPS_MT_SMTC
	default n
	help
	  To support multiple TC microthreads acting as "CPUs" within
	  a VPE, VPE-wide interrupt mask bits must be specially manipulated
	  during interrupt handling. To support legacy drivers and interrupt
	  controller management code, SMTC has a "backstop" to track and
	  if necessary restore the interrupt mask. This has some performance
	  impact on interrupt service overhead.

config MIPS_MT_SMTC_IRQAFF
	bool "Support IRQ affinity API"
	depends on MIPS_MT_SMTC
	default n
	help
	  Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
	  for SMTC Linux kernel. Requires platform support, of which
	  an example can be found in the MIPS kernel i8259 and Malta
	  platform code.  Adds some overhead to interrupt dispatch, and
	  should be used only if you know what you are doing.

config MIPS_VPE_LOADER_TOM
	bool "Load VPE program into memory hidden from linux"
	depends on MIPS_VPE_LOADER
@@ -2039,7 +2023,7 @@ config MIPS_VPE_APSP_API_MT

config MIPS_CMP
	bool "MIPS CMP framework support (DEPRECATED)"
	depends on SYS_SUPPORTS_MIPS_CMP && !MIPS_MT_SMTC
	depends on SYS_SUPPORTS_MIPS_CMP
	select MIPS_GIC_IPI
	select SYNC_R4K
	select WEAK_ORDERING
@@ -2057,9 +2041,11 @@ config MIPS_CPS
	depends on SYS_SUPPORTS_MIPS_CPS
	select MIPS_CM
	select MIPS_CPC
	select MIPS_CPS_PM if HOTPLUG_CPU
	select MIPS_GIC_IPI
	select SMP
	select SYNC_R4K if (CEVT_R4K || CSRC_R4K)
	select SYS_SUPPORTS_HOTPLUG_CPU
	select SYS_SUPPORTS_SMP
	select WEAK_ORDERING
	help
@@ -2069,6 +2055,9 @@ config MIPS_CPS
	  no external assistance. It is safe to enable this when hardware
	  support is unavailable.

config MIPS_CPS_PM
	bool

config MIPS_GIC_IPI
	bool

@@ -2199,6 +2188,13 @@ config SYS_SUPPORTS_SMARTMIPS
config SYS_SUPPORTS_MICROMIPS
	bool

config SYS_SUPPORTS_MIPS16
	bool
	help
	  This option must be set if a kernel might be executed on a MIPS16-
	  enabled CPU even if MIPS16 is not actually being used.  In other
	  words, it makes the kernel MIPS16-tolerant.

config CPU_SUPPORTS_MSA
	bool

@@ -2239,7 +2235,7 @@ config NODES_SHIFT

config HW_PERF_EVENTS
	bool "Enable hardware performance counter support for perf events"
	depends on PERF_EVENTS && !MIPS_MT_SMTC && OPROFILE=n && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP)
	depends on PERF_EVENTS && OPROFILE=n && (CPU_MIPS32 || CPU_MIPS64 || CPU_R10000 || CPU_SB1 || CPU_CAVIUM_OCTEON || CPU_XLP)
	default y
	help
	  Enable hardware performance counter support for perf events. If
@@ -2297,8 +2293,8 @@ config NR_CPUS_DEFAULT_64
	bool

config NR_CPUS
	int "Maximum number of CPUs (2-64)"
	range 2 64
	int "Maximum number of CPUs (2-256)"
	range 2 256
	depends on SMP
	default "4" if NR_CPUS_DEFAULT_4
	default "8" if NR_CPUS_DEFAULT_8
@@ -2671,12 +2667,16 @@ endmenu
config MIPS_EXTERNAL_TIMER
	bool

if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
menu "CPU Power Management"

if CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
source "drivers/cpufreq/Kconfig"
endmenu
endif

source "drivers/cpuidle/Kconfig"

endmenu

source "net/Kconfig"

source "drivers/Kconfig"
+0 −9
Original line number Diff line number Diff line
@@ -79,15 +79,6 @@ config CMDLINE_OVERRIDE

	  Normally, you will choose 'N' here.

config SMTC_IDLE_HOOK_DEBUG
	bool "Enable additional debug checks before going into CPU idle loop"
	depends on DEBUG_KERNEL && MIPS_MT_SMTC
	help
	  This option enables Enable additional debug checks before going into
	  CPU idle loop.  For details on these checks, see
	  arch/mips/kernel/smtc.c.  This debugging option result in significant
	  overhead so should be disabled in production kernels.

config SB1XXX_CORELIS
	bool "Corelis Debugger"
	depends on SIBYTE_SB1xxx_SOC
Loading