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

Commit 1630e843 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'sh-for-4.8' of git://git.libc.org/linux-sh

Pull arch/sh updates from Rich Felker:
 "These changes improve device tree support (including builtin DTB), add
  support for the J-Core J2 processor, an open source synthesizable
  reimplementation of the SH-2 ISA, resolve a longstanding sigcontext
  ABI mismatch issue, and fix various bugs including nommu-specific
  issues and minor regressions introduced in 4.6.

  The J-Core arch support is included here but to be usable it needs
  drivers that are waiting on approval/inclusion from their subsystem
  maintainers"

* tag 'sh-for-4.8' of git://git.libc.org/linux-sh: (23 commits)
  sh: add device tree source for J2 FPGA on Mimas v2 board
  sh: add defconfig for J-Core J2
  sh: use common clock framework with device tree boards
  sh: system call wire up
  sh: Delete unnecessary checks before the function call "mempool_destroy"
  sh: do not perform IPI-based cache flush except on boards that need it
  sh: add SMP support for J2
  sh: SMP support for SH2 entry.S
  sh: add working futex atomic ops on userspace addresses for smp
  sh: add J2 atomics using the cas.l instruction
  sh: add AT_HWCAP flag for J-Core cas.l instruction
  sh: add support for J-Core J2 processor
  sh: fix build regression with CONFIG_OF && !CONFIG_OF_FLATTREE
  sh: allow clocksource drivers to register sched_clock backends
  sh: make heartbeat driver explicitly non-modular
  sh: make board-secureedge5410 explicitly non-modular
  sh: make mm/asids-debugfs explicitly non-modular
  sh: make time.c explicitly non-modular
  sh: fix futex/robust_list on nommu models
  sh: disable aliased page logic on NOMMU models
  ...
parents 194d6ad3 e61c10e4
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ config SUPERH
	select GENERIC_IDLE_POLL_SETUP
	select GENERIC_CLOCKEVENTS
	select GENERIC_CMOS_UPDATE if SH_SH03 || SH_DREAMCAST
	select GENERIC_SCHED_CLOCK
	select GENERIC_STRNCPY_FROM_USER
	select GENERIC_STRNLEN_USER
	select HAVE_MOD_ARCH_SPECIFIC if DWARF_UNWINDER
@@ -45,6 +46,7 @@ config SUPERH
	select OLD_SIGSUSPEND
	select OLD_SIGACTION
	select HAVE_ARCH_AUDITSYSCALL
	select HAVE_FUTEX_CMPXCHG if FUTEX
	select HAVE_NMI
	help
	  The SuperH is a RISC processor targeted for use in embedded systems
@@ -184,6 +186,12 @@ config CPU_SH2A
	select CPU_SH2
	select UNCACHED_MAPPING

config CPU_J2
	bool
	select CPU_SH2
	select OF
	select OF_EARLY_FLATTREE

config CPU_SH3
	bool
	select CPU_HAS_INTEVT
@@ -250,6 +258,12 @@ config CPU_SUBTYPE_SH7619
	select CPU_SH2
	select SYS_SUPPORTS_SH_CMT

config CPU_SUBTYPE_J2
	bool "Support J2 processor"
	select CPU_J2
	select SYS_SUPPORTS_SMP
	select GENERIC_CLOCKEVENTS_BROADCAST if SMP

# SH-2A Processor Support

config CPU_SUBTYPE_SH7201
@@ -739,6 +753,26 @@ endmenu

menu "Boot options"

config USE_BUILTIN_DTB
	bool "Use builtin DTB"
	default n
	depends on SH_DEVICE_TREE
	help
	  Link a device tree blob for particular hardware into the kernel,
	  suppressing use of the DTB pointer provided by the bootloader.
	  This option should only be used with legacy bootloaders that are
	  not capable of providing a DTB to the kernel, or for experimental
	  hardware without stable device tree bindings.

config BUILTIN_DTB_SOURCE
	string "Source file for builtin DTB"
	default ""
	depends on USE_BUILTIN_DTB
	help
	  Base name (without suffix, relative to arch/sh/boot/dts) for the
	  a DTS file that will be used to produce the DTB linked into the
	  kernel.

config ZERO_PAGE_OFFSET
	hex
	default "0x00010000" if PAGE_SIZE_64KB || SH_RTS7751R2D || \
+3 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ isa-y := $(isa-y)-up
endif

cflags-$(CONFIG_CPU_SH2)		:= $(call cc-option,-m2,)
cflags-$(CONFIG_CPU_J2)			:= $(call cc-option,-mj2,)
cflags-$(CONFIG_CPU_SH2A)		+= $(call cc-option,-m2a,) \
					   $(call cc-option,-m2a-nofpu,) \
					   $(call cc-option,-m4-nofpu,)
@@ -130,6 +131,8 @@ head-y := arch/sh/kernel/head_$(BITS).o
core-y				+= arch/sh/kernel/ arch/sh/mm/ arch/sh/boards/
core-$(CONFIG_SH_FPU_EMU)	+= arch/sh/math-emu/

core-$(CONFIG_USE_BUILTIN_DTB)	+= arch/sh/boot/dts/

# Mach groups
machdir-$(CONFIG_SOLUTION_ENGINE)		+= mach-se
machdir-$(CONFIG_SH_HP6XX)			+= mach-hp6xx
+1 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ config SH_DEVICE_TREE
	select OF
	select OF_EARLY_FLATTREE
	select CLKSRC_OF
	select COMMON_CLK
	select GENERIC_CALIBRATE_DELAY
	help
	  Select Board Described by Device Tree to build a kernel that
+1 −2
Original line number Diff line number Diff line
@@ -14,7 +14,6 @@
#include <linux/interrupt.h>
#include <linux/timer.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/sched.h>
#include <asm/machvec.h>
#include <mach/secureedge5410.h>
@@ -49,7 +48,7 @@ static int __init eraseconfig_init(void)
				irq);
	return 0;
}
module_init(eraseconfig_init);
device_initcall(eraseconfig_init);

/*
 * Initialize IRQ setting
+12 −3
Original line number Diff line number Diff line
@@ -124,13 +124,22 @@ static void __init sh_of_time_init(void)

static void __init sh_of_setup(char **cmdline_p)
{
	struct device_node *root;

#ifdef CONFIG_USE_BUILTIN_DTB
	unflatten_and_copy_device_tree();
#else
	unflatten_device_tree();
#endif

	board_time_init = sh_of_time_init;

	sh_mv.mv_name = of_flat_dt_get_machine_name();
	if (!sh_mv.mv_name)
	sh_mv.mv_name = "Unknown SH model";
	root = of_find_node_by_path("/");
	if (root) {
		of_property_read_string(root, "model", &sh_mv.mv_name);
		of_node_put(root);
	}

	sh_of_smp_probe();
}
Loading