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

Commit daf799cc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MIPS updates from Ralf Baechle:

 - More work on DT support for various platforms

 - Various fixes that were to late to make it straight into 3.9

 - Improved platform support, in particular the Netlogic XLR and
   BCM63xx, and the SEAD3 and Malta eval boards.

 - Support for several Ralink SOC families.

 - Complete support for the microMIPS ASE which basically reencodes the
   existing MIPS32/MIPS64 ISA to use non-constant size instructions.

 - Some fallout from LTO work which remove old cruft and will generally
   make the MIPS kernel easier to maintain and resistant to compiler
   optimization, even in absence of LTO.

 - KVM support.  While MIPS has announced hardware virtualization
   extensions this KVM extension uses trap and emulate mode for
   virtualization of MIPS32.  More KVM work to add support for VZ
   hardware virtualizaiton extensions and MIPS64 will probably already
   be merged for 3.11.

Most of this has been sitting in -next for a long time.  All defconfigs
have been build or run time tested except three for which fixes are being
sent by other maintainers.

Semantic conflict with kvm updates done as per Ralf

* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (118 commits)
  MIPS: Add new GIC clockevent driver.
  MIPS: Formatting clean-ups for clocksources.
  MIPS: Refactor GIC clocksource code.
  MIPS: Move 'gic_frequency' to common location.
  MIPS: Move 'gic_present' to common location.
  MIPS: MIPS16e: Add unaligned access support.
  MIPS: MIPS16e: Support handling of delay slots.
  MIPS: MIPS16e: Add instruction formats.
  MIPS: microMIPS: Optimise 'strnlen' core library function.
  MIPS: microMIPS: Optimise 'strlen' core library function.
  MIPS: microMIPS: Optimise 'strncpy' core library function.
  MIPS: microMIPS: Optimise 'memset' core library function.
  MIPS: microMIPS: Add configuration option for microMIPS kernel.
  MIPS: microMIPS: Disable LL/SC and fix linker bug.
  MIPS: microMIPS: Add vdso support.
  MIPS: microMIPS: Add unaligned access support.
  MIPS: microMIPS: Support handling of delay slots.
  MIPS: microMIPS: Add support for exception handling.
  MIPS: microMIPS: Floating point support.
  MIPS: microMIPS: Fix macro naming in micro-assembler.
  ...
parents 6019958d b22d1b6a
Loading
Loading
Loading
Loading
+17 −0
Original line number Original line Diff line number Diff line
Ralink MIPS SoC device tree bindings

1. SoCs

Each device tree must specify a compatible value for the Ralink SoC
it uses in the compatible property of the root node. The compatible
value must be one of the following values:

  ralink,rt2880-soc
  ralink,rt3050-soc
  ralink,rt3052-soc
  ralink,rt3350-soc
  ralink,rt3352-soc
  ralink,rt3883-soc
  ralink,rt5350-soc
  ralink,mt7620a-soc
  ralink,mt7620n-soc
+1 −0
Original line number Original line Diff line number Diff line
@@ -42,6 +42,7 @@ onnn ON Semiconductor Corp.
picochip	Picochip Ltd
picochip	Picochip Ltd
powervr	PowerVR (deprecated, use img)
powervr	PowerVR (deprecated, use img)
qcom	Qualcomm, Inc.
qcom	Qualcomm, Inc.
ralink	Mediatek/Ralink Technology Corp.
ramtron	Ramtron International
ramtron	Ramtron International
realtek Realtek Semiconductor Corp.
realtek Realtek Semiconductor Corp.
renesas	Renesas Electronics Corporation
renesas	Renesas Electronics Corporation
+4 −0
Original line number Original line Diff line number Diff line
@@ -17,3 +17,7 @@ obj- := $(platform-)
obj-y += kernel/
obj-y += kernel/
obj-y += mm/
obj-y += mm/
obj-y += math-emu/
obj-y += math-emu/

ifdef CONFIG_KVM
obj-y += kvm/
endif
+43 −9
Original line number Original line Diff line number Diff line
@@ -304,7 +304,6 @@ config MIPS_MALTA
	select HW_HAS_PCI
	select HW_HAS_PCI
	select I8253
	select I8253
	select I8259
	select I8259
	select MIPS_BOARDS_GEN
	select MIPS_BONITO64
	select MIPS_BONITO64
	select MIPS_CPU_SCACHE
	select MIPS_CPU_SCACHE
	select PCI_GT64XXX_PCI0
	select PCI_GT64XXX_PCI0
@@ -335,12 +334,12 @@ config MIPS_SEAD3
	select BOOT_RAW
	select BOOT_RAW
	select CEVT_R4K
	select CEVT_R4K
	select CSRC_R4K
	select CSRC_R4K
	select CSRC_GIC
	select CPU_MIPSR2_IRQ_VI
	select CPU_MIPSR2_IRQ_VI
	select CPU_MIPSR2_IRQ_EI
	select CPU_MIPSR2_IRQ_EI
	select DMA_NONCOHERENT
	select DMA_NONCOHERENT
	select IRQ_CPU
	select IRQ_CPU
	select IRQ_GIC
	select IRQ_GIC
	select MIPS_BOARDS_GEN
	select MIPS_CPU_SCACHE
	select MIPS_CPU_SCACHE
	select MIPS_MSC
	select MIPS_MSC
	select SYS_HAS_CPU_MIPS32_R1
	select SYS_HAS_CPU_MIPS32_R1
@@ -352,6 +351,7 @@ config MIPS_SEAD3
	select SYS_SUPPORTS_BIG_ENDIAN
	select SYS_SUPPORTS_BIG_ENDIAN
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select SYS_SUPPORTS_SMARTMIPS
	select SYS_SUPPORTS_SMARTMIPS
	select SYS_SUPPORTS_MICROMIPS
	select USB_ARCH_HAS_EHCI
	select USB_ARCH_HAS_EHCI
	select USB_EHCI_BIG_ENDIAN_DESC
	select USB_EHCI_BIG_ENDIAN_DESC
	select USB_EHCI_BIG_ENDIAN_MMIO
	select USB_EHCI_BIG_ENDIAN_MMIO
@@ -910,6 +910,9 @@ config CEVT_GT641XX
config CEVT_R4K
config CEVT_R4K
	bool
	bool


config CEVT_GIC
	bool

config CEVT_SB1250
config CEVT_SB1250
	bool
	bool


@@ -982,9 +985,6 @@ config MIPS_MSC
config MIPS_NILE4
config MIPS_NILE4
	bool
	bool


config MIPS_DISABLE_OBSOLETE_IDE
	bool

config SYNC_R4K
config SYNC_R4K
	bool
	bool


@@ -1075,9 +1075,6 @@ config IRQ_GT641XX
config IRQ_GIC
config IRQ_GIC
	bool
	bool


config MIPS_BOARDS_GEN
	bool

config PCI_GT64XXX_PCI0
config PCI_GT64XXX_PCI0
	bool
	bool


@@ -1147,7 +1144,7 @@ config BOOT_ELF32


config MIPS_L1_CACHE_SHIFT
config MIPS_L1_CACHE_SHIFT
	int
	int
	default "4" if MACH_DECSTATION || MIKROTIK_RB532 || PMC_MSP4200_EVAL
	default "4" if MACH_DECSTATION || MIKROTIK_RB532 || PMC_MSP4200_EVAL || SOC_RT288X
	default "6" if MIPS_CPU_SCACHE
	default "6" if MIPS_CPU_SCACHE
	default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON
	default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON
	default "5"
	default "5"
@@ -1236,6 +1233,7 @@ config CPU_MIPS32_R2
	select CPU_HAS_PREFETCH
	select CPU_HAS_PREFETCH
	select CPU_SUPPORTS_32BIT_KERNEL
	select CPU_SUPPORTS_32BIT_KERNEL
	select CPU_SUPPORTS_HIGHMEM
	select CPU_SUPPORTS_HIGHMEM
	select HAVE_KVM
	help
	help
	  Choose this option to build a kernel for release 2 or later of the
	  Choose this option to build a kernel for release 2 or later of the
	  MIPS32 architecture.  Most modern embedded systems with a 32-bit
	  MIPS32 architecture.  Most modern embedded systems with a 32-bit
@@ -1736,6 +1734,20 @@ config 64BIT


endchoice
endchoice


config KVM_GUEST
	bool "KVM Guest Kernel"
	help
	  Select this option if building a guest kernel for KVM (Trap & Emulate) mode

config KVM_HOST_FREQ
	int "KVM Host Processor Frequency (MHz)"
	depends on KVM_GUEST
	default 500
	help
	  Select this option if building a guest kernel for KVM to skip
	  RTC emulation when determining guest CPU Frequency.  Instead, the guest
	  processor frequency is automatically derived from the host frequency.

choice
choice
	prompt "Kernel page size"
	prompt "Kernel page size"
	default PAGE_SIZE_4KB
	default PAGE_SIZE_4KB
@@ -1811,6 +1823,15 @@ config FORCE_MAX_ZONEORDER
	  The page size is not necessarily 4KB.  Keep this in mind
	  The page size is not necessarily 4KB.  Keep this in mind
	  when choosing a value for this option.
	  when choosing a value for this option.


config CEVT_GIC
	bool "Use GIC global counter for clock events"
	depends on IRQ_GIC && !(MIPS_SEAD3 || MIPS_MT_SMTC)
	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
	  detecting a GIC, it will fall back to the R4K timer for the
	  generation of clock events.

config BOARD_SCACHE
config BOARD_SCACHE
	bool
	bool


@@ -2016,6 +2037,7 @@ config SB1_PASS_2_1_WORKAROUNDS
	depends on CPU_SB1 && CPU_SB1_PASS_2
	depends on CPU_SB1 && CPU_SB1_PASS_2
	default y
	default y



config 64BIT_PHYS_ADDR
config 64BIT_PHYS_ADDR
	bool
	bool


@@ -2034,6 +2056,13 @@ config CPU_HAS_SMARTMIPS
	  you don't know you probably don't have SmartMIPS and should say N
	  you don't know you probably don't have SmartMIPS and should say N
	  here.
	  here.


config CPU_MICROMIPS
	depends on SYS_SUPPORTS_MICROMIPS
	bool "Build kernel using microMIPS ISA"
	help
	  When this option is enabled the kernel will be built using the
	  microMIPS ISA

config CPU_HAS_WB
config CPU_HAS_WB
	bool
	bool


@@ -2096,6 +2125,9 @@ config SYS_SUPPORTS_HIGHMEM
config SYS_SUPPORTS_SMARTMIPS
config SYS_SUPPORTS_SMARTMIPS
	bool
	bool


config SYS_SUPPORTS_MICROMIPS
	bool

config ARCH_FLATMEM_ENABLE
config ARCH_FLATMEM_ENABLE
	def_bool y
	def_bool y
	depends on !NUMA && !CPU_LOONGSON2
	depends on !NUMA && !CPU_LOONGSON2
@@ -2556,3 +2588,5 @@ source "security/Kconfig"
source "crypto/Kconfig"
source "crypto/Kconfig"


source "lib/Kconfig"
source "lib/Kconfig"

source "arch/mips/kvm/Kconfig"
+1 −0
Original line number Original line Diff line number Diff line
@@ -114,6 +114,7 @@ cflags-$(CONFIG_CPU_BIG_ENDIAN) += $(shell $(CC) -dumpmachine |grep -q 'mips.*e
cflags-$(CONFIG_CPU_LITTLE_ENDIAN)	+= $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' || echo -EL $(undef-all) $(predef-le))
cflags-$(CONFIG_CPU_LITTLE_ENDIAN)	+= $(shell $(CC) -dumpmachine |grep -q 'mips.*el-.*' || echo -EL $(undef-all) $(predef-le))


cflags-$(CONFIG_CPU_HAS_SMARTMIPS)	+= $(call cc-option,-msmartmips)
cflags-$(CONFIG_CPU_HAS_SMARTMIPS)	+= $(call cc-option,-msmartmips)
cflags-$(CONFIG_CPU_MICROMIPS) += $(call cc-option,-mmicromips -mno-jals)


cflags-$(CONFIG_SB1XXX_CORELIS)	+= $(call cc-option,-mno-sched-prolog) \
cflags-$(CONFIG_SB1XXX_CORELIS)	+= $(call cc-option,-mno-sched-prolog) \
				   -fno-omit-frame-pointer
				   -fno-omit-frame-pointer
Loading