From 01e0761fc16f3f3de993ec7ab4fd952c7fa2f6f3 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 27 Dec 2015 00:20:20 +0100 Subject: various microblaze related fixes add back some missing patches --- target/config/Config.in.tools | 5 + target/linux/config/Config.in.flash | 3 + target/linux/config/Config.in.serial | 15 + target/linux/patches/4.1.13/j2-core.patch | 2060 -------------------- .../linux/patches/4.1.13/use-libgcc-for-sh.patch | 29 - target/linux/patches/4.1.15/j2-core.patch | 2060 ++++++++++++++++++++ target/linux/patches/4.1.15/mtd-rootfs.patch | 26 + .../linux/patches/4.1.15/use-libgcc-for-sh.patch | 29 + target/microblaze/Makefile | 2 +- target/microblaze/kernel/qemu-microblaze-ml605 | 6 +- .../microblaze/kernel/qemu-microblaze-s3adsp1800 | 3 +- 11 files changed, 2141 insertions(+), 2097 deletions(-) delete mode 100644 target/linux/patches/4.1.13/j2-core.patch delete mode 100644 target/linux/patches/4.1.13/use-libgcc-for-sh.patch create mode 100644 target/linux/patches/4.1.15/j2-core.patch create mode 100644 target/linux/patches/4.1.15/mtd-rootfs.patch create mode 100644 target/linux/patches/4.1.15/use-libgcc-for-sh.patch (limited to 'target') diff --git a/target/config/Config.in.tools b/target/config/Config.in.tools index 600869754..4218eb1cc 100644 --- a/target/config/Config.in.tools +++ b/target/config/Config.in.tools @@ -179,6 +179,10 @@ config ADK_HOST_BUILD_COREUTILS bool default n +config ADK_HOST_BUILD_UTIL_LINUX + bool + default n + # optional, must be used from OpenADK config ADK_HOST_NEED_MTD_UTILS bool @@ -186,6 +190,7 @@ config ADK_HOST_NEED_MTD_UTILS config ADK_HOST_BUILD_MTD_UTILS bool + select ADK_HOST_BUILD_UTIL_LINUX default y if ADK_HOST_NEED_MTD_UTILS default n diff --git a/target/linux/config/Config.in.flash b/target/linux/config/Config.in.flash index ded3dfe6f..7f2886a3e 100644 --- a/target/linux/config/Config.in.flash +++ b/target/linux/config/Config.in.flash @@ -73,6 +73,7 @@ config ADK_KERNEL_MTD_OF_PARTS config ADK_KERNEL_MTD_M25P80 bool "MTD M25P80 driver" + select ADK_KERNEL_BLOCK select ADK_KERNEL_MTD select ADK_KERNEL_MTD_PARTITIONS select ADK_KERNEL_MTD_CHAR @@ -93,6 +94,7 @@ config ADK_KERNEL_MTD_M25P80 config ADK_KERNEL_MTD_NAND_PLATFORM bool "NAND platform driver" + select ADK_KERNEL_BLOCK select ADK_KERNEL_MISC_FILESYSTEMS select ADK_KERNEL_MTD select ADK_KERNEL_MTD_PARTITIONS @@ -108,6 +110,7 @@ config ADK_KERNEL_MTD_NAND_PLATFORM config ADK_KERNEL_MTD_PLATRAM bool "MTD RAM driver" + select ADK_KERNEL_BLOCK select ADK_KERNEL_MISC_FILESYSTEMS select ADK_KERNEL_MTD select ADK_KERNEL_MTD_BLOCK diff --git a/target/linux/config/Config.in.serial b/target/linux/config/Config.in.serial index 71816245b..7c5008b70 100644 --- a/target/linux/config/Config.in.serial +++ b/target/linux/config/Config.in.serial @@ -22,6 +22,9 @@ config ADK_KERNEL_SERIAL_OF_PLATFORM config ADK_KERNEL_SERIAL_OMAP_CONSOLE bool +config ADK_KERNEL_SERIAL_UARTLITE_CONSOLE + bool + config ADK_KERNEL_SERIAL_ETRAXFS_CONSOLE bool @@ -67,6 +70,7 @@ config ADK_KERNEL_SERIAL_8250 bool "8250 serial driver" select ADK_KERNEL_SERIAL_OF_PLATFORM if ADK_TARGET_SYSTEM_XILINX_KINTEX7 \ || ADK_TARGET_SYSTEM_QEMU_XTENSA \ + || ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 \ || ADK_TARGET_SYSTEM_QEMU_OR1K \ || ADK_TARGET_SYSTEM_OR1K_SIM select ADK_KERNEL_SERIAL_8250_PNP if ADK_TARGET_SYSTEM_PCENGINES_APU @@ -74,6 +78,7 @@ config ADK_KERNEL_SERIAL_8250 depends on ADK_TARGET_SYSTEM_XILINX_KINTEX7 \ || ADK_TARGET_SYSTEM_PCENGINES_APU \ || ADK_TARGET_SYSTEM_PCENGINES_ALIX \ + || ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 \ || ADK_TARGET_SYSTEM_QEMU_MIPS \ || ADK_TARGET_SYSTEM_QEMU_OR1K \ || ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO \ @@ -89,6 +94,7 @@ config ADK_KERNEL_SERIAL_8250 default y if ADK_TARGET_SYSTEM_XILINX_KINTEX7 default y if ADK_TARGET_SYSTEM_PCENGINES_APU default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX + default y if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 default y if ADK_TARGET_SYSTEM_QEMU_MIPS default y if ADK_TARGET_SYSTEM_QEMU_OR1K default y if ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO @@ -192,4 +198,13 @@ config ADK_KERNEL_SERIAL_OMAP help Serial driver for Beaglebone Black +config ADK_KERNEL_SERIAL_UARTLITE + bool "uartlite serial driver" + select ADK_KERNEL_SERIAL_UARTLITE_CONSOLE + depends on ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800 + default y if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800 + default n + help + Serial driver for Microblaze S3ADSP1800 + endmenu diff --git a/target/linux/patches/4.1.13/j2-core.patch b/target/linux/patches/4.1.13/j2-core.patch deleted file mode 100644 index 38136df2c..000000000 --- a/target/linux/patches/4.1.13/j2-core.patch +++ /dev/null @@ -1,2060 +0,0 @@ -diff -Nur linux-4.1.13.orig/arch/sh/Kconfig linux-4.1.13/arch/sh/Kconfig ---- linux-4.1.13.orig/arch/sh/Kconfig 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/Kconfig 2015-12-05 00:16:48.000000000 +0100 -@@ -66,7 +66,7 @@ - select HAVE_MIXED_BREAKPOINTS_REGS - select PERF_EVENTS - select ARCH_HIBERNATION_POSSIBLE if MMU -- select SPARSE_IRQ -+ select SPARSE_IRQ if !CPU_SUBTYPE_0PF - select HAVE_CC_STACKPROTECTOR - - config SUPERH64 -@@ -108,6 +108,9 @@ - config ARCH_HIBERNATION_POSSIBLE - def_bool n - -+config ARCH_USES_GETTIMEOFFSET -+ def_bool n -+ - config SYS_SUPPORTS_APM_EMULATION - bool - select ARCH_SUSPEND_POSSIBLE -@@ -184,6 +187,11 @@ - select CPU_SH2 - select UNCACHED_MAPPING - -+config CPU_SH2J -+ bool -+ select CPU_SH2 -+ select ARCH_USES_GETTIMEOFFSET -+ - config CPU_SH3 - bool - select CPU_HAS_INTEVT -@@ -303,6 +311,12 @@ - help - Select MX-G if running on an R8A03022BG part. - -+# SH-2J Processor Support -+ -+config CPU_SUBTYPE_0PF -+ bool "Support 0PF J2 SoftCore" -+ select CPU_SH2J -+ - # SH-3 Processor Support - - config CPU_SUBTYPE_SH7705 -@@ -753,6 +767,7 @@ - SH_7751_SOLUTION_ENGINE - default "0x00004000" if PAGE_SIZE_16KB || SH_SH03 - default "0x00002000" if PAGE_SIZE_8KB -+ default "0x0003F000" if CPU_SUBTYPE_0PF - default "0x00001000" - help - This sets the default offset of zero page. -diff -Nur linux-4.1.13.orig/arch/sh/Makefile linux-4.1.13/arch/sh/Makefile ---- linux-4.1.13.orig/arch/sh/Makefile 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/Makefile 2015-12-05 00:16:48.000000000 +0100 -@@ -4,6 +4,7 @@ - # Copyright (C) 1999 Kaz Kojima - # Copyright (C) 2002 - 2008 Paul Mundt - # Copyright (C) 2002 M. R. Brown -+# Copyright (C) 2012 SEI, Inc. (sh2j) - # - # This file is subject to the terms and conditions of the GNU General Public - # License. See the file "COPYING" in the main directory of this archive -@@ -19,6 +20,7 @@ - isa-$(CONFIG_SH_DSP) := sh - isa-$(CONFIG_CPU_SH2) := sh2 - isa-$(CONFIG_CPU_SH2A) := sh2a -+isa-$(CONFIG_CPU_SH2J) := sh2j - isa-$(CONFIG_CPU_SH3) := sh3 - isa-$(CONFIG_CPU_SH4) := sh4 - isa-$(CONFIG_CPU_SH4A) := sh4a -@@ -31,6 +33,8 @@ - endif - - cflags-$(CONFIG_CPU_SH2) := $(call cc-option,-m2,) -+cflags-$(CONFIG_CPU_SH2J) := $(call cc-option,-m2,) \ -+ $(call cc-option,-melf,) - cflags-$(CONFIG_CPU_SH2A) += $(call cc-option,-m2a,) \ - $(call cc-option,-m2a-nofpu,) \ - $(call cc-option,-m4-nofpu,) -@@ -91,6 +95,7 @@ - defaultimage-$(CONFIG_SH_7724_SOLUTION_ENGINE) := uImage - defaultimage-$(CONFIG_SH_7206_SOLUTION_ENGINE) := vmlinux - defaultimage-$(CONFIG_SH_7619_SOLUTION_ENGINE) := vmlinux -+defaultimage-$(CONFIG_SH_0PF) := vmlinux - - # Set some sensible Kbuild defaults - KBUILD_IMAGE := $(defaultimage-y) -@@ -173,6 +178,7 @@ - # As an example, in order of preference, SH-2A > SH-2 > common definitions. - # - cpuincdir-$(CONFIG_CPU_SH2A) += cpu-sh2a -+cpuincdir-$(CONFIG_CPU_SH2J) += cpu-sh2j - cpuincdir-$(CONFIG_CPU_SH2) += cpu-sh2 - cpuincdir-$(CONFIG_CPU_SH3) += cpu-sh3 - cpuincdir-$(CONFIG_CPU_SH4A) += cpu-sh4a -diff -Nur linux-4.1.13.orig/arch/sh/boards/Kconfig linux-4.1.13/arch/sh/boards/Kconfig ---- linux-4.1.13.orig/arch/sh/boards/Kconfig 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/boards/Kconfig 2015-12-05 00:16:48.000000000 +0100 -@@ -90,6 +90,13 @@ - Select 7343 SolutionEngine if configuring for a Hitachi - SH7343 (SH-Mobile 3AS) evaluation board. - -+config 0PF_FPGA -+ bool "0PF FPGA" -+ depends on CPU_SUBTYPE_0PF -+ help -+ Select 0PF_FPGA if you are configuring for an FPGA with -+ the SH2j-workalike SoftCore from http://0pf.org -+ - config SH_HP6XX - bool "HP6XX" - select SYS_SUPPORTS_APM_EMULATION -diff -Nur linux-4.1.13.orig/arch/sh/boards/Makefile linux-4.1.13/arch/sh/boards/Makefile ---- linux-4.1.13.orig/arch/sh/boards/Makefile 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/boards/Makefile 2015-12-05 00:16:48.000000000 +0100 -@@ -15,3 +15,4 @@ - obj-$(CONFIG_SH_SH7757LCR) += board-sh7757lcr.o - obj-$(CONFIG_SH_APSH4A3A) += board-apsh4a3a.o - obj-$(CONFIG_SH_APSH4AD0A) += board-apsh4ad0a.o -+obj-$(CONFIG_0PF_FPGA) += board-0pf.o -diff -Nur linux-4.1.13.orig/arch/sh/boards/board-0pf.c linux-4.1.13/arch/sh/boards/board-0pf.c ---- linux-4.1.13.orig/arch/sh/boards/board-0pf.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.13/arch/sh/boards/board-0pf.c 2015-12-05 00:16:48.000000000 +0100 -@@ -0,0 +1,270 @@ -+/* -+ * board-0pf.c -+ * -+ * Copyright (C) 2006 Yoshinori Sato -+ * Copyright (C) 2009 D. Jeff Dionne -+ * -+ * 0PF j-series CPU on FPGA -+ */ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+int shj_irq_demux(int irq) -+{ -+ return irq; /* punt.. */ -+} -+ -+static void shj_ack_noop(struct irq_data *data) -+{ -+ asm("nop;nop"); -+ /* Dummy function. */ -+} -+ -+static inline void shj_enable_irq(struct irq_data *data) -+{ -+ unsigned int irq = data->irq; -+ volatile unsigned int vui; -+ -+// printk("%s: IRQ %d (0x%x)\n", __func__, irq, irq); -+ -+ switch (irq) { -+ case PIT_IRQ: -+ //AQ_PIO = 0x0BB; -+ /* enable, lvl 2, vector 64 */ -+ AQ_SYS = (1 << 26) | /* enable PIT */ -+ (0x02 << 20) | /* interrupt level 2 */ -+ (PIT_IRQ << 12) | /* vector 64 */ -+ 1; /* turn off interval timer */ -+ break; -+ -+ case Irq_UART0: -+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); -+ vui &= ~ID2Pri(EIrqID_UART0, 0xf); /* clear old setting */ -+ vui |= ID2Pri(EIrqID_UART0, 0x7); /* set interrupt level */ -+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; -+ break; -+ -+ case Irq_UART1: -+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); -+ vui &= ~ID2Pri(EIrqID_UART1, 0xf); /* clear old setting */ -+ vui |= ID2Pri(EIrqID_UART1, 0x7); /* set interrupt level */ -+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; -+ break; -+ -+ case Irq_GPS: -+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); -+ vui &= ~ID2Pri(EIrqID_GPS, 0xf); /* clear old setting */ -+ vui |= ID2Pri(EIrqID_GPS, 0x7); /* set interrupt level */ -+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; -+ break; -+ -+ case Irq_I2C: -+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); -+ vui &= ~ID2Pri(EIrqID_I2C, 0xf); /* clear old setting */ -+ vui |= ID2Pri(EIrqID_I2C, 0x7); /* set interrupt level */ -+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; -+ break; -+ -+ case Irq_EMAC: -+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); -+ vui &= ~ID2Pri(EIrqID_EMAC, 0xf); /* clear old setting */ -+ vui |= ID2Pri(EIrqID_EMAC, 0x8); /* set interrupt level */ -+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; -+ printk("EMAC prio is: %x\n", vui); -+ break; -+ -+ case Irq_GPIO: -+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); -+ vui &= ~ID2Pri(EIrqID_GPIO, 0xf); /* clear old setting */ -+ vui |= ID2Pri(EIrqID_GPIO, 0x7); /* set interrupt level */ -+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; -+ break; -+ -+ case Irq_1PPS: // prio is higher for 1PPS porposes -+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); -+ vui &= ~ID2Pri(EIrqID_1PPS, 0xf); /* clear old setting */ -+ vui |= ID2Pri(EIrqID_1PPS, 0x9); /* set interrupt level */ -+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; -+ printk("1PPS prio is: %x\n", vui); -+ break; -+ -+ default: -+ break; -+ -+ } -+} -+ -+static inline void shj_disable_irq(struct irq_data *data) -+{ -+ volatile unsigned int vui; -+ unsigned int irq = data->irq; -+ -+ printk("%s: IRQ %d\n", __func__, irq); -+ -+ switch (irq) { -+ case PIT_IRQ: -+ /* enable, lvl 2, vector 64 */ -+ AQ_SYS = (0 << 26) | /* disable PIT */ -+ (0x02 << 20) | /* interrupt level 2 */ -+ (PIT_IRQ << 12) | /* vector 64 */ -+ 1; /* turn off interval timer */ -+ break; -+ -+ case Irq_UART0: -+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); -+ vui &= ~ID2Pri(EIrqID_UART0, 0xf); /* clear setting */ -+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; -+ break; -+ -+ case Irq_UART1: -+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); -+ vui &= ~ID2Pri(EIrqID_UART1, 0xf); /* clear setting */ -+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; -+ break; -+ -+ case Irq_GPS: -+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); -+ vui &= ~ID2Pri(EIrqID_GPS, 0xf); /* clear setting */ -+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; -+ break; -+ -+ case Irq_I2C: -+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); -+ vui &= ~ID2Pri(EIrqID_I2C, 0xf); /* clear setting */ -+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; -+ break; -+ -+ case Irq_EMAC: -+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); -+ vui &= ~ID2Pri(EIrqID_EMAC, 0xf); /* clear setting */ -+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; -+ break; -+ -+ case Irq_GPIO: -+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); -+ vui &= ~ID2Pri(EIrqID_GPIO, 0xf); /* clear setting */ -+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; -+ break; -+ -+ case Irq_1PPS: -+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); -+ vui &= ~ID2Pri(EIrqID_1PPS, 0xf); /* clear setting */ -+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; -+ break; -+ -+ default: -+ break; -+ } -+} -+ -+static struct irq_chip shj_irq_chip = { -+ .name = "0PF_INTC", -+ .irq_enable = shj_enable_irq, -+ .irq_disable = shj_disable_irq, -+ .irq_ack = shj_ack_noop, -+}; -+ -+static void __init shj_irq_init(void) -+{ -+ int c; -+ -+ printk(KERN_INFO "0PF FPGA interrupt controller...\n"); -+ -+ for (c = 0; c < NR_IRQS; c++) { -+ //irq_desc[c].action = NULL; -+ //irq_desc[c].depth = 1; -+ irq_set_chip_and_handler_name(c, &shj_irq_chip, -+ handle_simple_irq, "simple"); -+ } -+} -+ -+#ifdef CONFIG_ARCH_USES_GETTIMEOFFSET -+// Commit 7b1f62076 switched this to a pointer -+/* -+ * Should return nanoseconds since last timer tick -+ */ -+u32 shj_gettimeoffset(void) -+{ -+ u32 clocks_counter = readl(SHJ_PIT_PCNTR); -+ -+ return clocks_counter * readl(SHJ_NSEC_PER_CLOCK); -+} -+ -+static void __init shj_board_setup(char **cmdline) -+{ -+ arch_gettimeoffset = shj_gettimeoffset; -+} -+#else -+#define shj_gettimeoffset 0 -+#endif -+ -+static struct sh_machine_vector mv_se __initmv = { -+ .mv_name = "0PF_FPGA", -+ //.mv_nr_irqs = 256, -+ .mv_irq_demux = shj_irq_demux, -+ .mv_init_irq = shj_irq_init, -+ .mv_setup = shj_board_setup, -+}; -+ -+static irqreturn_t timer_interrupt(int irq, void *dev_id) -+{ -+ // AQ_PIO = 0x011; // GREEN -+ -+ if (current->pid) -+ profile_tick(CPU_PROFILING); -+ -+ xtime_update(1); -+ update_process_times(user_mode(get_irq_regs())); -+ -+ return IRQ_HANDLED; -+} -+ -+static void __init start_pit(void) -+{ -+ if (request_irq -+ (PIT_IRQ, timer_interrupt, IRQF_TIMER, "pit", NULL)) -+ printk("irq_desc[%p] : fail to register\n", &irq_desc[PIT_IRQ]); -+ -+ irq_set_chip_and_handler_name(PIT_IRQ, &shj_irq_chip, handle_edge_irq, -+ "pit"); -+} -+ -+static int __init shj_initialise(void) -+{ -+ struct irq_data *data; -+ -+ pr_info("0PF Machine setup...\n"); -+ -+ start_pit(); -+ -+ data = irq_get_irq_data(Irq_UART0); -+ shj_enable_irq(data); -+ -+ data = irq_get_irq_data(Irq_UART1); -+ shj_enable_irq(data); -+ -+ data = irq_get_irq_data(Irq_EMAC); -+ shj_enable_irq(data); -+ -+ data = irq_get_irq_data(PIT_IRQ); -+ shj_enable_irq(data); -+ -+ pr_info("0PF Machine setup done.\n"); -+ -+ return 0; -+} -+ -+arch_initcall(shj_initialise); -diff -Nur linux-4.1.13.orig/arch/sh/configs/0pf_defconfig linux-4.1.13/arch/sh/configs/0pf_defconfig ---- linux-4.1.13.orig/arch/sh/configs/0pf_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.13/arch/sh/configs/0pf_defconfig 2015-12-05 00:16:48.000000000 +0100 -@@ -0,0 +1,945 @@ -+# -+# Automatically generated file; DO NOT EDIT. -+# Linux/sh 4.1.0-rc6 Kernel Configuration -+# -+CONFIG_SUPERH=y -+CONFIG_SUPERH32=y -+# CONFIG_SUPERH64 is not set -+CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" -+CONFIG_RWSEM_GENERIC_SPINLOCK=y -+CONFIG_GENERIC_BUG=y -+CONFIG_GENERIC_HWEIGHT=y -+# CONFIG_ARCH_SUSPEND_POSSIBLE is not set -+# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set -+CONFIG_ARCH_USES_GETTIMEOFFSET=y -+CONFIG_STACKTRACE_SUPPORT=y -+CONFIG_LOCKDEP_SUPPORT=y -+CONFIG_HAVE_LATENCYTOP_SUPPORT=y -+# CONFIG_ARCH_HAS_ILOG2_U32 is not set -+# CONFIG_ARCH_HAS_ILOG2_U64 is not set -+CONFIG_NO_IOPORT_MAP=y -+CONFIG_DMA_NONCOHERENT=y -+CONFIG_NEED_DMA_MAP_STATE=y -+CONFIG_NEED_SG_DMA_LENGTH=y -+CONFIG_PGTABLE_LEVELS=2 -+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -+CONFIG_IRQ_WORK=y -+ -+# -+# General setup -+# -+CONFIG_BROKEN_ON_SMP=y -+CONFIG_INIT_ENV_ARG_LIMIT=32 -+CONFIG_CROSS_COMPILE="" -+# CONFIG_COMPILE_TEST is not set -+CONFIG_LOCALVERSION="" -+# CONFIG_LOCALVERSION_AUTO is not set -+CONFIG_HAVE_KERNEL_GZIP=y -+CONFIG_HAVE_KERNEL_BZIP2=y -+CONFIG_HAVE_KERNEL_LZMA=y -+CONFIG_HAVE_KERNEL_XZ=y -+CONFIG_HAVE_KERNEL_LZO=y -+CONFIG_KERNEL_GZIP=y -+# CONFIG_KERNEL_BZIP2 is not set -+# CONFIG_KERNEL_LZMA is not set -+# CONFIG_KERNEL_XZ is not set -+# CONFIG_KERNEL_LZO is not set -+CONFIG_DEFAULT_HOSTNAME="(none)" -+# CONFIG_SYSVIPC is not set -+# CONFIG_FHANDLE is not set -+# CONFIG_USELIB is not set -+CONFIG_HAVE_ARCH_AUDITSYSCALL=y -+ -+# -+# IRQ subsystem -+# -+CONFIG_MAY_HAVE_SPARSE_IRQ=y -+CONFIG_GENERIC_IRQ_SHOW=y -+CONFIG_IRQ_DOMAIN=y -+CONFIG_IRQ_FORCED_THREADING=y -+# CONFIG_SPARSE_IRQ is not set -+CONFIG_GENERIC_CLOCKEVENTS=y -+ -+# -+# Timers subsystem -+# -+CONFIG_HZ_PERIODIC=y -+ -+# -+# CPU/Task time and stats accounting -+# -+CONFIG_TICK_CPU_ACCOUNTING=y -+# CONFIG_BSD_PROCESS_ACCT is not set -+ -+# -+# RCU Subsystem -+# -+CONFIG_TINY_RCU=y -+CONFIG_SRCU=y -+# CONFIG_TASKS_RCU is not set -+# CONFIG_RCU_STALL_COMMON is not set -+# CONFIG_TREE_RCU_TRACE is not set -+CONFIG_RCU_KTHREAD_PRIO=0 -+# CONFIG_RCU_EXPEDITE_BOOT is not set -+# CONFIG_BUILD_BIN2C is not set -+# CONFIG_IKCONFIG is not set -+CONFIG_LOG_BUF_SHIFT=17 -+# CONFIG_CGROUPS is not set -+# CONFIG_CHECKPOINT_RESTORE is not set -+CONFIG_NAMESPACES=y -+# CONFIG_UTS_NS is not set -+# CONFIG_USER_NS is not set -+# CONFIG_PID_NS is not set -+# CONFIG_SCHED_AUTOGROUP is not set -+# CONFIG_SYSFS_DEPRECATED is not set -+# CONFIG_RELAY is not set -+CONFIG_BLK_DEV_INITRD=y -+CONFIG_INITRAMFS_SOURCE="initrd/root-dev initrd/root-files" -+CONFIG_INITRAMFS_ROOT_UID=0 -+CONFIG_INITRAMFS_ROOT_GID=0 -+# CONFIG_RD_GZIP is not set -+# CONFIG_RD_BZIP2 is not set -+# CONFIG_RD_LZMA is not set -+# CONFIG_RD_XZ is not set -+# CONFIG_RD_LZO is not set -+# CONFIG_RD_LZ4 is not set -+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -+CONFIG_SYSCTL=y -+CONFIG_ANON_INODES=y -+CONFIG_HAVE_UID16=y -+# CONFIG_EXPERT is not set -+CONFIG_UID16=y -+CONFIG_MULTIUSER=y -+CONFIG_SGETMASK_SYSCALL=y -+CONFIG_SYSFS_SYSCALL=y -+# CONFIG_SYSCTL_SYSCALL is not set -+CONFIG_KALLSYMS=y -+CONFIG_PRINTK=y -+CONFIG_BUG=y -+CONFIG_ELF_CORE=y -+CONFIG_BASE_FULL=y -+CONFIG_FUTEX=y -+CONFIG_EPOLL=y -+CONFIG_SIGNALFD=y -+CONFIG_TIMERFD=y -+CONFIG_EVENTFD=y -+# CONFIG_BPF_SYSCALL is not set -+CONFIG_AIO=y -+CONFIG_ADVISE_SYSCALLS=y -+# CONFIG_EMBEDDED is not set -+CONFIG_HAVE_PERF_EVENTS=y -+CONFIG_PERF_USE_VMALLOC=y -+ -+# -+# Kernel Performance Events And Counters -+# -+CONFIG_PERF_EVENTS=y -+CONFIG_VM_EVENT_COUNTERS=y -+CONFIG_SLUB_DEBUG=y -+# CONFIG_COMPAT_BRK is not set -+# CONFIG_SLAB is not set -+CONFIG_SLUB=y -+# CONFIG_PROFILING is not set -+CONFIG_HAVE_OPROFILE=y -+# CONFIG_UPROBES is not set -+# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set -+CONFIG_HAVE_KPROBES=y -+CONFIG_HAVE_KRETPROBES=y -+CONFIG_HAVE_ARCH_TRACEHOOK=y -+CONFIG_HAVE_DMA_ATTRS=y -+CONFIG_GENERIC_SMP_IDLE_THREAD=y -+CONFIG_GENERIC_IDLE_POLL_SETUP=y -+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -+CONFIG_HAVE_CLK=y -+CONFIG_HAVE_DMA_API_DEBUG=y -+CONFIG_HAVE_HW_BREAKPOINT=y -+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y -+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y -+CONFIG_HAVE_CC_STACKPROTECTOR=y -+# CONFIG_CC_STACKPROTECTOR is not set -+CONFIG_CC_STACKPROTECTOR_NONE=y -+# CONFIG_CC_STACKPROTECTOR_REGULAR is not set -+# CONFIG_CC_STACKPROTECTOR_STRONG is not set -+CONFIG_MODULES_USE_ELF_RELA=y -+CONFIG_OLD_SIGSUSPEND=y -+CONFIG_OLD_SIGACTION=y -+ -+# -+# GCOV-based kernel profiling -+# -+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y -+CONFIG_HAVE_GENERIC_DMA_COHERENT=y -+CONFIG_SLABINFO=y -+CONFIG_RT_MUTEXES=y -+CONFIG_BASE_SMALL=0 -+# CONFIG_MODULES is not set -+CONFIG_BLOCK=y -+# CONFIG_LBDAF is not set -+# CONFIG_BLK_DEV_BSG is not set -+# CONFIG_BLK_DEV_BSGLIB is not set -+# CONFIG_BLK_DEV_INTEGRITY is not set -+# CONFIG_BLK_CMDLINE_PARSER is not set -+ -+# -+# Partition Types -+# -+# CONFIG_PARTITION_ADVANCED is not set -+CONFIG_MSDOS_PARTITION=y -+CONFIG_EFI_PARTITION=y -+ -+# -+# IO Schedulers -+# -+CONFIG_IOSCHED_NOOP=y -+# CONFIG_IOSCHED_DEADLINE is not set -+# CONFIG_IOSCHED_CFQ is not set -+CONFIG_DEFAULT_NOOP=y -+CONFIG_DEFAULT_IOSCHED="noop" -+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -+CONFIG_INLINE_READ_UNLOCK=y -+CONFIG_INLINE_READ_UNLOCK_IRQ=y -+CONFIG_INLINE_WRITE_UNLOCK=y -+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y -+# CONFIG_FREEZER is not set -+ -+# -+# System type -+# -+CONFIG_CPU_SH2=y -+CONFIG_CPU_SH2J=y -+# CONFIG_CPU_SUBTYPE_SH7619 is not set -+# CONFIG_CPU_SUBTYPE_SH7201 is not set -+# CONFIG_CPU_SUBTYPE_SH7203 is not set -+# CONFIG_CPU_SUBTYPE_SH7206 is not set -+# CONFIG_CPU_SUBTYPE_SH7263 is not set -+# CONFIG_CPU_SUBTYPE_SH7264 is not set -+# CONFIG_CPU_SUBTYPE_SH7269 is not set -+# CONFIG_CPU_SUBTYPE_MXG is not set -+CONFIG_CPU_SUBTYPE_0PF=y -+# CONFIG_CPU_SUBTYPE_SH7705 is not set -+# CONFIG_CPU_SUBTYPE_SH7706 is not set -+# CONFIG_CPU_SUBTYPE_SH7707 is not set -+# CONFIG_CPU_SUBTYPE_SH7708 is not set -+# CONFIG_CPU_SUBTYPE_SH7709 is not set -+# CONFIG_CPU_SUBTYPE_SH7710 is not set -+# CONFIG_CPU_SUBTYPE_SH7712 is not set -+# CONFIG_CPU_SUBTYPE_SH7720 is not set -+# CONFIG_CPU_SUBTYPE_SH7721 is not set -+# CONFIG_CPU_SUBTYPE_SH7750 is not set -+# CONFIG_CPU_SUBTYPE_SH7091 is not set -+# CONFIG_CPU_SUBTYPE_SH7750R is not set -+# CONFIG_CPU_SUBTYPE_SH7750S is not set -+# CONFIG_CPU_SUBTYPE_SH7751 is not set -+# CONFIG_CPU_SUBTYPE_SH7751R is not set -+# CONFIG_CPU_SUBTYPE_SH7760 is not set -+# CONFIG_CPU_SUBTYPE_SH4_202 is not set -+# CONFIG_CPU_SUBTYPE_SH7723 is not set -+# CONFIG_CPU_SUBTYPE_SH7724 is not set -+# CONFIG_CPU_SUBTYPE_SH7734 is not set -+# CONFIG_CPU_SUBTYPE_SH7757 is not set -+# CONFIG_CPU_SUBTYPE_SH7763 is not set -+# CONFIG_CPU_SUBTYPE_SH7770 is not set -+# CONFIG_CPU_SUBTYPE_SH7780 is not set -+# CONFIG_CPU_SUBTYPE_SH7785 is not set -+# CONFIG_CPU_SUBTYPE_SH7786 is not set -+# CONFIG_CPU_SUBTYPE_SHX3 is not set -+# CONFIG_CPU_SUBTYPE_SH7343 is not set -+# CONFIG_CPU_SUBTYPE_SH7722 is not set -+# CONFIG_CPU_SUBTYPE_SH7366 is not set -+ -+# -+# Memory management options -+# -+CONFIG_QUICKLIST=y -+CONFIG_PAGE_OFFSET=0x00000000 -+CONFIG_FORCE_MAX_ZONEORDER=14 -+CONFIG_MEMORY_START=0x10000000 -+CONFIG_MEMORY_SIZE=0x8000000 -+# CONFIG_29BIT is not set -+CONFIG_32BIT=y -+CONFIG_ARCH_FLATMEM_ENABLE=y -+CONFIG_ARCH_SPARSEMEM_ENABLE=y -+CONFIG_ARCH_SPARSEMEM_DEFAULT=y -+CONFIG_ARCH_SELECT_MEMORY_MODEL=y -+CONFIG_PAGE_SIZE_4KB=y -+# CONFIG_PAGE_SIZE_8KB is not set -+# CONFIG_PAGE_SIZE_16KB is not set -+# CONFIG_PAGE_SIZE_64KB is not set -+CONFIG_SELECT_MEMORY_MODEL=y -+CONFIG_FLATMEM_MANUAL=y -+# CONFIG_SPARSEMEM_MANUAL is not set -+CONFIG_FLATMEM=y -+CONFIG_FLAT_NODE_MEM_MAP=y -+CONFIG_SPARSEMEM_STATIC=y -+CONFIG_HAVE_MEMBLOCK=y -+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y -+CONFIG_ARCH_DISCARD_MEMBLOCK=y -+# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set -+CONFIG_PAGEFLAGS_EXTENDED=y -+CONFIG_SPLIT_PTLOCK_CPUS=999999 -+# CONFIG_PHYS_ADDR_T_64BIT is not set -+CONFIG_ZONE_DMA_FLAG=0 -+CONFIG_NR_QUICK=1 -+CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 -+CONFIG_NEED_PER_CPU_KM=y -+# CONFIG_CLEANCACHE is not set -+# CONFIG_ZPOOL is not set -+# CONFIG_ZBUD is not set -+ -+# -+# Cache configuration -+# -+# CONFIG_CACHE_WRITEBACK is not set -+# CONFIG_CACHE_WRITETHROUGH is not set -+CONFIG_CACHE_OFF=y -+ -+# -+# Processor features -+# -+# CONFIG_CPU_LITTLE_ENDIAN is not set -+CONFIG_CPU_BIG_ENDIAN=y -+# CONFIG_SH_FPU_EMU is not set -+ -+# -+# Board support -+# -+CONFIG_0PF_FPGA=y -+ -+# -+# Timer and clock configuration -+# -+CONFIG_SH_PCLK_FREQ=32000000 -+CONFIG_SH_CLK_CPG=y -+CONFIG_SH_CLK_CPG_LEGACY=y -+ -+# -+# CPU Frequency scaling -+# -+ -+# -+# CPU Frequency scaling -+# -+# CONFIG_CPU_FREQ is not set -+ -+# -+# DMA support -+# -+ -+# -+# Companion Chips -+# -+ -+# -+# Additional SuperH Device Drivers -+# -+# CONFIG_HEARTBEAT is not set -+# CONFIG_PUSH_SWITCH is not set -+ -+# -+# Kernel features -+# -+CONFIG_HZ_100=y -+# CONFIG_HZ_250 is not set -+# CONFIG_HZ_300 is not set -+# CONFIG_HZ_1000 is not set -+CONFIG_HZ=100 -+# CONFIG_SCHED_HRTICK is not set -+# CONFIG_CRASH_DUMP is not set -+CONFIG_PHYSICAL_START=0x10000000 -+# CONFIG_SECCOMP is not set -+CONFIG_PREEMPT_NONE=y -+# CONFIG_PREEMPT_VOLUNTARY is not set -+# CONFIG_PREEMPT is not set -+CONFIG_GUSA=y -+ -+# -+# SuperH / SH-Mobile Driver Options -+# -+CONFIG_SH_INTC=y -+ -+# -+# Interrupt controller options -+# -+ -+# -+# Boot options -+# -+CONFIG_ZERO_PAGE_OFFSET=0x0003F000 -+CONFIG_BOOT_LINK_OFFSET=0x00800000 -+CONFIG_ENTRY_OFFSET=0x00001000 -+# CONFIG_CMDLINE_OVERWRITE is not set -+CONFIG_CMDLINE_EXTEND=y -+CONFIG_CMDLINE="console=ttyUL0" -+ -+# -+# Bus options -+# -+# CONFIG_PCCARD is not set -+ -+# -+# Executable file formats -+# -+CONFIG_BINFMT_ELF_FDPIC=y -+CONFIG_BINFMT_SCRIPT=y -+CONFIG_BINFMT_FLAT=y -+# CONFIG_BINFMT_ZFLAT is not set -+# CONFIG_BINFMT_SHARED_FLAT is not set -+# CONFIG_HAVE_AOUT is not set -+# CONFIG_BINFMT_MISC is not set -+CONFIG_COREDUMP=y -+ -+# -+# Power management options (EXPERIMENTAL) -+# -+# CONFIG_PM is not set -+ -+# -+# CPU Idle -+# -+# CONFIG_CPU_IDLE is not set -+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set -+# CONFIG_NET is not set -+ -+# -+# Device Drivers -+# -+ -+# -+# Generic Driver Options -+# -+# CONFIG_UEVENT_HELPER is not set -+CONFIG_DEVTMPFS=y -+CONFIG_DEVTMPFS_MOUNT=y -+# CONFIG_STANDALONE is not set -+# CONFIG_PREVENT_FIRMWARE_BUILD is not set -+CONFIG_FW_LOADER=y -+# CONFIG_FIRMWARE_IN_KERNEL is not set -+CONFIG_EXTRA_FIRMWARE="" -+# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set -+CONFIG_ALLOW_DEV_COREDUMP=y -+# CONFIG_SYS_HYPERVISOR is not set -+# CONFIG_GENERIC_CPU_DEVICES is not set -+# CONFIG_DMA_SHARED_BUFFER is not set -+ -+# -+# Bus devices -+# -+# CONFIG_MTD is not set -+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y -+# CONFIG_PARPORT is not set -+# CONFIG_BLK_DEV is not set -+ -+# -+# Misc devices -+# -+# CONFIG_SENSORS_LIS3LV02D is not set -+# CONFIG_DUMMY_IRQ is not set -+# CONFIG_ENCLOSURE_SERVICES is not set -+# CONFIG_SRAM is not set -+# CONFIG_C2PORT is not set -+ -+# -+# EEPROM support -+# -+# CONFIG_EEPROM_93CX6 is not set -+ -+# -+# Texas Instruments shared transport line discipline -+# -+ -+# -+# Altera FPGA firmware download module -+# -+ -+# -+# Intel MIC Bus Driver -+# -+ -+# -+# Intel MIC Host Driver -+# -+ -+# -+# Intel MIC Card Driver -+# -+# CONFIG_ECHO is not set -+# CONFIG_CXL_BASE is not set -+ -+# -+# SCSI device support -+# -+CONFIG_SCSI_MOD=y -+# CONFIG_RAID_ATTRS is not set -+# CONFIG_SCSI is not set -+# CONFIG_SCSI_DMA is not set -+CONFIG_HAVE_PATA_PLATFORM=y -+# CONFIG_ATA is not set -+# CONFIG_MD is not set -+ -+# -+# Input device support -+# -+CONFIG_INPUT=y -+# CONFIG_INPUT_FF_MEMLESS is not set -+# CONFIG_INPUT_POLLDEV is not set -+# CONFIG_INPUT_SPARSEKMAP is not set -+# CONFIG_INPUT_MATRIXKMAP is not set -+ -+# -+# Userland interfaces -+# -+# CONFIG_INPUT_MOUSEDEV is not set -+# CONFIG_INPUT_JOYDEV is not set -+# CONFIG_INPUT_EVDEV is not set -+# CONFIG_INPUT_EVBUG is not set -+ -+# -+# Input Device Drivers -+# -+# CONFIG_INPUT_KEYBOARD is not set -+# CONFIG_INPUT_MOUSE is not set -+# CONFIG_INPUT_JOYSTICK is not set -+# CONFIG_INPUT_TABLET is not set -+# CONFIG_INPUT_TOUCHSCREEN is not set -+# CONFIG_INPUT_MISC is not set -+ -+# -+# Hardware I/O ports -+# -+# CONFIG_SERIO is not set -+# CONFIG_GAMEPORT is not set -+ -+# -+# Character devices -+# -+CONFIG_TTY=y -+CONFIG_VT=y -+CONFIG_CONSOLE_TRANSLATIONS=y -+CONFIG_VT_CONSOLE=y -+CONFIG_HW_CONSOLE=y -+# CONFIG_VT_HW_CONSOLE_BINDING is not set -+CONFIG_UNIX98_PTYS=y -+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -+# CONFIG_LEGACY_PTYS is not set -+# CONFIG_SERIAL_NONSTANDARD is not set -+# CONFIG_TRACE_SINK is not set -+CONFIG_DEVMEM=y -+# CONFIG_DEVKMEM is not set -+ -+# -+# Serial drivers -+# -+# CONFIG_SERIAL_8250 is not set -+ -+# -+# Non-8250 serial port support -+# -+CONFIG_SERIAL_UARTLITE=y -+CONFIG_SERIAL_UARTLITE_CONSOLE=y -+CONFIG_SERIAL_UARTLITE_0PF=y -+# CONFIG_SERIAL_SH_SCI is not set -+CONFIG_SERIAL_CORE=y -+CONFIG_SERIAL_CORE_CONSOLE=y -+# CONFIG_SERIAL_SCCNXP is not set -+# CONFIG_SERIAL_ALTERA_JTAGUART is not set -+# CONFIG_SERIAL_ALTERA_UART is not set -+# CONFIG_SERIAL_ARC is not set -+# CONFIG_SERIAL_FSL_LPUART is not set -+# CONFIG_IPMI_HANDLER is not set -+# CONFIG_HW_RANDOM is not set -+# CONFIG_R3964 is not set -+# CONFIG_RAW_DRIVER is not set -+# CONFIG_TCG_TPM is not set -+ -+# -+# I2C support -+# -+# CONFIG_I2C is not set -+# CONFIG_SPI is not set -+# CONFIG_SPMI is not set -+# CONFIG_HSI is not set -+ -+# -+# PPS support -+# -+# CONFIG_PPS is not set -+ -+# -+# PPS generators support -+# -+ -+# -+# PTP clock support -+# -+ -+# -+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. -+# -+CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y -+# CONFIG_W1 is not set -+# CONFIG_POWER_SUPPLY is not set -+# CONFIG_POWER_AVS is not set -+# CONFIG_HWMON is not set -+# CONFIG_THERMAL is not set -+# CONFIG_WATCHDOG is not set -+CONFIG_SSB_POSSIBLE=y -+ -+# -+# Sonics Silicon Backplane -+# -+# CONFIG_SSB is not set -+CONFIG_BCMA_POSSIBLE=y -+ -+# -+# Broadcom specific AMBA -+# -+# CONFIG_BCMA is not set -+ -+# -+# Multifunction device drivers -+# -+# CONFIG_MFD_CORE is not set -+# CONFIG_MFD_CROS_EC is not set -+# CONFIG_HTC_PASIC3 is not set -+# CONFIG_MFD_KEMPLD is not set -+# CONFIG_MFD_MT6397 is not set -+# CONFIG_MFD_SM501 is not set -+# CONFIG_ABX500_CORE is not set -+# CONFIG_MFD_SYSCON is not set -+# CONFIG_MFD_TI_AM335X_TSCADC is not set -+# CONFIG_MFD_TMIO is not set -+# CONFIG_REGULATOR is not set -+# CONFIG_MEDIA_SUPPORT is not set -+ -+# -+# Graphics support -+# -+ -+# -+# Direct Rendering Manager -+# -+ -+# -+# Frame buffer Devices -+# -+# CONFIG_FB is not set -+# CONFIG_FB_SH_MOBILE_MERAM is not set -+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set -+# CONFIG_VGASTATE is not set -+ -+# -+# Console display driver support -+# -+CONFIG_DUMMY_CONSOLE=y -+CONFIG_DUMMY_CONSOLE_COLUMNS=80 -+CONFIG_DUMMY_CONSOLE_ROWS=25 -+# CONFIG_SOUND is not set -+ -+# -+# HID support -+# -+# CONFIG_HID is not set -+CONFIG_USB_OHCI_LITTLE_ENDIAN=y -+# CONFIG_USB_SUPPORT is not set -+# CONFIG_UWB is not set -+# CONFIG_MMC is not set -+# CONFIG_MEMSTICK is not set -+# CONFIG_NEW_LEDS is not set -+# CONFIG_ACCESSIBILITY is not set -+CONFIG_RTC_LIB=y -+# CONFIG_RTC_CLASS is not set -+# CONFIG_DMADEVICES is not set -+# CONFIG_AUXDISPLAY is not set -+# CONFIG_VIRT_DRIVERS is not set -+ -+# -+# Virtio drivers -+# -+# CONFIG_VIRTIO_MMIO is not set -+ -+# -+# Microsoft Hyper-V guest support -+# -+# CONFIG_STAGING is not set -+CONFIG_CLKDEV_LOOKUP=y -+ -+# -+# Hardware Spinlock drivers -+# -+ -+# -+# Clock Source drivers -+# -+# CONFIG_ATMEL_PIT is not set -+# CONFIG_SH_TIMER_CMT is not set -+# CONFIG_SH_TIMER_MTU2 is not set -+# CONFIG_SH_TIMER_TMU is not set -+# CONFIG_EM_TIMER_STI is not set -+# CONFIG_MAILBOX is not set -+ -+# -+# Remoteproc drivers -+# -+# CONFIG_STE_MODEM_RPROC is not set -+ -+# -+# Rpmsg drivers -+# -+ -+# -+# SOC (System On Chip) specific Drivers -+# -+# CONFIG_SOC_TI is not set -+# CONFIG_PM_DEVFREQ is not set -+# CONFIG_EXTCON is not set -+# CONFIG_MEMORY is not set -+# CONFIG_IIO is not set -+# CONFIG_PWM is not set -+# CONFIG_IPACK_BUS is not set -+# CONFIG_RESET_CONTROLLER is not set -+# CONFIG_FMC is not set -+ -+# -+# PHY Subsystem -+# -+# CONFIG_GENERIC_PHY is not set -+# CONFIG_BCM_KONA_USB2_PHY is not set -+# CONFIG_POWERCAP is not set -+# CONFIG_MCB is not set -+ -+# -+# Android -+# -+# CONFIG_ANDROID is not set -+ -+# -+# File systems -+# -+# CONFIG_EXT2_FS is not set -+# CONFIG_EXT3_FS is not set -+# CONFIG_EXT4_FS is not set -+# CONFIG_REISERFS_FS is not set -+# CONFIG_JFS_FS is not set -+# CONFIG_BTRFS_FS is not set -+# CONFIG_NILFS2_FS is not set -+# CONFIG_F2FS_FS is not set -+# CONFIG_FS_POSIX_ACL is not set -+CONFIG_FILE_LOCKING=y -+# CONFIG_FSNOTIFY is not set -+# CONFIG_DNOTIFY is not set -+# CONFIG_INOTIFY_USER is not set -+# CONFIG_FANOTIFY is not set -+# CONFIG_QUOTA is not set -+# CONFIG_QUOTACTL is not set -+# CONFIG_AUTOFS4_FS is not set -+# CONFIG_FUSE_FS is not set -+# CONFIG_OVERLAY_FS is not set -+ -+# -+# Caches -+# -+# CONFIG_FSCACHE is not set -+ -+# -+# CD-ROM/DVD Filesystems -+# -+# CONFIG_ISO9660_FS is not set -+# CONFIG_UDF_FS is not set -+ -+# -+# DOS/FAT/NT Filesystems -+# -+CONFIG_FAT_FS=y -+# CONFIG_MSDOS_FS is not set -+CONFIG_VFAT_FS=y -+CONFIG_FAT_DEFAULT_CODEPAGE=437 -+CONFIG_FAT_DEFAULT_IOCHARSET="utf8" -+# CONFIG_NTFS_FS is not set -+ -+# -+# Pseudo filesystems -+# -+CONFIG_PROC_FS=y -+CONFIG_PROC_SYSCTL=y -+CONFIG_KERNFS=y -+CONFIG_SYSFS=y -+# CONFIG_HUGETLB_PAGE is not set -+# CONFIG_CONFIGFS_FS is not set -+# CONFIG_MISC_FILESYSTEMS is not set -+CONFIG_NLS=y -+CONFIG_NLS_DEFAULT="utf8" -+# CONFIG_NLS_CODEPAGE_437 is not set -+# CONFIG_NLS_CODEPAGE_737 is not set -+# CONFIG_NLS_CODEPAGE_775 is not set -+# CONFIG_NLS_CODEPAGE_850 is not set -+# CONFIG_NLS_CODEPAGE_852 is not set -+# CONFIG_NLS_CODEPAGE_855 is not set -+# CONFIG_NLS_CODEPAGE_857 is not set -+# CONFIG_NLS_CODEPAGE_860 is not set -+# CONFIG_NLS_CODEPAGE_861 is not set -+# CONFIG_NLS_CODEPAGE_862 is not set -+# CONFIG_NLS_CODEPAGE_863 is not set -+# CONFIG_NLS_CODEPAGE_864 is not set -+# CONFIG_NLS_CODEPAGE_865 is not set -+# CONFIG_NLS_CODEPAGE_866 is not set -+# CONFIG_NLS_CODEPAGE_869 is not set -+# CONFIG_NLS_CODEPAGE_936 is not set -+# CONFIG_NLS_CODEPAGE_950 is not set -+# CONFIG_NLS_CODEPAGE_932 is not set -+# CONFIG_NLS_CODEPAGE_949 is not set -+# CONFIG_NLS_CODEPAGE_874 is not set -+# CONFIG_NLS_ISO8859_8 is not set -+# CONFIG_NLS_CODEPAGE_1250 is not set -+# CONFIG_NLS_CODEPAGE_1251 is not set -+# CONFIG_NLS_ASCII is not set -+# CONFIG_NLS_ISO8859_1 is not set -+# CONFIG_NLS_ISO8859_2 is not set -+# CONFIG_NLS_ISO8859_3 is not set -+# CONFIG_NLS_ISO8859_4 is not set -+# CONFIG_NLS_ISO8859_5 is not set -+# CONFIG_NLS_ISO8859_6 is not set -+# CONFIG_NLS_ISO8859_7 is not set -+# CONFIG_NLS_ISO8859_9 is not set -+# CONFIG_NLS_ISO8859_13 is not set -+# CONFIG_NLS_ISO8859_14 is not set -+# CONFIG_NLS_ISO8859_15 is not set -+# CONFIG_NLS_KOI8_R is not set -+# CONFIG_NLS_KOI8_U is not set -+# CONFIG_NLS_MAC_ROMAN is not set -+# CONFIG_NLS_MAC_CELTIC is not set -+# CONFIG_NLS_MAC_CENTEURO is not set -+# CONFIG_NLS_MAC_CROATIAN is not set -+# CONFIG_NLS_MAC_CYRILLIC is not set -+# CONFIG_NLS_MAC_GAELIC is not set -+# CONFIG_NLS_MAC_GREEK is not set -+# CONFIG_NLS_MAC_ICELAND is not set -+# CONFIG_NLS_MAC_INUIT is not set -+# CONFIG_NLS_MAC_ROMANIAN is not set -+# CONFIG_NLS_MAC_TURKISH is not set -+CONFIG_NLS_UTF8=y -+ -+# -+# Kernel hacking -+# -+CONFIG_TRACE_IRQFLAGS_SUPPORT=y -+ -+# -+# printk and dmesg options -+# -+# CONFIG_PRINTK_TIME is not set -+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -+ -+# -+# Compile-time checks and compiler options -+# -+# CONFIG_ENABLE_WARN_DEPRECATED is not set -+# CONFIG_ENABLE_MUST_CHECK is not set -+CONFIG_FRAME_WARN=1024 -+# CONFIG_STRIP_ASM_SYMS is not set -+# CONFIG_UNUSED_SYMBOLS is not set -+# CONFIG_DEBUG_FS is not set -+# CONFIG_HEADERS_CHECK is not set -+# CONFIG_DEBUG_SECTION_MISMATCH is not set -+# CONFIG_MAGIC_SYSRQ is not set -+# CONFIG_DEBUG_KERNEL is not set -+ -+# -+# Memory Debugging -+# -+# CONFIG_PAGE_EXTENSION is not set -+# CONFIG_SLUB_DEBUG_ON is not set -+# CONFIG_SLUB_STATS is not set -+CONFIG_HAVE_DEBUG_KMEMLEAK=y -+CONFIG_DEBUG_MEMORY_INIT=y -+ -+# -+# Debug Lockups and Hangs -+# -+# CONFIG_PANIC_ON_OOPS is not set -+CONFIG_PANIC_ON_OOPS_VALUE=0 -+CONFIG_PANIC_TIMEOUT=0 -+# CONFIG_DEBUG_TIMEKEEPING is not set -+ -+# -+# Lock Debugging (spinlocks, mutexes, etc...) -+# -+# CONFIG_STACKTRACE is not set -+CONFIG_HAVE_DEBUG_BUGVERBOSE=y -+CONFIG_DEBUG_BUGVERBOSE=y -+ -+# -+# RCU Debugging -+# -+# CONFIG_PROVE_RCU is not set -+# CONFIG_SPARSE_RCU_POINTER is not set -+# CONFIG_TORTURE_TEST is not set -+CONFIG_HAVE_FUNCTION_TRACER=y -+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -+CONFIG_HAVE_DYNAMIC_FTRACE=y -+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -+CONFIG_TRACING_SUPPORT=y -+# CONFIG_FTRACE is not set -+ -+# -+# Runtime Testing -+# -+# CONFIG_ATOMIC64_SELFTEST is not set -+# CONFIG_TEST_HEXDUMP is not set -+# CONFIG_TEST_STRING_HELPERS is not set -+# CONFIG_TEST_KSTRTOX is not set -+# CONFIG_TEST_RHASHTABLE is not set -+# CONFIG_DMA_API_DEBUG is not set -+# CONFIG_TEST_FIRMWARE is not set -+# CONFIG_TEST_UDELAY is not set -+# CONFIG_MEMTEST is not set -+# CONFIG_SAMPLES is not set -+CONFIG_HAVE_ARCH_KGDB=y -+# CONFIG_SH_STANDARD_BIOS is not set -+# CONFIG_DWARF_UNWINDER is not set -+ -+# -+# Security options -+# -+# CONFIG_KEYS is not set -+# CONFIG_SECURITY_DMESG_RESTRICT is not set -+# CONFIG_SECURITY is not set -+# CONFIG_SECURITYFS is not set -+CONFIG_DEFAULT_SECURITY_DAC=y -+CONFIG_DEFAULT_SECURITY="" -+# CONFIG_CRYPTO is not set -+# CONFIG_BINARY_PRINTF is not set -+ -+# -+# Library routines -+# -+CONFIG_BITREVERSE=y -+# CONFIG_HAVE_ARCH_BITREVERSE is not set -+CONFIG_GENERIC_STRNCPY_FROM_USER=y -+CONFIG_GENERIC_STRNLEN_USER=y -+CONFIG_GENERIC_IO=y -+# CONFIG_CRC_CCITT is not set -+# CONFIG_CRC16 is not set -+# CONFIG_CRC_T10DIF is not set -+# CONFIG_CRC_ITU_T is not set -+CONFIG_CRC32=y -+# CONFIG_CRC32_SELFTEST is not set -+CONFIG_CRC32_SLICEBY8=y -+# CONFIG_CRC32_SLICEBY4 is not set -+# CONFIG_CRC32_SARWATE is not set -+# CONFIG_CRC32_BIT is not set -+# CONFIG_CRC7 is not set -+# CONFIG_LIBCRC32C is not set -+# CONFIG_CRC8 is not set -+# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set -+# CONFIG_RANDOM32_SELFTEST is not set -+# CONFIG_XZ_DEC is not set -+# CONFIG_XZ_DEC_BCJ is not set -+CONFIG_HAS_IOMEM=y -+CONFIG_HAS_DMA=y -+CONFIG_GENERIC_ATOMIC64=y -+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y -+# CONFIG_AVERAGE is not set -+# CONFIG_CORDIC is not set -+# CONFIG_DDR is not set -+# CONFIG_ARCH_HAS_SG_CHAIN is not set -diff -Nur linux-4.1.13.orig/arch/sh/include/asm/board-0pf.h linux-4.1.13/arch/sh/include/asm/board-0pf.h ---- linux-4.1.13.orig/arch/sh/include/asm/board-0pf.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.13/arch/sh/include/asm/board-0pf.h 2015-12-05 00:16:48.000000000 +0100 -@@ -0,0 +1,247 @@ -+#ifndef SGM_BOARD_H -+#define SGM_BOARD_H -+ -+#define sys_IntTable (*(unsigned*)0x0) -+#define sys_IntVectors 256 -+ -+/* Some of interrupt is fixed vector */ -+#define Irq_MRES 0x02 /* Manual reset */ -+#define Irq_CPUERR 0x09 -+#define Irq_DMAERR 0x0a -+#define Irq_NMI 0x0b -+#define Irq_PIT 0x10 /* 100 Hz PIT */ -+#define Irq_EMAC 0x11 /* irqs(0) */ -+#define Irq_UART0 0x12 /* irqs(1) */ -+#define Irq_GPS 0x13 /* irqs(2) */ -+#define Irq_Ext 0x14 /* irqs(3) use by CS42518*/ -+#define Irq_1PPS 0x16 /* irqs(5) */ -+#define Irq_UART1 0x17 /* irqs(6) */ -+#define Irq_I2C 0x18 /* irqs(7) */ -+#define Irq_TMR 0x19 /* a 12 bit countdown counter */ -+#define Irq_GPIO 0x15 -+ -+/* External interrupt IDs */ -+#define EIrqID_EMAC 0 -+#define EIrqID_UART0 1 -+#define EIrqID_GPS 2 -+#define EIrqID_Ext 3 -+#define EIrqID_GPIO 4 -+#define EIrqID_1PPS 5 -+#define EIrqID_UART1 6 -+#define EIrqID_I2C 7 -+ -+/* External Interrupt ID convert to interrupt vector */ -+#define ID2Vect(x) (0x11 + (x)) -+ -+/* Convert external interupt ID to priority value */ -+#define ID2Pri(id, pri) ((pri) << ((id) <<2)) -+ -+/* Convert vector to interrupt entry address */ -+#define Vect2Irq(x) ((x) << 2) -+ -+#define PIT_IRQ Vect2Irq(Irq_PIT) -+#define EMAC_IRQ Vect2Irq(Irq_EMAC) -+#define UART0_IRQ Vect2Irq(Irq_UART0) -+#define GPS_IRQ Vect2Irq(Irq_GPS) -+#define EXT_IRQ Vect2Irq(Irq_Ext) -+#define UART1_IRQ Vect2Irq(Irq_UART1) -+#define I2C_IRQ Vect2Irq(Irq_I2C) -+#define TMR_IRQ Vect2Irq(Irq_TMR) -+ -+ -+/* End of interrupt definations */ -+#define sys_RAM_BASE 0x10000000 -+#define sys_PIO_BASE 0xabcd0000 -+#define sys_SPI_BASE 0xabcd0040 -+#define sys_I2C_BASE 0xabcd0080 // 0xabcd0020 -+#define sys_UART0_BASE 0xabcd0100 -+#define sys_SYS_BASE 0xabcd0200 -+#define sys_UART1_BASE 0xabcd0300 -+#define sys_GPS_BASE 0xabcd0400 -+#define sys_D2A_BASE 0xabcd0500 -+#define sys_EMAC_BASE 0xabce0000 -+ -+#define AQ_PIO (*(volatile unsigned int *)sys_PIO_BASE) -+#define AQ_I2C (*(volatile unsigned int *)sys_I2C_BASE) -+#define AQ_SPI (*(volatile unsigned int *)sys_SPI_BASE) -+#define AQ_UART0 (*(volatile unsigned int *)sys_UART0_BASE) -+#define AQ_SYS (*(volatile unsigned int *)sys_SYS_BASE) -+#define AQ_UART1 (*(volatile unsigned int *)sys_UART1_BASE) -+#define AQ_GPS (*(volatile unsigned int *)sys_GPS_BASE) -+#define AQ_D2A (*(volatile unsigned int *)sys_D2A_BASE) -+#define AQ_EMAC (*(volatile unsigned int *)sys_EMAC_BASE) -+ -+ -+struct st_uart16550 -+{ -+ unsigned int RTX; -+ unsigned int IER; -+ unsigned int IIR; -+ unsigned int LCR; -+ unsigned int MCR; -+ unsigned int LSR; -+ unsigned int MSR; -+ unsigned int SCR; -+}; -+#define uLSRDR 0x01 -+#define uLSROE 0x02 -+#define uLSRPE 0x04 -+#define uLSRFE 0x08 -+#define uLSRBI 0x10 -+#define uLSRTHRE 0x20 -+#define uLSRTEMT 0x40 -+#define uLSRRFE 0x80 /* Error in Revr FIFO */ -+ -+#if 0 -+#define B115200 0x000a -+#define B38400 0x001e -+#define B19200 0x003c -+#define B9600 0x0078 -+#define B4800 0x00f0 -+#endif -+ -+/* the following is belong to sys_SYS_BASE */ -+#define Sys_IntCon 0x0 -+/* When SIC_BRKON is set, BreadAddress will compare with Bus address to generate NMI interrupt */ -+#define Sys_BRKADR 0x04 -+/* Interrupt priority is 4 bits width, irqs(0) is [3,0], irqs(1) is [7,4] ... */ -+#define Sys_IntPri 0x08 -+/* End of offset define of sys_SYS_BASE */ -+/* Refer to Aquarius datasheet Page 12, NMI is lvl16, and lvl0 will not be accept */ -+/* Refer to define.v, IBit in SR [7:4] */ -+#define SIC_ENMI ((unsigned int) 0x1<<31) /* Emulate NMI */ -+#define SIC EIRQ ((unsigned int) 0x1<<30) /* Emulate IRQ */ -+#define SIC_ECER ((unsigned int) 0x1<<29) /* Emulate CPU Address Error */ -+#define SIC_EDER ((unsigned int) 0x1<<28) /* Emulate DMA Address Error */ -+#define SIC_EMRS ((unsigned int) 0x1<<27) /* Emulate Manual Reset */ -+#define SIC_EPIT ((unsigned int) 0x1<<26) /* Enable Periodical interval timer(PIT) */ -+#define SIC_TMRON ((unsigned int) 0x1<<25) /* Enable timer */ -+#define SIC_BRKON ((unsigned int) 0x1<<24) /* Break ON */ -+#define SIC_ILVL ((unsigned int) 0xF<<20) /* interrupt level for PIT */ -+#define SIC_IVEC ((unsigned int) 0xFF<<12) /* Interrupt Vector for PIT */ -+#define SIC_TMR ((unsigned int)0xFFF) /* Interval Timer when 0x0, it request IRQ*/ -+ -+/* PIO registers offset */ -+#define Poffset_IO 0x00 -+#define Poffset_imask 0x04 -+#define Poffset_redge 0x08 -+#define Poffset_changes 0x0c -+ -+/* Keys are connected to Parallel Input, Active low */ -+#define Pio_KeyEnter 0x0001 -+#define Pio_KeyESC 0x0002 -+#define Pio_KeyNorth 0x0020 -+#define Pio_KeyEast 0x0040 -+#define Pio_KeySouth 0x0080 -+#define Pio_KeyWest 0x0100 -+ -+/* SD_CD is active high of this bit */ -+#define Pio_SD_CD 0x00200000 -+ -+#define Pio_1PPS 0x00800000 -+ -+/* IMPORTANT!!! Pio_LEDPwr is connected with with reset pins of USB, ETH-PHY -+ * and GPS. DON'T CHANGE IT or use it for now!!! -+ * TODO: VHDL needs to fix Power LED to other location with set and reset feature -+ */ -+#define Pio_LEDPwr 0x0010 -+#define Pio_LEDErr 0x0020 -+#define Pio_TP70 0x0040 -+ -+#if 0 -+ #define I2c_busy 0x8000 -+ #define I2c_next 0x4000 -+ #define I2c_ack 0x2000 -+ #define I2c_timeout 0x1000 -+ #define I2c_timer 0x0800 -+ #define I2c_mask 0xf800 -+#else -+ #define I2cO_ctrl 0x00 -+ #define I2cO_slen 0x04 -+ #define I2cO_word 0x0C -+ -+ /* for I2cO_ctrl */ -+ #define I2cC_busy 0x01 -+ #define I2cC_timeout 0x02 -+ #define I2cC_complete 0x04 -+ #define I2cC_reset 0x08 -+ #define I2cC_run 0x10 -+ #define I2cC_irqen 0x20 -+ #define I2cC_clk 0x40 -+ #define I2cC_dat 0x80 -+ #define I2cC_MaskDelay 0xff00 -+ #define I2c_delay(x) ((x)<< 8) -+ #define I2cC_MaskAckTimeout 0xf0000 -+ #define I2c_timeout(x) ((x) << 16) -+ /* for I2cO_slen */ -+ #define I2cS_MaskXlen 0x1f -+ #define I2cS_MaxLen 16 -+ #define I2cS_MaskSpeed 0x30000 -+ #define I2cS_100k 0x0 -+ #define I2cS_400k 0x10000 -+ #define I2cS_1m 0x20000 -+ #define I2cS_3m4 0x30000 -+ #define I2cS_Maskwordcount 0xf80000 -+#endif -+ -+/***********************************************************/ -+/************************************ EMAC **************/ -+/***********************************************************/ -+ -+#define AQ_EMAC_BASE 0xABCE0000 -+#define AQ_EMAC_CONTROL 0xABCE0000 -+#define AQ_EMAC_STATUS 0xABCE0000 -+ -+/* Control bits */ -+#define AQ_EMAC_ENABLE_RX 0x00000002 -+#define AQ_EMAC_ENABLE_TX 0x00000004 -+#define AQ_EMAC_READ 0x00000010 -+#define AQ_EMAC_ENABLE_INT_RX 0x00000020 -+#define AQ_EMAC_ENABLE_INT_TX 0x00000040 -+ -+/* Status bits */ -+#define AQ_EMAC_TX_BUSY 0x00000004 -+#define AQ_EMAC_COMPLETE 0x00000100 -+#define AQ_EMAC_CRC 0x00000200 -+ -+#define AQ_EMAC_TX_LEN 0xABCE0004 -+#define AQ_EMAC_MACL 0xABCE0008 -+#define AQ_EMAC_MACH 0xABCE000C -+#define AQ_EMAC_RX_BUF 0xABCE1000 -+#define AQ_EMAC_TX_BUF 0xABCE1800 -+ -+#define Emac_Rbuf 0x1000 -+#define Emac_Xbuf 0x1800 -+#define Emac_Ctrl 0x0000 -+#define Emac_xlen 0x0004 -+#define Emac_MACL 0x0008 -+#define Emac_MACH 0x000c -+#define ECtrl_RecvEnable 0x2 /* Receive enable */ -+#define ECtrl_Xmit 0x4 /* Read: Transmit busy(1); Write: Start transmit(1) */ -+#define ECtrl_MACReset 0x8 /* Reset MAC address */ -+#define ECtrl_Read 0x10 /* complete read from Receive FIFO */ -+#define ECtrl_RIntEnable 0x20 /* Receive interrupt enable(1) */ -+#define ECtrl_XIntEnable 0x40 /* Transmit interrupt enable(1) */ -+#define ECtrl_PROM 0x80 /* Promiscuous Mode enable(1)/disable(0) */ -+#define ECtrl_Complete 0x100 /* Receive packet waiting in FIFO */ -+#define ECtrl_CRC 0x200 /* Receive packet has CRC error */ -+#define ECtrl_getrxlen(x) ((x) >> 16) /* Length of received package, when ECtrl_Complete is set */ -+ -+#define Spi_Ctrl 0x0 -+#define Spi_Data 0x4 -+#define SpiCtrl_ACS 0x01 /* chipselect for applcation data */ -+#define SpiCtrl_CCS 0x04 /* chipselect for FPGA configure */ -+#define SpiCtrl_DCS 0x10 /* chipselect for D2A or extra SPI device */ -+#define SpiCtrl_setDiv(x) ((x) << 27) /* Div contrl SPI_CK = 12.5/(div + 1), Min: 400KHz for now*/ -+#define SpiCtrl_Xmit 0x02 -+#define SpiCtrl_Busy 0x02 -+#define SpiCtrl_Loop 0x08 /* When it assert, mosi will connect to miso */ -+/* by default SPI run at 12.5 MHz,maxium speed for Spartan 3E, for SPI Flash -+ * We need a DDS delay for different devices -+ */ -+ -+#define SHJ_PIT_PMR 0xABCD0210 -+#define SHJ_PIT_PCNTR 0xABCD0214 -+#define SHJ_NSEC_PER_CLOCK 0xABCD0218 -+ -+#endif -diff -Nur linux-4.1.13.orig/arch/sh/include/asm/processor.h linux-4.1.13/arch/sh/include/asm/processor.h ---- linux-4.1.13.orig/arch/sh/include/asm/processor.h 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/include/asm/processor.h 2015-12-05 00:16:49.000000000 +0100 -@@ -15,7 +15,7 @@ - */ - enum cpu_type { - /* SH-2 types */ -- CPU_SH7619, -+ CPU_SH7619, CPU_0PF, - - /* SH-2A types */ - CPU_SH7201, CPU_SH7203, CPU_SH7206, CPU_SH7263, CPU_SH7264, CPU_SH7269, -diff -Nur linux-4.1.13.orig/arch/sh/include/cpu-sh2/cpu/cache.h linux-4.1.13/arch/sh/include/cpu-sh2/cpu/cache.h ---- linux-4.1.13.orig/arch/sh/include/cpu-sh2/cpu/cache.h 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/include/cpu-sh2/cpu/cache.h 2015-12-05 00:16:49.000000000 +0100 -@@ -38,6 +38,10 @@ - #define CCR_CACHE_INVALIDATE CCR_CACHE_CF - #define CACHE_PHYSADDR_MASK 0x1ffffc00 - -+#elif defined(CONFIG_CPU_SUBTYPE_0PF) -+#define CCR 0xabcd00c0 -+#define CCR_CACHE_ENABLE 0x80000000 -+#define CCR_CACHE_RESET 0x101 - #endif - - #endif /* __ASM_CPU_SH2_CACHE_H */ -diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/init.c linux-4.1.13/arch/sh/kernel/cpu/init.c ---- linux-4.1.13.orig/arch/sh/kernel/cpu/init.c 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/kernel/cpu/init.c 2015-12-05 00:16:49.000000000 +0100 -@@ -106,7 +106,7 @@ - /* - * Generic first-level cache init - */ --#ifdef CONFIG_SUPERH32 -+#if defined(CONFIG_SUPERH32) && !defined(CONFIG_CPU_SUBTYPE_0PF) - static void cache_init(void) - { - unsigned long ccr, flags; -diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/proc.c linux-4.1.13/arch/sh/kernel/cpu/proc.c ---- linux-4.1.13.orig/arch/sh/kernel/cpu/proc.c 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/kernel/cpu/proc.c 2015-12-05 00:16:49.000000000 +0100 -@@ -26,6 +26,7 @@ - [CPU_SH5_101] = "SH5-101", [CPU_SH5_103] = "SH5-103", - [CPU_MXG] = "MX-G", [CPU_SH7723] = "SH7723", - [CPU_SH7366] = "SH7366", [CPU_SH7724] = "SH7724", -+ [CPU_0PF] = "SH2J-0PF", - [CPU_SH7372] = "SH7372", [CPU_SH7734] = "SH7734", - [CPU_SH_NONE] = "Unknown" - }; -diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/Makefile linux-4.1.13/arch/sh/kernel/cpu/sh2/Makefile ---- linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/Makefile 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/kernel/cpu/sh2/Makefile 2015-12-05 00:16:49.000000000 +0100 -@@ -5,3 +5,4 @@ - obj-y := ex.o probe.o entry.o - - obj-$(CONFIG_CPU_SUBTYPE_SH7619) += setup-sh7619.o clock-sh7619.o -+obj-$(CONFIG_CPU_SUBTYPE_0PF) += setup-0pf.o clock-0pf.o -diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/clock-0pf.c linux-4.1.13/arch/sh/kernel/cpu/sh2/clock-0pf.c ---- linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/clock-0pf.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.13/arch/sh/kernel/cpu/sh2/clock-0pf.c 2015-12-05 00:16:48.000000000 +0100 -@@ -0,0 +1,80 @@ -+/* -+ * arch/sh/kernel/cpu/sh2/clock-0pf.c -+ * -+ * 0PF FPGA support for the clock framework -+ * -+ * Copyright (C) 2012 SEI, Inc. -+ * -+ * Based on clock-sh4.c -+ * Copyright (C) 2005 Paul Mundt -+ * Copyright (C) 2009 D. Jeff Dionne -+ * -+ * This file is subject to the terms and conditions of the GNU General Public -+ * License. See the file "COPYING" in the main directory of this archive -+ * for more details. -+ */ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+static void master_clk_init(struct clk *clk) -+{ -+ clk->rate = CONFIG_SH_PCLK_FREQ; /* Fixed Rate */ -+} -+ -+static struct sh_clk_ops shj_master_clk_ops = { -+ .init = master_clk_init, -+}; -+ -+static unsigned long module_clk_recalc(struct clk *clk) -+{ -+ return clk->parent->rate; -+} -+ -+static struct sh_clk_ops shj_module_clk_ops = { -+ .recalc = module_clk_recalc, -+}; -+ -+static unsigned long bus_clk_recalc(struct clk *clk) -+{ -+ return clk->parent->rate; -+} -+ -+static struct sh_clk_ops shj_bus_clk_ops = { -+ .recalc = bus_clk_recalc, -+}; -+ -+static struct sh_clk_ops shj_cpu_clk_ops = { -+ .recalc = followparent_recalc, -+}; -+ -+static struct sh_clk_ops *shj_clk_ops[] = { -+ &shj_master_clk_ops, -+ &shj_module_clk_ops, -+ &shj_bus_clk_ops, -+ &shj_cpu_clk_ops, -+}; -+ -+void __init arch_init_clk_ops(struct sh_clk_ops **ops, int idx) -+{ -+ if (idx < ARRAY_SIZE(shj_clk_ops)) -+ *ops = shj_clk_ops[idx]; -+} -+ -+int __init arch_clk_init() -+{ -+ int ret; -+ -+ printk("%s(): 0PF Clock init...\n", __func__); -+ -+ ret = cpg_clk_init(); /* appease Over-engineered "clock infrastructure" */ -+ -+ return ret; -+} -diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/entry.S linux-4.1.13/arch/sh/kernel/cpu/sh2/entry.S ---- linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/entry.S 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/kernel/cpu/sh2/entry.S 2015-12-05 00:16:49.000000000 +0100 -@@ -3,6 +3,7 @@ - * - * The SH-2 exception entry - * -+ * Copyright (C) 2012 SEI,Inc. - * Copyright (C) 2005-2008 Yoshinori Sato - * Copyright (C) 2005 AXE,Inc. - * -@@ -147,7 +148,11 @@ - mov #32,r8 - cmp/hs r8,r9 - bt trap_entry ! 64 > vec >= 32 is trap -- -+#if defined(CONFIG_CPU_SUBTYPE_0PF) -+ mov #16,r8 -+ cmp/hs r8,r9 -+ bt interrupt_entry ! 32 > vec >= 16 is interrupt -+#endif - mov.l 4f,r8 - mov r9,r4 - shll2 r9 -@@ -245,6 +250,19 @@ - .align 2 - 1: .long do_address_error - -+#if defined(CONFIG_CPU_SUBTYPE_0PF) -+ENTRY(pc_address_error_trap_handler) -+ mov r15,r4 ! regs -+ mov #OFF_PC,r0 -+ mov.l @(r0,r15),r6 ! pc -+ mov.l 1f,r0 -+ jmp @r0 -+ mov #0,r5 ! writeaccess is unknown -+ -+ .align 2 -+1: .long do_pc_address_error -+#endif // CONFIG_CPU_SUBTYPE_0PF -+ - restore_all: - stc sr,r0 - or #0xf0,r0 -diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/probe.c linux-4.1.13/arch/sh/kernel/cpu/sh2/probe.c ---- linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/probe.c 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/kernel/cpu/sh2/probe.c 2015-12-05 00:16:49.000000000 +0100 -@@ -24,6 +24,12 @@ - boot_cpu_data.dcache.linesz = L1_CACHE_BYTES; - boot_cpu_data.dcache.flags = 0; - #endif -+ -+#if defined(CONFIG_CPU_SUBTYPE_0PF) -+ boot_cpu_data.type = CPU_0PF; -+ boot_cpu_data.dcache.flags = 0; -+#endif -+ - /* - * SH-2 doesn't have separate caches - */ -diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/setup-0pf.c linux-4.1.13/arch/sh/kernel/cpu/sh2/setup-0pf.c ---- linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/setup-0pf.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.1.13/arch/sh/kernel/cpu/sh2/setup-0pf.c 2015-12-05 00:16:48.000000000 +0100 -@@ -0,0 +1,82 @@ -+/* -+ * 0PF-FPGA Setup -+ * -+ * Copyright (C) 2006 Yoshinori Sato -+ * Copyright (C) 2009 Paul Mundt -+ * Copyright (C) 2009 D. Jeff Dionne -+ * Copyright (C) 2012 SEI, Inc. -+ * by Oleksandr Zhadan -+ * -+ * This file is subject to the terms and conditions of the GNU General Public -+ * License. See the file "COPYING" in the main directory of this archive -+ * for more details. -+ */ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#if defined(CONFIG_SERIAL_UARTLITE_0PF) -+static struct resource shj_uartlite_resources[] = { -+ [0] = DEFINE_RES_MEM(0xABCD0100, 16), -+ [1] = DEFINE_RES_IRQ(0x12), -+ -+ [2] = DEFINE_RES_MEM(0xABCD0300, 16), -+ [3] = DEFINE_RES_IRQ(0x17), -+ -+ [4] = DEFINE_RES_MEM(0xABCD0400, 16), -+ [5] = DEFINE_RES_IRQ(0x13), -+}; -+ -+static struct platform_device shj_uartlite_device[] = { -+ [0] = { .name = "uartlite", .id = 0 }, -+ [1] = { .name = "uartlite", .id = 1 }, -+ [2] = { .name = "uartlite", .id = 2 }, -+}; -+#endif -+ -+/***************************************************************************** -+ * 0PF FPGA platform devices -+ ****************************************************************************/ -+static struct platform_device *shj_devices[] __initdata = { -+#if defined(CONFIG_SERIAL_UARTLITE_0PF) -+ shj_uartlite_device, -+ shj_uartlite_device + 1, -+ shj_uartlite_device + 2, -+#endif -+}; -+ -+static int __init shj_devices_setup(void) -+{ -+ int i; -+ pr_info("%s(): registering device resources\n", __func__); -+ -+#if defined(CONFIG_SERIAL_UARTLITE_0PF) -+ for (i = 0; i < ARRAY_SIZE(shj_uartlite_device); i++) { -+ printk("Register UARTLITE resources %d\n", i); -+ if (platform_device_add_resources( -+ shj_uartlite_device + i, -+ shj_uartlite_resources + 2 * i, -+ 2)) -+ pr_err("Failed to set uartlite %d IRQ and MEM\n", i); -+ -+ } -+#endif -+ platform_add_devices(shj_devices, ARRAY_SIZE(shj_devices)); -+ -+ return 0; -+} -+ -+arch_initcall(shj_devices_setup); -+ -+void __init native_machine_early_platform_add_devices(void) -+{ -+} -+ -+void __init plat_irq_setup(void) -+{ -+} -diff -Nur linux-4.1.13.orig/arch/sh/kernel/irq.c linux-4.1.13/arch/sh/kernel/irq.c ---- linux-4.1.13.orig/arch/sh/kernel/irq.c 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/kernel/irq.c 2015-12-05 00:16:49.000000000 +0100 -@@ -20,6 +20,8 @@ - #include - #include - -+#include -+ - atomic_t irq_err_count; - - /* -@@ -175,11 +177,24 @@ - ); - } - #else -+#define noinline __attribute__((noinline)) -+static noinline void handle_irq_UART0(unsigned int irq) { generic_handle_irq(irq); } -+static noinline void handle_irq_UART1(unsigned int irq) { generic_handle_irq(irq); } -+static noinline void handle_irq_GPS(unsigned int irq) { generic_handle_irq(irq); } -+static noinline void handle_irq_EMAC(unsigned int irq) { generic_handle_irq(irq); } - static inline void handle_one_irq(unsigned int irq) - { -- generic_handle_irq(irq); -+ switch(irq) { -+ case Irq_UART0: handle_irq_UART0(irq); break; -+ case Irq_UART1: handle_irq_UART1(irq); break; -+ case Irq_GPS: handle_irq_GPS(irq); break; -+ case Irq_EMAC: handle_irq_EMAC(irq); break; -+ default: -+ generic_handle_irq(irq); -+ break; -+ } - } --#endif -+#endif // CONFIG_IRQSTACKS - - asmlinkage __irq_entry int do_IRQ(unsigned int irq, struct pt_regs *regs) - { -diff -Nur linux-4.1.13.orig/arch/sh/kernel/traps_32.c linux-4.1.13/arch/sh/kernel/traps_32.c ---- linux-4.1.13.orig/arch/sh/kernel/traps_32.c 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/kernel/traps_32.c 2015-12-05 00:16:49.000000000 +0100 -@@ -34,6 +34,7 @@ - #ifdef CONFIG_CPU_SH2 - # define TRAP_RESERVED_INST 4 - # define TRAP_ILLEGAL_SLOT_INST 6 -+# define TRAP_PC_ADDRESS_ERROR 8 // Aug 20, 2012 ulianov - SEI extension - PC governor - # define TRAP_ADDRESS_ERROR 9 - # ifdef CONFIG_CPU_SH2A - # define TRAP_UBC 12 -@@ -458,6 +459,14 @@ - return ret; - } - -+#if defined(CONFIG_CPU_SUBTYPE_0PF) -+asmlinkage void do_pc_address_error(struct pt_regs *regs, -+ unsigned long writeaccess, -+ unsigned long address) -+{ -+} -+#endif // CONFIG_CPU_SUBTYPE_0PF -+ - /* - * Handle various address error exceptions: - * - instruction address error: -@@ -779,6 +788,9 @@ - #endif - - #ifdef CONFIG_CPU_SH2 -+ #if defined(CONFIG_CPU_SUBTYPE_0PF) -+ set_exception_table_vec(TRAP_PC_ADDRESS_ERROR, address_error_trap_handler); -+ #endif - set_exception_table_vec(TRAP_ADDRESS_ERROR, address_error_trap_handler); - #endif - #ifdef CONFIG_CPU_SH2A -diff -Nur linux-4.1.13.orig/arch/sh/mm/cache-sh2.c linux-4.1.13/arch/sh/mm/cache-sh2.c ---- linux-4.1.13.orig/arch/sh/mm/cache-sh2.c 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/mm/cache-sh2.c 2015-12-05 00:16:49.000000000 +0100 -@@ -3,6 +3,7 @@ - * - * Copyright (C) 2002 Paul Mundt - * Copyright (C) 2008 Yoshinori Sato -+ * Copyright (C) 2012 SEI, Inc. - * - * Released under the terms of the GNU GPL v2.0. - */ -@@ -16,6 +17,30 @@ - #include - #include - -+#if defined(CONFIG_CPU_SUBTYPE_0PF) -+ -+// Just flush the whole thing each time -+static void j2_flush_icache_range(void *fwoosh) -+{ -+ __raw_writel(CCR_CACHE_RESET, CCR); -+} -+ -+// This should never happen, but... -+static void j2_flush_icache_page(void *fwoosh) -+{ -+ __raw_writel(CCR_CACHE_RESET, CCR); -+} -+ -+void __init sh2_cache_init(void) -+{ -+ local_flush_icache_range = j2_flush_icache_range; -+ local_flush_icache_page = j2_flush_icache_page; -+ boot_cpu_data.dcache.n_aliases = 0; -+ -+ __raw_writel(CCR_CACHE_RESET, CCR); -+} -+ -+#else - static void sh2__flush_wback_region(void *start, int size) - { - unsigned long v; -@@ -89,3 +114,4 @@ - __flush_purge_region = sh2__flush_purge_region; - __flush_invalidate_region = sh2__flush_invalidate_region; - } -+#endif -diff -Nur linux-4.1.13.orig/arch/sh/mm/cache.c linux-4.1.13/arch/sh/mm/cache.c ---- linux-4.1.13.orig/arch/sh/mm/cache.c 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/mm/cache.c 2015-12-05 00:16:49.000000000 +0100 -@@ -258,14 +258,16 @@ - boot_cpu_data.icache.entry_mask, - boot_cpu_data.icache.alias_mask, - boot_cpu_data.icache.n_aliases); -- printk(KERN_NOTICE "D-cache : n_ways=%d n_sets=%d way_incr=%d\n", -- boot_cpu_data.dcache.ways, -- boot_cpu_data.dcache.sets, -- boot_cpu_data.dcache.way_incr); -- printk(KERN_NOTICE "D-cache : entry_mask=0x%08x alias_mask=0x%08x n_aliases=%d\n", -- boot_cpu_data.dcache.entry_mask, -- boot_cpu_data.dcache.alias_mask, -- boot_cpu_data.dcache.n_aliases); -+ if (boot_cpu_data.dcache.n_aliases) { -+ printk(KERN_NOTICE "D-cache : n_ways=%d n_sets=%d way_incr=%d\n", -+ boot_cpu_data.dcache.ways, -+ boot_cpu_data.dcache.sets, -+ boot_cpu_data.dcache.way_incr); -+ printk(KERN_NOTICE "D-cache : entry_mask=0x%08x alias_mask=0x%08x n_aliases=%d\n", -+ boot_cpu_data.dcache.entry_mask, -+ boot_cpu_data.dcache.alias_mask, -+ boot_cpu_data.dcache.n_aliases); -+ } - - /* - * Emit Secondary Cache parameters if the CPU has a probed L2. -diff -Nur linux-4.1.13.orig/drivers/tty/serial/Kconfig linux-4.1.13/drivers/tty/serial/Kconfig ---- linux-4.1.13.orig/drivers/tty/serial/Kconfig 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/drivers/tty/serial/Kconfig 2015-12-05 00:16:49.000000000 +0100 -@@ -594,7 +594,7 @@ - - config SERIAL_UARTLITE - tristate "Xilinx uartlite serial port support" -- depends on PPC32 || MICROBLAZE || MFD_TIMBERDALE || ARCH_ZYNQ -+ depends on PPC32 || MICROBLAZE || MFD_TIMBERDALE || ARCH_ZYNQ || CPU_SUBTYPE_0PF - select SERIAL_CORE - help - Say Y here if you want to use the Xilinx uartlite serial controller. -@@ -611,6 +611,12 @@ - console (the system console is the device which receives all kernel - messages and warnings and which allows logins in single user mode). - -+config SERIAL_UARTLITE_0PF -+ tristate "Support 0PF UARTLITEs" -+ depends on SERIAL_UARTLITE = y && CPU_SUBTYPE_0PF -+ help -+ Say Y here to set up 0PF's UARTLITEs. -+ - config SERIAL_SUNCORE - bool - depends on SPARC diff --git a/target/linux/patches/4.1.13/use-libgcc-for-sh.patch b/target/linux/patches/4.1.13/use-libgcc-for-sh.patch deleted file mode 100644 index 6420219b0..000000000 --- a/target/linux/patches/4.1.13/use-libgcc-for-sh.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff -Nur linux-4.1.13.orig/arch/sh/Makefile linux-4.1.13/arch/sh/Makefile ---- linux-4.1.13.orig/arch/sh/Makefile 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/Makefile 2015-12-06 19:59:31.000000000 +0100 -@@ -200,7 +206,9 @@ - KBUILD_CFLAGS += -fasynchronous-unwind-tables - endif - --libs-$(CONFIG_SUPERH32) := arch/sh/lib/ $(libs-y) -+LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-file-name=libgcc.a) -+ -+libs-$(CONFIG_SUPERH32) := arch/sh/lib/ $(libs-y) $(LIBGCC) - libs-$(CONFIG_SUPERH64) := arch/sh/lib64/ $(libs-y) - - BOOT_TARGETS = uImage uImage.bz2 uImage.gz uImage.lzma uImage.xz uImage.lzo \ -diff -Nur linux-4.1.13.orig/arch/sh/lib/Makefile linux-4.1.13/arch/sh/lib/Makefile ---- linux-4.1.13.orig/arch/sh/lib/Makefile 2015-11-09 23:34:10.000000000 +0100 -+++ linux-4.1.13/arch/sh/lib/Makefile 2015-12-06 19:59:14.000000000 +0100 -@@ -5,11 +5,6 @@ - lib-y = delay.o memmove.o memchr.o \ - checksum.o strlen.o div64.o div64-generic.o - --# Extracted from libgcc --obj-y += movmem.o ashldi3.o ashrdi3.o lshrdi3.o \ -- ashlsi3.o ashrsi3.o ashiftrt.o lshrsi3.o \ -- udiv_qrnnd.o -- - udivsi3-y := udivsi3_i4i-Os.o - - ifneq ($(CONFIG_CC_OPTIMIZE_FOR_SIZE),y) diff --git a/target/linux/patches/4.1.15/j2-core.patch b/target/linux/patches/4.1.15/j2-core.patch new file mode 100644 index 000000000..38136df2c --- /dev/null +++ b/target/linux/patches/4.1.15/j2-core.patch @@ -0,0 +1,2060 @@ +diff -Nur linux-4.1.13.orig/arch/sh/Kconfig linux-4.1.13/arch/sh/Kconfig +--- linux-4.1.13.orig/arch/sh/Kconfig 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/Kconfig 2015-12-05 00:16:48.000000000 +0100 +@@ -66,7 +66,7 @@ + select HAVE_MIXED_BREAKPOINTS_REGS + select PERF_EVENTS + select ARCH_HIBERNATION_POSSIBLE if MMU +- select SPARSE_IRQ ++ select SPARSE_IRQ if !CPU_SUBTYPE_0PF + select HAVE_CC_STACKPROTECTOR + + config SUPERH64 +@@ -108,6 +108,9 @@ + config ARCH_HIBERNATION_POSSIBLE + def_bool n + ++config ARCH_USES_GETTIMEOFFSET ++ def_bool n ++ + config SYS_SUPPORTS_APM_EMULATION + bool + select ARCH_SUSPEND_POSSIBLE +@@ -184,6 +187,11 @@ + select CPU_SH2 + select UNCACHED_MAPPING + ++config CPU_SH2J ++ bool ++ select CPU_SH2 ++ select ARCH_USES_GETTIMEOFFSET ++ + config CPU_SH3 + bool + select CPU_HAS_INTEVT +@@ -303,6 +311,12 @@ + help + Select MX-G if running on an R8A03022BG part. + ++# SH-2J Processor Support ++ ++config CPU_SUBTYPE_0PF ++ bool "Support 0PF J2 SoftCore" ++ select CPU_SH2J ++ + # SH-3 Processor Support + + config CPU_SUBTYPE_SH7705 +@@ -753,6 +767,7 @@ + SH_7751_SOLUTION_ENGINE + default "0x00004000" if PAGE_SIZE_16KB || SH_SH03 + default "0x00002000" if PAGE_SIZE_8KB ++ default "0x0003F000" if CPU_SUBTYPE_0PF + default "0x00001000" + help + This sets the default offset of zero page. +diff -Nur linux-4.1.13.orig/arch/sh/Makefile linux-4.1.13/arch/sh/Makefile +--- linux-4.1.13.orig/arch/sh/Makefile 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/Makefile 2015-12-05 00:16:48.000000000 +0100 +@@ -4,6 +4,7 @@ + # Copyright (C) 1999 Kaz Kojima + # Copyright (C) 2002 - 2008 Paul Mundt + # Copyright (C) 2002 M. R. Brown ++# Copyright (C) 2012 SEI, Inc. (sh2j) + # + # This file is subject to the terms and conditions of the GNU General Public + # License. See the file "COPYING" in the main directory of this archive +@@ -19,6 +20,7 @@ + isa-$(CONFIG_SH_DSP) := sh + isa-$(CONFIG_CPU_SH2) := sh2 + isa-$(CONFIG_CPU_SH2A) := sh2a ++isa-$(CONFIG_CPU_SH2J) := sh2j + isa-$(CONFIG_CPU_SH3) := sh3 + isa-$(CONFIG_CPU_SH4) := sh4 + isa-$(CONFIG_CPU_SH4A) := sh4a +@@ -31,6 +33,8 @@ + endif + + cflags-$(CONFIG_CPU_SH2) := $(call cc-option,-m2,) ++cflags-$(CONFIG_CPU_SH2J) := $(call cc-option,-m2,) \ ++ $(call cc-option,-melf,) + cflags-$(CONFIG_CPU_SH2A) += $(call cc-option,-m2a,) \ + $(call cc-option,-m2a-nofpu,) \ + $(call cc-option,-m4-nofpu,) +@@ -91,6 +95,7 @@ + defaultimage-$(CONFIG_SH_7724_SOLUTION_ENGINE) := uImage + defaultimage-$(CONFIG_SH_7206_SOLUTION_ENGINE) := vmlinux + defaultimage-$(CONFIG_SH_7619_SOLUTION_ENGINE) := vmlinux ++defaultimage-$(CONFIG_SH_0PF) := vmlinux + + # Set some sensible Kbuild defaults + KBUILD_IMAGE := $(defaultimage-y) +@@ -173,6 +178,7 @@ + # As an example, in order of preference, SH-2A > SH-2 > common definitions. + # + cpuincdir-$(CONFIG_CPU_SH2A) += cpu-sh2a ++cpuincdir-$(CONFIG_CPU_SH2J) += cpu-sh2j + cpuincdir-$(CONFIG_CPU_SH2) += cpu-sh2 + cpuincdir-$(CONFIG_CPU_SH3) += cpu-sh3 + cpuincdir-$(CONFIG_CPU_SH4A) += cpu-sh4a +diff -Nur linux-4.1.13.orig/arch/sh/boards/Kconfig linux-4.1.13/arch/sh/boards/Kconfig +--- linux-4.1.13.orig/arch/sh/boards/Kconfig 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/boards/Kconfig 2015-12-05 00:16:48.000000000 +0100 +@@ -90,6 +90,13 @@ + Select 7343 SolutionEngine if configuring for a Hitachi + SH7343 (SH-Mobile 3AS) evaluation board. + ++config 0PF_FPGA ++ bool "0PF FPGA" ++ depends on CPU_SUBTYPE_0PF ++ help ++ Select 0PF_FPGA if you are configuring for an FPGA with ++ the SH2j-workalike SoftCore from http://0pf.org ++ + config SH_HP6XX + bool "HP6XX" + select SYS_SUPPORTS_APM_EMULATION +diff -Nur linux-4.1.13.orig/arch/sh/boards/Makefile linux-4.1.13/arch/sh/boards/Makefile +--- linux-4.1.13.orig/arch/sh/boards/Makefile 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/boards/Makefile 2015-12-05 00:16:48.000000000 +0100 +@@ -15,3 +15,4 @@ + obj-$(CONFIG_SH_SH7757LCR) += board-sh7757lcr.o + obj-$(CONFIG_SH_APSH4A3A) += board-apsh4a3a.o + obj-$(CONFIG_SH_APSH4AD0A) += board-apsh4ad0a.o ++obj-$(CONFIG_0PF_FPGA) += board-0pf.o +diff -Nur linux-4.1.13.orig/arch/sh/boards/board-0pf.c linux-4.1.13/arch/sh/boards/board-0pf.c +--- linux-4.1.13.orig/arch/sh/boards/board-0pf.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.13/arch/sh/boards/board-0pf.c 2015-12-05 00:16:48.000000000 +0100 +@@ -0,0 +1,270 @@ ++/* ++ * board-0pf.c ++ * ++ * Copyright (C) 2006 Yoshinori Sato ++ * Copyright (C) 2009 D. Jeff Dionne ++ * ++ * 0PF j-series CPU on FPGA ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int shj_irq_demux(int irq) ++{ ++ return irq; /* punt.. */ ++} ++ ++static void shj_ack_noop(struct irq_data *data) ++{ ++ asm("nop;nop"); ++ /* Dummy function. */ ++} ++ ++static inline void shj_enable_irq(struct irq_data *data) ++{ ++ unsigned int irq = data->irq; ++ volatile unsigned int vui; ++ ++// printk("%s: IRQ %d (0x%x)\n", __func__, irq, irq); ++ ++ switch (irq) { ++ case PIT_IRQ: ++ //AQ_PIO = 0x0BB; ++ /* enable, lvl 2, vector 64 */ ++ AQ_SYS = (1 << 26) | /* enable PIT */ ++ (0x02 << 20) | /* interrupt level 2 */ ++ (PIT_IRQ << 12) | /* vector 64 */ ++ 1; /* turn off interval timer */ ++ break; ++ ++ case Irq_UART0: ++ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); ++ vui &= ~ID2Pri(EIrqID_UART0, 0xf); /* clear old setting */ ++ vui |= ID2Pri(EIrqID_UART0, 0x7); /* set interrupt level */ ++ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; ++ break; ++ ++ case Irq_UART1: ++ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); ++ vui &= ~ID2Pri(EIrqID_UART1, 0xf); /* clear old setting */ ++ vui |= ID2Pri(EIrqID_UART1, 0x7); /* set interrupt level */ ++ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; ++ break; ++ ++ case Irq_GPS: ++ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); ++ vui &= ~ID2Pri(EIrqID_GPS, 0xf); /* clear old setting */ ++ vui |= ID2Pri(EIrqID_GPS, 0x7); /* set interrupt level */ ++ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; ++ break; ++ ++ case Irq_I2C: ++ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); ++ vui &= ~ID2Pri(EIrqID_I2C, 0xf); /* clear old setting */ ++ vui |= ID2Pri(EIrqID_I2C, 0x7); /* set interrupt level */ ++ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; ++ break; ++ ++ case Irq_EMAC: ++ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); ++ vui &= ~ID2Pri(EIrqID_EMAC, 0xf); /* clear old setting */ ++ vui |= ID2Pri(EIrqID_EMAC, 0x8); /* set interrupt level */ ++ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; ++ printk("EMAC prio is: %x\n", vui); ++ break; ++ ++ case Irq_GPIO: ++ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); ++ vui &= ~ID2Pri(EIrqID_GPIO, 0xf); /* clear old setting */ ++ vui |= ID2Pri(EIrqID_GPIO, 0x7); /* set interrupt level */ ++ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; ++ break; ++ ++ case Irq_1PPS: // prio is higher for 1PPS porposes ++ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); ++ vui &= ~ID2Pri(EIrqID_1PPS, 0xf); /* clear old setting */ ++ vui |= ID2Pri(EIrqID_1PPS, 0x9); /* set interrupt level */ ++ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; ++ printk("1PPS prio is: %x\n", vui); ++ break; ++ ++ default: ++ break; ++ ++ } ++} ++ ++static inline void shj_disable_irq(struct irq_data *data) ++{ ++ volatile unsigned int vui; ++ unsigned int irq = data->irq; ++ ++ printk("%s: IRQ %d\n", __func__, irq); ++ ++ switch (irq) { ++ case PIT_IRQ: ++ /* enable, lvl 2, vector 64 */ ++ AQ_SYS = (0 << 26) | /* disable PIT */ ++ (0x02 << 20) | /* interrupt level 2 */ ++ (PIT_IRQ << 12) | /* vector 64 */ ++ 1; /* turn off interval timer */ ++ break; ++ ++ case Irq_UART0: ++ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); ++ vui &= ~ID2Pri(EIrqID_UART0, 0xf); /* clear setting */ ++ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; ++ break; ++ ++ case Irq_UART1: ++ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); ++ vui &= ~ID2Pri(EIrqID_UART1, 0xf); /* clear setting */ ++ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; ++ break; ++ ++ case Irq_GPS: ++ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); ++ vui &= ~ID2Pri(EIrqID_GPS, 0xf); /* clear setting */ ++ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; ++ break; ++ ++ case Irq_I2C: ++ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); ++ vui &= ~ID2Pri(EIrqID_I2C, 0xf); /* clear setting */ ++ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; ++ break; ++ ++ case Irq_EMAC: ++ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); ++ vui &= ~ID2Pri(EIrqID_EMAC, 0xf); /* clear setting */ ++ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; ++ break; ++ ++ case Irq_GPIO: ++ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); ++ vui &= ~ID2Pri(EIrqID_GPIO, 0xf); /* clear setting */ ++ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; ++ break; ++ ++ case Irq_1PPS: ++ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri); ++ vui &= ~ID2Pri(EIrqID_1PPS, 0xf); /* clear setting */ ++ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui; ++ break; ++ ++ default: ++ break; ++ } ++} ++ ++static struct irq_chip shj_irq_chip = { ++ .name = "0PF_INTC", ++ .irq_enable = shj_enable_irq, ++ .irq_disable = shj_disable_irq, ++ .irq_ack = shj_ack_noop, ++}; ++ ++static void __init shj_irq_init(void) ++{ ++ int c; ++ ++ printk(KERN_INFO "0PF FPGA interrupt controller...\n"); ++ ++ for (c = 0; c < NR_IRQS; c++) { ++ //irq_desc[c].action = NULL; ++ //irq_desc[c].depth = 1; ++ irq_set_chip_and_handler_name(c, &shj_irq_chip, ++ handle_simple_irq, "simple"); ++ } ++} ++ ++#ifdef CONFIG_ARCH_USES_GETTIMEOFFSET ++// Commit 7b1f62076 switched this to a pointer ++/* ++ * Should return nanoseconds since last timer tick ++ */ ++u32 shj_gettimeoffset(void) ++{ ++ u32 clocks_counter = readl(SHJ_PIT_PCNTR); ++ ++ return clocks_counter * readl(SHJ_NSEC_PER_CLOCK); ++} ++ ++static void __init shj_board_setup(char **cmdline) ++{ ++ arch_gettimeoffset = shj_gettimeoffset; ++} ++#else ++#define shj_gettimeoffset 0 ++#endif ++ ++static struct sh_machine_vector mv_se __initmv = { ++ .mv_name = "0PF_FPGA", ++ //.mv_nr_irqs = 256, ++ .mv_irq_demux = shj_irq_demux, ++ .mv_init_irq = shj_irq_init, ++ .mv_setup = shj_board_setup, ++}; ++ ++static irqreturn_t timer_interrupt(int irq, void *dev_id) ++{ ++ // AQ_PIO = 0x011; // GREEN ++ ++ if (current->pid) ++ profile_tick(CPU_PROFILING); ++ ++ xtime_update(1); ++ update_process_times(user_mode(get_irq_regs())); ++ ++ return IRQ_HANDLED; ++} ++ ++static void __init start_pit(void) ++{ ++ if (request_irq ++ (PIT_IRQ, timer_interrupt, IRQF_TIMER, "pit", NULL)) ++ printk("irq_desc[%p] : fail to register\n", &irq_desc[PIT_IRQ]); ++ ++ irq_set_chip_and_handler_name(PIT_IRQ, &shj_irq_chip, handle_edge_irq, ++ "pit"); ++} ++ ++static int __init shj_initialise(void) ++{ ++ struct irq_data *data; ++ ++ pr_info("0PF Machine setup...\n"); ++ ++ start_pit(); ++ ++ data = irq_get_irq_data(Irq_UART0); ++ shj_enable_irq(data); ++ ++ data = irq_get_irq_data(Irq_UART1); ++ shj_enable_irq(data); ++ ++ data = irq_get_irq_data(Irq_EMAC); ++ shj_enable_irq(data); ++ ++ data = irq_get_irq_data(PIT_IRQ); ++ shj_enable_irq(data); ++ ++ pr_info("0PF Machine setup done.\n"); ++ ++ return 0; ++} ++ ++arch_initcall(shj_initialise); +diff -Nur linux-4.1.13.orig/arch/sh/configs/0pf_defconfig linux-4.1.13/arch/sh/configs/0pf_defconfig +--- linux-4.1.13.orig/arch/sh/configs/0pf_defconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.13/arch/sh/configs/0pf_defconfig 2015-12-05 00:16:48.000000000 +0100 +@@ -0,0 +1,945 @@ ++# ++# Automatically generated file; DO NOT EDIT. ++# Linux/sh 4.1.0-rc6 Kernel Configuration ++# ++CONFIG_SUPERH=y ++CONFIG_SUPERH32=y ++# CONFIG_SUPERH64 is not set ++CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" ++CONFIG_RWSEM_GENERIC_SPINLOCK=y ++CONFIG_GENERIC_BUG=y ++CONFIG_GENERIC_HWEIGHT=y ++# CONFIG_ARCH_SUSPEND_POSSIBLE is not set ++# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set ++CONFIG_ARCH_USES_GETTIMEOFFSET=y ++CONFIG_STACKTRACE_SUPPORT=y ++CONFIG_LOCKDEP_SUPPORT=y ++CONFIG_HAVE_LATENCYTOP_SUPPORT=y ++# CONFIG_ARCH_HAS_ILOG2_U32 is not set ++# CONFIG_ARCH_HAS_ILOG2_U64 is not set ++CONFIG_NO_IOPORT_MAP=y ++CONFIG_DMA_NONCOHERENT=y ++CONFIG_NEED_DMA_MAP_STATE=y ++CONFIG_NEED_SG_DMA_LENGTH=y ++CONFIG_PGTABLE_LEVELS=2 ++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" ++CONFIG_IRQ_WORK=y ++ ++# ++# General setup ++# ++CONFIG_BROKEN_ON_SMP=y ++CONFIG_INIT_ENV_ARG_LIMIT=32 ++CONFIG_CROSS_COMPILE="" ++# CONFIG_COMPILE_TEST is not set ++CONFIG_LOCALVERSION="" ++# CONFIG_LOCALVERSION_AUTO is not set ++CONFIG_HAVE_KERNEL_GZIP=y ++CONFIG_HAVE_KERNEL_BZIP2=y ++CONFIG_HAVE_KERNEL_LZMA=y ++CONFIG_HAVE_KERNEL_XZ=y ++CONFIG_HAVE_KERNEL_LZO=y ++CONFIG_KERNEL_GZIP=y ++# CONFIG_KERNEL_BZIP2 is not set ++# CONFIG_KERNEL_LZMA is not set ++# CONFIG_KERNEL_XZ is not set ++# CONFIG_KERNEL_LZO is not set ++CONFIG_DEFAULT_HOSTNAME="(none)" ++# CONFIG_SYSVIPC is not set ++# CONFIG_FHANDLE is not set ++# CONFIG_USELIB is not set ++CONFIG_HAVE_ARCH_AUDITSYSCALL=y ++ ++# ++# IRQ subsystem ++# ++CONFIG_MAY_HAVE_SPARSE_IRQ=y ++CONFIG_GENERIC_IRQ_SHOW=y ++CONFIG_IRQ_DOMAIN=y ++CONFIG_IRQ_FORCED_THREADING=y ++# CONFIG_SPARSE_IRQ is not set ++CONFIG_GENERIC_CLOCKEVENTS=y ++ ++# ++# Timers subsystem ++# ++CONFIG_HZ_PERIODIC=y ++ ++# ++# CPU/Task time and stats accounting ++# ++CONFIG_TICK_CPU_ACCOUNTING=y ++# CONFIG_BSD_PROCESS_ACCT is not set ++ ++# ++# RCU Subsystem ++# ++CONFIG_TINY_RCU=y ++CONFIG_SRCU=y ++# CONFIG_TASKS_RCU is not set ++# CONFIG_RCU_STALL_COMMON is not set ++# CONFIG_TREE_RCU_TRACE is not set ++CONFIG_RCU_KTHREAD_PRIO=0 ++# CONFIG_RCU_EXPEDITE_BOOT is not set ++# CONFIG_BUILD_BIN2C is not set ++# CONFIG_IKCONFIG is not set ++CONFIG_LOG_BUF_SHIFT=17 ++# CONFIG_CGROUPS is not set ++# CONFIG_CHECKPOINT_RESTORE is not set ++CONFIG_NAMESPACES=y ++# CONFIG_UTS_NS is not set ++# CONFIG_USER_NS is not set ++# CONFIG_PID_NS is not set ++# CONFIG_SCHED_AUTOGROUP is not set ++# CONFIG_SYSFS_DEPRECATED is not set ++# CONFIG_RELAY is not set ++CONFIG_BLK_DEV_INITRD=y ++CONFIG_INITRAMFS_SOURCE="initrd/root-dev initrd/root-files" ++CONFIG_INITRAMFS_ROOT_UID=0 ++CONFIG_INITRAMFS_ROOT_GID=0 ++# CONFIG_RD_GZIP is not set ++# CONFIG_RD_BZIP2 is not set ++# CONFIG_RD_LZMA is not set ++# CONFIG_RD_XZ is not set ++# CONFIG_RD_LZO is not set ++# CONFIG_RD_LZ4 is not set ++# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set ++CONFIG_SYSCTL=y ++CONFIG_ANON_INODES=y ++CONFIG_HAVE_UID16=y ++# CONFIG_EXPERT is not set ++CONFIG_UID16=y ++CONFIG_MULTIUSER=y ++CONFIG_SGETMASK_SYSCALL=y ++CONFIG_SYSFS_SYSCALL=y ++# CONFIG_SYSCTL_SYSCALL is not set ++CONFIG_KALLSYMS=y ++CONFIG_PRINTK=y ++CONFIG_BUG=y ++CONFIG_ELF_CORE=y ++CONFIG_BASE_FULL=y ++CONFIG_FUTEX=y ++CONFIG_EPOLL=y ++CONFIG_SIGNALFD=y ++CONFIG_TIMERFD=y ++CONFIG_EVENTFD=y ++# CONFIG_BPF_SYSCALL is not set ++CONFIG_AIO=y ++CONFIG_ADVISE_SYSCALLS=y ++# CONFIG_EMBEDDED is not set ++CONFIG_HAVE_PERF_EVENTS=y ++CONFIG_PERF_USE_VMALLOC=y ++ ++# ++# Kernel Performance Events And Counters ++# ++CONFIG_PERF_EVENTS=y ++CONFIG_VM_EVENT_COUNTERS=y ++CONFIG_SLUB_DEBUG=y ++# CONFIG_COMPAT_BRK is not set ++# CONFIG_SLAB is not set ++CONFIG_SLUB=y ++# CONFIG_PROFILING is not set ++CONFIG_HAVE_OPROFILE=y ++# CONFIG_UPROBES is not set ++# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set ++CONFIG_HAVE_KPROBES=y ++CONFIG_HAVE_KRETPROBES=y ++CONFIG_HAVE_ARCH_TRACEHOOK=y ++CONFIG_HAVE_DMA_ATTRS=y ++CONFIG_GENERIC_SMP_IDLE_THREAD=y ++CONFIG_GENERIC_IDLE_POLL_SETUP=y ++CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y ++CONFIG_HAVE_CLK=y ++CONFIG_HAVE_DMA_API_DEBUG=y ++CONFIG_HAVE_HW_BREAKPOINT=y ++CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y ++CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y ++CONFIG_HAVE_CC_STACKPROTECTOR=y ++# CONFIG_CC_STACKPROTECTOR is not set ++CONFIG_CC_STACKPROTECTOR_NONE=y ++# CONFIG_CC_STACKPROTECTOR_REGULAR is not set ++# CONFIG_CC_STACKPROTECTOR_STRONG is not set ++CONFIG_MODULES_USE_ELF_RELA=y ++CONFIG_OLD_SIGSUSPEND=y ++CONFIG_OLD_SIGACTION=y ++ ++# ++# GCOV-based kernel profiling ++# ++CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y ++CONFIG_HAVE_GENERIC_DMA_COHERENT=y ++CONFIG_SLABINFO=y ++CONFIG_RT_MUTEXES=y ++CONFIG_BASE_SMALL=0 ++# CONFIG_MODULES is not set ++CONFIG_BLOCK=y ++# CONFIG_LBDAF is not set ++# CONFIG_BLK_DEV_BSG is not set ++# CONFIG_BLK_DEV_BSGLIB is not set ++# CONFIG_BLK_DEV_INTEGRITY is not set ++# CONFIG_BLK_CMDLINE_PARSER is not set ++ ++# ++# Partition Types ++# ++# CONFIG_PARTITION_ADVANCED is not set ++CONFIG_MSDOS_PARTITION=y ++CONFIG_EFI_PARTITION=y ++ ++# ++# IO Schedulers ++# ++CONFIG_IOSCHED_NOOP=y ++# CONFIG_IOSCHED_DEADLINE is not set ++# CONFIG_IOSCHED_CFQ is not set ++CONFIG_DEFAULT_NOOP=y ++CONFIG_DEFAULT_IOSCHED="noop" ++CONFIG_INLINE_SPIN_UNLOCK_IRQ=y ++CONFIG_INLINE_READ_UNLOCK=y ++CONFIG_INLINE_READ_UNLOCK_IRQ=y ++CONFIG_INLINE_WRITE_UNLOCK=y ++CONFIG_INLINE_WRITE_UNLOCK_IRQ=y ++# CONFIG_FREEZER is not set ++ ++# ++# System type ++# ++CONFIG_CPU_SH2=y ++CONFIG_CPU_SH2J=y ++# CONFIG_CPU_SUBTYPE_SH7619 is not set ++# CONFIG_CPU_SUBTYPE_SH7201 is not set ++# CONFIG_CPU_SUBTYPE_SH7203 is not set ++# CONFIG_CPU_SUBTYPE_SH7206 is not set ++# CONFIG_CPU_SUBTYPE_SH7263 is not set ++# CONFIG_CPU_SUBTYPE_SH7264 is not set ++# CONFIG_CPU_SUBTYPE_SH7269 is not set ++# CONFIG_CPU_SUBTYPE_MXG is not set ++CONFIG_CPU_SUBTYPE_0PF=y ++# CONFIG_CPU_SUBTYPE_SH7705 is not set ++# CONFIG_CPU_SUBTYPE_SH7706 is not set ++# CONFIG_CPU_SUBTYPE_SH7707 is not set ++# CONFIG_CPU_SUBTYPE_SH7708 is not set ++# CONFIG_CPU_SUBTYPE_SH7709 is not set ++# CONFIG_CPU_SUBTYPE_SH7710 is not set ++# CONFIG_CPU_SUBTYPE_SH7712 is not set ++# CONFIG_CPU_SUBTYPE_SH7720 is not set ++# CONFIG_CPU_SUBTYPE_SH7721 is not set ++# CONFIG_CPU_SUBTYPE_SH7750 is not set ++# CONFIG_CPU_SUBTYPE_SH7091 is not set ++# CONFIG_CPU_SUBTYPE_SH7750R is not set ++# CONFIG_CPU_SUBTYPE_SH7750S is not set ++# CONFIG_CPU_SUBTYPE_SH7751 is not set ++# CONFIG_CPU_SUBTYPE_SH7751R is not set ++# CONFIG_CPU_SUBTYPE_SH7760 is not set ++# CONFIG_CPU_SUBTYPE_SH4_202 is not set ++# CONFIG_CPU_SUBTYPE_SH7723 is not set ++# CONFIG_CPU_SUBTYPE_SH7724 is not set ++# CONFIG_CPU_SUBTYPE_SH7734 is not set ++# CONFIG_CPU_SUBTYPE_SH7757 is not set ++# CONFIG_CPU_SUBTYPE_SH7763 is not set ++# CONFIG_CPU_SUBTYPE_SH7770 is not set ++# CONFIG_CPU_SUBTYPE_SH7780 is not set ++# CONFIG_CPU_SUBTYPE_SH7785 is not set ++# CONFIG_CPU_SUBTYPE_SH7786 is not set ++# CONFIG_CPU_SUBTYPE_SHX3 is not set ++# CONFIG_CPU_SUBTYPE_SH7343 is not set ++# CONFIG_CPU_SUBTYPE_SH7722 is not set ++# CONFIG_CPU_SUBTYPE_SH7366 is not set ++ ++# ++# Memory management options ++# ++CONFIG_QUICKLIST=y ++CONFIG_PAGE_OFFSET=0x00000000 ++CONFIG_FORCE_MAX_ZONEORDER=14 ++CONFIG_MEMORY_START=0x10000000 ++CONFIG_MEMORY_SIZE=0x8000000 ++# CONFIG_29BIT is not set ++CONFIG_32BIT=y ++CONFIG_ARCH_FLATMEM_ENABLE=y ++CONFIG_ARCH_SPARSEMEM_ENABLE=y ++CONFIG_ARCH_SPARSEMEM_DEFAULT=y ++CONFIG_ARCH_SELECT_MEMORY_MODEL=y ++CONFIG_PAGE_SIZE_4KB=y ++# CONFIG_PAGE_SIZE_8KB is not set ++# CONFIG_PAGE_SIZE_16KB is not set ++# CONFIG_PAGE_SIZE_64KB is not set ++CONFIG_SELECT_MEMORY_MODEL=y ++CONFIG_FLATMEM_MANUAL=y ++# CONFIG_SPARSEMEM_MANUAL is not set ++CONFIG_FLATMEM=y ++CONFIG_FLAT_NODE_MEM_MAP=y ++CONFIG_SPARSEMEM_STATIC=y ++CONFIG_HAVE_MEMBLOCK=y ++CONFIG_HAVE_MEMBLOCK_NODE_MAP=y ++CONFIG_ARCH_DISCARD_MEMBLOCK=y ++# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set ++CONFIG_PAGEFLAGS_EXTENDED=y ++CONFIG_SPLIT_PTLOCK_CPUS=999999 ++# CONFIG_PHYS_ADDR_T_64BIT is not set ++CONFIG_ZONE_DMA_FLAG=0 ++CONFIG_NR_QUICK=1 ++CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 ++CONFIG_NEED_PER_CPU_KM=y ++# CONFIG_CLEANCACHE is not set ++# CONFIG_ZPOOL is not set ++# CONFIG_ZBUD is not set ++ ++# ++# Cache configuration ++# ++# CONFIG_CACHE_WRITEBACK is not set ++# CONFIG_CACHE_WRITETHROUGH is not set ++CONFIG_CACHE_OFF=y ++ ++# ++# Processor features ++# ++# CONFIG_CPU_LITTLE_ENDIAN is not set ++CONFIG_CPU_BIG_ENDIAN=y ++# CONFIG_SH_FPU_EMU is not set ++ ++# ++# Board support ++# ++CONFIG_0PF_FPGA=y ++ ++# ++# Timer and clock configuration ++# ++CONFIG_SH_PCLK_FREQ=32000000 ++CONFIG_SH_CLK_CPG=y ++CONFIG_SH_CLK_CPG_LEGACY=y ++ ++# ++# CPU Frequency scaling ++# ++ ++# ++# CPU Frequency scaling ++# ++# CONFIG_CPU_FREQ is not set ++ ++# ++# DMA support ++# ++ ++# ++# Companion Chips ++# ++ ++# ++# Additional SuperH Device Drivers ++# ++# CONFIG_HEARTBEAT is not set ++# CONFIG_PUSH_SWITCH is not set ++ ++# ++# Kernel features ++# ++CONFIG_HZ_100=y ++# CONFIG_HZ_250 is not set ++# CONFIG_HZ_300 is not set ++# CONFIG_HZ_1000 is not set ++CONFIG_HZ=100 ++# CONFIG_SCHED_HRTICK is not set ++# CONFIG_CRASH_DUMP is not set ++CONFIG_PHYSICAL_START=0x10000000 ++# CONFIG_SECCOMP is not set ++CONFIG_PREEMPT_NONE=y ++# CONFIG_PREEMPT_VOLUNTARY is not set ++# CONFIG_PREEMPT is not set ++CONFIG_GUSA=y ++ ++# ++# SuperH / SH-Mobile Driver Options ++# ++CONFIG_SH_INTC=y ++ ++# ++# Interrupt controller options ++# ++ ++# ++# Boot options ++# ++CONFIG_ZERO_PAGE_OFFSET=0x0003F000 ++CONFIG_BOOT_LINK_OFFSET=0x00800000 ++CONFIG_ENTRY_OFFSET=0x00001000 ++# CONFIG_CMDLINE_OVERWRITE is not set ++CONFIG_CMDLINE_EXTEND=y ++CONFIG_CMDLINE="console=ttyUL0" ++ ++# ++# Bus options ++# ++# CONFIG_PCCARD is not set ++ ++# ++# Executable file formats ++# ++CONFIG_BINFMT_ELF_FDPIC=y ++CONFIG_BINFMT_SCRIPT=y ++CONFIG_BINFMT_FLAT=y ++# CONFIG_BINFMT_ZFLAT is not set ++# CONFIG_BINFMT_SHARED_FLAT is not set ++# CONFIG_HAVE_AOUT is not set ++# CONFIG_BINFMT_MISC is not set ++CONFIG_COREDUMP=y ++ ++# ++# Power management options (EXPERIMENTAL) ++# ++# CONFIG_PM is not set ++ ++# ++# CPU Idle ++# ++# CONFIG_CPU_IDLE is not set ++# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set ++# CONFIG_NET is not set ++ ++# ++# Device Drivers ++# ++ ++# ++# Generic Driver Options ++# ++# CONFIG_UEVENT_HELPER is not set ++CONFIG_DEVTMPFS=y ++CONFIG_DEVTMPFS_MOUNT=y ++# CONFIG_STANDALONE is not set ++# CONFIG_PREVENT_FIRMWARE_BUILD is not set ++CONFIG_FW_LOADER=y ++# CONFIG_FIRMWARE_IN_KERNEL is not set ++CONFIG_EXTRA_FIRMWARE="" ++# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set ++CONFIG_ALLOW_DEV_COREDUMP=y ++# CONFIG_SYS_HYPERVISOR is not set ++# CONFIG_GENERIC_CPU_DEVICES is not set ++# CONFIG_DMA_SHARED_BUFFER is not set ++ ++# ++# Bus devices ++# ++# CONFIG_MTD is not set ++CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y ++# CONFIG_PARPORT is not set ++# CONFIG_BLK_DEV is not set ++ ++# ++# Misc devices ++# ++# CONFIG_SENSORS_LIS3LV02D is not set ++# CONFIG_DUMMY_IRQ is not set ++# CONFIG_ENCLOSURE_SERVICES is not set ++# CONFIG_SRAM is not set ++# CONFIG_C2PORT is not set ++ ++# ++# EEPROM support ++# ++# CONFIG_EEPROM_93CX6 is not set ++ ++# ++# Texas Instruments shared transport line discipline ++# ++ ++# ++# Altera FPGA firmware download module ++# ++ ++# ++# Intel MIC Bus Driver ++# ++ ++# ++# Intel MIC Host Driver ++# ++ ++# ++# Intel MIC Card Driver ++# ++# CONFIG_ECHO is not set ++# CONFIG_CXL_BASE is not set ++ ++# ++# SCSI device support ++# ++CONFIG_SCSI_MOD=y ++# CONFIG_RAID_ATTRS is not set ++# CONFIG_SCSI is not set ++# CONFIG_SCSI_DMA is not set ++CONFIG_HAVE_PATA_PLATFORM=y ++# CONFIG_ATA is not set ++# CONFIG_MD is not set ++ ++# ++# Input device support ++# ++CONFIG_INPUT=y ++# CONFIG_INPUT_FF_MEMLESS is not set ++# CONFIG_INPUT_POLLDEV is not set ++# CONFIG_INPUT_SPARSEKMAP is not set ++# CONFIG_INPUT_MATRIXKMAP is not set ++ ++# ++# Userland interfaces ++# ++# CONFIG_INPUT_MOUSEDEV is not set ++# CONFIG_INPUT_JOYDEV is not set ++# CONFIG_INPUT_EVDEV is not set ++# CONFIG_INPUT_EVBUG is not set ++ ++# ++# Input Device Drivers ++# ++# CONFIG_INPUT_KEYBOARD is not set ++# CONFIG_INPUT_MOUSE is not set ++# CONFIG_INPUT_JOYSTICK is not set ++# CONFIG_INPUT_TABLET is not set ++# CONFIG_INPUT_TOUCHSCREEN is not set ++# CONFIG_INPUT_MISC is not set ++ ++# ++# Hardware I/O ports ++# ++# CONFIG_SERIO is not set ++# CONFIG_GAMEPORT is not set ++ ++# ++# Character devices ++# ++CONFIG_TTY=y ++CONFIG_VT=y ++CONFIG_CONSOLE_TRANSLATIONS=y ++CONFIG_VT_CONSOLE=y ++CONFIG_HW_CONSOLE=y ++# CONFIG_VT_HW_CONSOLE_BINDING is not set ++CONFIG_UNIX98_PTYS=y ++# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set ++# CONFIG_LEGACY_PTYS is not set ++# CONFIG_SERIAL_NONSTANDARD is not set ++# CONFIG_TRACE_SINK is not set ++CONFIG_DEVMEM=y ++# CONFIG_DEVKMEM is not set ++ ++# ++# Serial drivers ++# ++# CONFIG_SERIAL_8250 is not set ++ ++# ++# Non-8250 serial port support ++# ++CONFIG_SERIAL_UARTLITE=y ++CONFIG_SERIAL_UARTLITE_CONSOLE=y ++CONFIG_SERIAL_UARTLITE_0PF=y ++# CONFIG_SERIAL_SH_SCI is not set ++CONFIG_SERIAL_CORE=y ++CONFIG_SERIAL_CORE_CONSOLE=y ++# CONFIG_SERIAL_SCCNXP is not set ++# CONFIG_SERIAL_ALTERA_JTAGUART is not set ++# CONFIG_SERIAL_ALTERA_UART is not set ++# CONFIG_SERIAL_ARC is not set ++# CONFIG_SERIAL_FSL_LPUART is not set ++# CONFIG_IPMI_HANDLER is not set ++# CONFIG_HW_RANDOM is not set ++# CONFIG_R3964 is not set ++# CONFIG_RAW_DRIVER is not set ++# CONFIG_TCG_TPM is not set ++ ++# ++# I2C support ++# ++# CONFIG_I2C is not set ++# CONFIG_SPI is not set ++# CONFIG_SPMI is not set ++# CONFIG_HSI is not set ++ ++# ++# PPS support ++# ++# CONFIG_PPS is not set ++ ++# ++# PPS generators support ++# ++ ++# ++# PTP clock support ++# ++ ++# ++# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. ++# ++CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y ++# CONFIG_W1 is not set ++# CONFIG_POWER_SUPPLY is not set ++# CONFIG_POWER_AVS is not set ++# CONFIG_HWMON is not set ++# CONFIG_THERMAL is not set ++# CONFIG_WATCHDOG is not set ++CONFIG_SSB_POSSIBLE=y ++ ++# ++# Sonics Silicon Backplane ++# ++# CONFIG_SSB is not set ++CONFIG_BCMA_POSSIBLE=y ++ ++# ++# Broadcom specific AMBA ++# ++# CONFIG_BCMA is not set ++ ++# ++# Multifunction device drivers ++# ++# CONFIG_MFD_CORE is not set ++# CONFIG_MFD_CROS_EC is not set ++# CONFIG_HTC_PASIC3 is not set ++# CONFIG_MFD_KEMPLD is not set ++# CONFIG_MFD_MT6397 is not set ++# CONFIG_MFD_SM501 is not set ++# CONFIG_ABX500_CORE is not set ++# CONFIG_MFD_SYSCON is not set ++# CONFIG_MFD_TI_AM335X_TSCADC is not set ++# CONFIG_MFD_TMIO is not set ++# CONFIG_REGULATOR is not set ++# CONFIG_MEDIA_SUPPORT is not set ++ ++# ++# Graphics support ++# ++ ++# ++# Direct Rendering Manager ++# ++ ++# ++# Frame buffer Devices ++# ++# CONFIG_FB is not set ++# CONFIG_FB_SH_MOBILE_MERAM is not set ++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set ++# CONFIG_VGASTATE is not set ++ ++# ++# Console display driver support ++# ++CONFIG_DUMMY_CONSOLE=y ++CONFIG_DUMMY_CONSOLE_COLUMNS=80 ++CONFIG_DUMMY_CONSOLE_ROWS=25 ++# CONFIG_SOUND is not set ++ ++# ++# HID support ++# ++# CONFIG_HID is not set ++CONFIG_USB_OHCI_LITTLE_ENDIAN=y ++# CONFIG_USB_SUPPORT is not set ++# CONFIG_UWB is not set ++# CONFIG_MMC is not set ++# CONFIG_MEMSTICK is not set ++# CONFIG_NEW_LEDS is not set ++# CONFIG_ACCESSIBILITY is not set ++CONFIG_RTC_LIB=y ++# CONFIG_RTC_CLASS is not set ++# CONFIG_DMADEVICES is not set ++# CONFIG_AUXDISPLAY is not set ++# CONFIG_VIRT_DRIVERS is not set ++ ++# ++# Virtio drivers ++# ++# CONFIG_VIRTIO_MMIO is not set ++ ++# ++# Microsoft Hyper-V guest support ++# ++# CONFIG_STAGING is not set ++CONFIG_CLKDEV_LOOKUP=y ++ ++# ++# Hardware Spinlock drivers ++# ++ ++# ++# Clock Source drivers ++# ++# CONFIG_ATMEL_PIT is not set ++# CONFIG_SH_TIMER_CMT is not set ++# CONFIG_SH_TIMER_MTU2 is not set ++# CONFIG_SH_TIMER_TMU is not set ++# CONFIG_EM_TIMER_STI is not set ++# CONFIG_MAILBOX is not set ++ ++# ++# Remoteproc drivers ++# ++# CONFIG_STE_MODEM_RPROC is not set ++ ++# ++# Rpmsg drivers ++# ++ ++# ++# SOC (System On Chip) specific Drivers ++# ++# CONFIG_SOC_TI is not set ++# CONFIG_PM_DEVFREQ is not set ++# CONFIG_EXTCON is not set ++# CONFIG_MEMORY is not set ++# CONFIG_IIO is not set ++# CONFIG_PWM is not set ++# CONFIG_IPACK_BUS is not set ++# CONFIG_RESET_CONTROLLER is not set ++# CONFIG_FMC is not set ++ ++# ++# PHY Subsystem ++# ++# CONFIG_GENERIC_PHY is not set ++# CONFIG_BCM_KONA_USB2_PHY is not set ++# CONFIG_POWERCAP is not set ++# CONFIG_MCB is not set ++ ++# ++# Android ++# ++# CONFIG_ANDROID is not set ++ ++# ++# File systems ++# ++# CONFIG_EXT2_FS is not set ++# CONFIG_EXT3_FS is not set ++# CONFIG_EXT4_FS is not set ++# CONFIG_REISERFS_FS is not set ++# CONFIG_JFS_FS is not set ++# CONFIG_BTRFS_FS is not set ++# CONFIG_NILFS2_FS is not set ++# CONFIG_F2FS_FS is not set ++# CONFIG_FS_POSIX_ACL is not set ++CONFIG_FILE_LOCKING=y ++# CONFIG_FSNOTIFY is not set ++# CONFIG_DNOTIFY is not set ++# CONFIG_INOTIFY_USER is not set ++# CONFIG_FANOTIFY is not set ++# CONFIG_QUOTA is not set ++# CONFIG_QUOTACTL is not set ++# CONFIG_AUTOFS4_FS is not set ++# CONFIG_FUSE_FS is not set ++# CONFIG_OVERLAY_FS is not set ++ ++# ++# Caches ++# ++# CONFIG_FSCACHE is not set ++ ++# ++# CD-ROM/DVD Filesystems ++# ++# CONFIG_ISO9660_FS is not set ++# CONFIG_UDF_FS is not set ++ ++# ++# DOS/FAT/NT Filesystems ++# ++CONFIG_FAT_FS=y ++# CONFIG_MSDOS_FS is not set ++CONFIG_VFAT_FS=y ++CONFIG_FAT_DEFAULT_CODEPAGE=437 ++CONFIG_FAT_DEFAULT_IOCHARSET="utf8" ++# CONFIG_NTFS_FS is not set ++ ++# ++# Pseudo filesystems ++# ++CONFIG_PROC_FS=y ++CONFIG_PROC_SYSCTL=y ++CONFIG_KERNFS=y ++CONFIG_SYSFS=y ++# CONFIG_HUGETLB_PAGE is not set ++# CONFIG_CONFIGFS_FS is not set ++# CONFIG_MISC_FILESYSTEMS is not set ++CONFIG_NLS=y ++CONFIG_NLS_DEFAULT="utf8" ++# CONFIG_NLS_CODEPAGE_437 is not set ++# CONFIG_NLS_CODEPAGE_737 is not set ++# CONFIG_NLS_CODEPAGE_775 is not set ++# CONFIG_NLS_CODEPAGE_850 is not set ++# CONFIG_NLS_CODEPAGE_852 is not set ++# CONFIG_NLS_CODEPAGE_855 is not set ++# CONFIG_NLS_CODEPAGE_857 is not set ++# CONFIG_NLS_CODEPAGE_860 is not set ++# CONFIG_NLS_CODEPAGE_861 is not set ++# CONFIG_NLS_CODEPAGE_862 is not set ++# CONFIG_NLS_CODEPAGE_863 is not set ++# CONFIG_NLS_CODEPAGE_864 is not set ++# CONFIG_NLS_CODEPAGE_865 is not set ++# CONFIG_NLS_CODEPAGE_866 is not set ++# CONFIG_NLS_CODEPAGE_869 is not set ++# CONFIG_NLS_CODEPAGE_936 is not set ++# CONFIG_NLS_CODEPAGE_950 is not set ++# CONFIG_NLS_CODEPAGE_932 is not set ++# CONFIG_NLS_CODEPAGE_949 is not set ++# CONFIG_NLS_CODEPAGE_874 is not set ++# CONFIG_NLS_ISO8859_8 is not set ++# CONFIG_NLS_CODEPAGE_1250 is not set ++# CONFIG_NLS_CODEPAGE_1251 is not set ++# CONFIG_NLS_ASCII is not set ++# CONFIG_NLS_ISO8859_1 is not set ++# CONFIG_NLS_ISO8859_2 is not set ++# CONFIG_NLS_ISO8859_3 is not set ++# CONFIG_NLS_ISO8859_4 is not set ++# CONFIG_NLS_ISO8859_5 is not set ++# CONFIG_NLS_ISO8859_6 is not set ++# CONFIG_NLS_ISO8859_7 is not set ++# CONFIG_NLS_ISO8859_9 is not set ++# CONFIG_NLS_ISO8859_13 is not set ++# CONFIG_NLS_ISO8859_14 is not set ++# CONFIG_NLS_ISO8859_15 is not set ++# CONFIG_NLS_KOI8_R is not set ++# CONFIG_NLS_KOI8_U is not set ++# CONFIG_NLS_MAC_ROMAN is not set ++# CONFIG_NLS_MAC_CELTIC is not set ++# CONFIG_NLS_MAC_CENTEURO is not set ++# CONFIG_NLS_MAC_CROATIAN is not set ++# CONFIG_NLS_MAC_CYRILLIC is not set ++# CONFIG_NLS_MAC_GAELIC is not set ++# CONFIG_NLS_MAC_GREEK is not set ++# CONFIG_NLS_MAC_ICELAND is not set ++# CONFIG_NLS_MAC_INUIT is not set ++# CONFIG_NLS_MAC_ROMANIAN is not set ++# CONFIG_NLS_MAC_TURKISH is not set ++CONFIG_NLS_UTF8=y ++ ++# ++# Kernel hacking ++# ++CONFIG_TRACE_IRQFLAGS_SUPPORT=y ++ ++# ++# printk and dmesg options ++# ++# CONFIG_PRINTK_TIME is not set ++CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 ++ ++# ++# Compile-time checks and compiler options ++# ++# CONFIG_ENABLE_WARN_DEPRECATED is not set ++# CONFIG_ENABLE_MUST_CHECK is not set ++CONFIG_FRAME_WARN=1024 ++# CONFIG_STRIP_ASM_SYMS is not set ++# CONFIG_UNUSED_SYMBOLS is not set ++# CONFIG_DEBUG_FS is not set ++# CONFIG_HEADERS_CHECK is not set ++# CONFIG_DEBUG_SECTION_MISMATCH is not set ++# CONFIG_MAGIC_SYSRQ is not set ++# CONFIG_DEBUG_KERNEL is not set ++ ++# ++# Memory Debugging ++# ++# CONFIG_PAGE_EXTENSION is not set ++# CONFIG_SLUB_DEBUG_ON is not set ++# CONFIG_SLUB_STATS is not set ++CONFIG_HAVE_DEBUG_KMEMLEAK=y ++CONFIG_DEBUG_MEMORY_INIT=y ++ ++# ++# Debug Lockups and Hangs ++# ++# CONFIG_PANIC_ON_OOPS is not set ++CONFIG_PANIC_ON_OOPS_VALUE=0 ++CONFIG_PANIC_TIMEOUT=0 ++# CONFIG_DEBUG_TIMEKEEPING is not set ++ ++# ++# Lock Debugging (spinlocks, mutexes, etc...) ++# ++# CONFIG_STACKTRACE is not set ++CONFIG_HAVE_DEBUG_BUGVERBOSE=y ++CONFIG_DEBUG_BUGVERBOSE=y ++ ++# ++# RCU Debugging ++# ++# CONFIG_PROVE_RCU is not set ++# CONFIG_SPARSE_RCU_POINTER is not set ++# CONFIG_TORTURE_TEST is not set ++CONFIG_HAVE_FUNCTION_TRACER=y ++CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y ++CONFIG_HAVE_DYNAMIC_FTRACE=y ++CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y ++CONFIG_HAVE_SYSCALL_TRACEPOINTS=y ++CONFIG_TRACING_SUPPORT=y ++# CONFIG_FTRACE is not set ++ ++# ++# Runtime Testing ++# ++# CONFIG_ATOMIC64_SELFTEST is not set ++# CONFIG_TEST_HEXDUMP is not set ++# CONFIG_TEST_STRING_HELPERS is not set ++# CONFIG_TEST_KSTRTOX is not set ++# CONFIG_TEST_RHASHTABLE is not set ++# CONFIG_DMA_API_DEBUG is not set ++# CONFIG_TEST_FIRMWARE is not set ++# CONFIG_TEST_UDELAY is not set ++# CONFIG_MEMTEST is not set ++# CONFIG_SAMPLES is not set ++CONFIG_HAVE_ARCH_KGDB=y ++# CONFIG_SH_STANDARD_BIOS is not set ++# CONFIG_DWARF_UNWINDER is not set ++ ++# ++# Security options ++# ++# CONFIG_KEYS is not set ++# CONFIG_SECURITY_DMESG_RESTRICT is not set ++# CONFIG_SECURITY is not set ++# CONFIG_SECURITYFS is not set ++CONFIG_DEFAULT_SECURITY_DAC=y ++CONFIG_DEFAULT_SECURITY="" ++# CONFIG_CRYPTO is not set ++# CONFIG_BINARY_PRINTF is not set ++ ++# ++# Library routines ++# ++CONFIG_BITREVERSE=y ++# CONFIG_HAVE_ARCH_BITREVERSE is not set ++CONFIG_GENERIC_STRNCPY_FROM_USER=y ++CONFIG_GENERIC_STRNLEN_USER=y ++CONFIG_GENERIC_IO=y ++# CONFIG_CRC_CCITT is not set ++# CONFIG_CRC16 is not set ++# CONFIG_CRC_T10DIF is not set ++# CONFIG_CRC_ITU_T is not set ++CONFIG_CRC32=y ++# CONFIG_CRC32_SELFTEST is not set ++CONFIG_CRC32_SLICEBY8=y ++# CONFIG_CRC32_SLICEBY4 is not set ++# CONFIG_CRC32_SARWATE is not set ++# CONFIG_CRC32_BIT is not set ++# CONFIG_CRC7 is not set ++# CONFIG_LIBCRC32C is not set ++# CONFIG_CRC8 is not set ++# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set ++# CONFIG_RANDOM32_SELFTEST is not set ++# CONFIG_XZ_DEC is not set ++# CONFIG_XZ_DEC_BCJ is not set ++CONFIG_HAS_IOMEM=y ++CONFIG_HAS_DMA=y ++CONFIG_GENERIC_ATOMIC64=y ++CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y ++# CONFIG_AVERAGE is not set ++# CONFIG_CORDIC is not set ++# CONFIG_DDR is not set ++# CONFIG_ARCH_HAS_SG_CHAIN is not set +diff -Nur linux-4.1.13.orig/arch/sh/include/asm/board-0pf.h linux-4.1.13/arch/sh/include/asm/board-0pf.h +--- linux-4.1.13.orig/arch/sh/include/asm/board-0pf.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.13/arch/sh/include/asm/board-0pf.h 2015-12-05 00:16:48.000000000 +0100 +@@ -0,0 +1,247 @@ ++#ifndef SGM_BOARD_H ++#define SGM_BOARD_H ++ ++#define sys_IntTable (*(unsigned*)0x0) ++#define sys_IntVectors 256 ++ ++/* Some of interrupt is fixed vector */ ++#define Irq_MRES 0x02 /* Manual reset */ ++#define Irq_CPUERR 0x09 ++#define Irq_DMAERR 0x0a ++#define Irq_NMI 0x0b ++#define Irq_PIT 0x10 /* 100 Hz PIT */ ++#define Irq_EMAC 0x11 /* irqs(0) */ ++#define Irq_UART0 0x12 /* irqs(1) */ ++#define Irq_GPS 0x13 /* irqs(2) */ ++#define Irq_Ext 0x14 /* irqs(3) use by CS42518*/ ++#define Irq_1PPS 0x16 /* irqs(5) */ ++#define Irq_UART1 0x17 /* irqs(6) */ ++#define Irq_I2C 0x18 /* irqs(7) */ ++#define Irq_TMR 0x19 /* a 12 bit countdown counter */ ++#define Irq_GPIO 0x15 ++ ++/* External interrupt IDs */ ++#define EIrqID_EMAC 0 ++#define EIrqID_UART0 1 ++#define EIrqID_GPS 2 ++#define EIrqID_Ext 3 ++#define EIrqID_GPIO 4 ++#define EIrqID_1PPS 5 ++#define EIrqID_UART1 6 ++#define EIrqID_I2C 7 ++ ++/* External Interrupt ID convert to interrupt vector */ ++#define ID2Vect(x) (0x11 + (x)) ++ ++/* Convert external interupt ID to priority value */ ++#define ID2Pri(id, pri) ((pri) << ((id) <<2)) ++ ++/* Convert vector to interrupt entry address */ ++#define Vect2Irq(x) ((x) << 2) ++ ++#define PIT_IRQ Vect2Irq(Irq_PIT) ++#define EMAC_IRQ Vect2Irq(Irq_EMAC) ++#define UART0_IRQ Vect2Irq(Irq_UART0) ++#define GPS_IRQ Vect2Irq(Irq_GPS) ++#define EXT_IRQ Vect2Irq(Irq_Ext) ++#define UART1_IRQ Vect2Irq(Irq_UART1) ++#define I2C_IRQ Vect2Irq(Irq_I2C) ++#define TMR_IRQ Vect2Irq(Irq_TMR) ++ ++ ++/* End of interrupt definations */ ++#define sys_RAM_BASE 0x10000000 ++#define sys_PIO_BASE 0xabcd0000 ++#define sys_SPI_BASE 0xabcd0040 ++#define sys_I2C_BASE 0xabcd0080 // 0xabcd0020 ++#define sys_UART0_BASE 0xabcd0100 ++#define sys_SYS_BASE 0xabcd0200 ++#define sys_UART1_BASE 0xabcd0300 ++#define sys_GPS_BASE 0xabcd0400 ++#define sys_D2A_BASE 0xabcd0500 ++#define sys_EMAC_BASE 0xabce0000 ++ ++#define AQ_PIO (*(volatile unsigned int *)sys_PIO_BASE) ++#define AQ_I2C (*(volatile unsigned int *)sys_I2C_BASE) ++#define AQ_SPI (*(volatile unsigned int *)sys_SPI_BASE) ++#define AQ_UART0 (*(volatile unsigned int *)sys_UART0_BASE) ++#define AQ_SYS (*(volatile unsigned int *)sys_SYS_BASE) ++#define AQ_UART1 (*(volatile unsigned int *)sys_UART1_BASE) ++#define AQ_GPS (*(volatile unsigned int *)sys_GPS_BASE) ++#define AQ_D2A (*(volatile unsigned int *)sys_D2A_BASE) ++#define AQ_EMAC (*(volatile unsigned int *)sys_EMAC_BASE) ++ ++ ++struct st_uart16550 ++{ ++ unsigned int RTX; ++ unsigned int IER; ++ unsigned int IIR; ++ unsigned int LCR; ++ unsigned int MCR; ++ unsigned int LSR; ++ unsigned int MSR; ++ unsigned int SCR; ++}; ++#define uLSRDR 0x01 ++#define uLSROE 0x02 ++#define uLSRPE 0x04 ++#define uLSRFE 0x08 ++#define uLSRBI 0x10 ++#define uLSRTHRE 0x20 ++#define uLSRTEMT 0x40 ++#define uLSRRFE 0x80 /* Error in Revr FIFO */ ++ ++#if 0 ++#define B115200 0x000a ++#define B38400 0x001e ++#define B19200 0x003c ++#define B9600 0x0078 ++#define B4800 0x00f0 ++#endif ++ ++/* the following is belong to sys_SYS_BASE */ ++#define Sys_IntCon 0x0 ++/* When SIC_BRKON is set, BreadAddress will compare with Bus address to generate NMI interrupt */ ++#define Sys_BRKADR 0x04 ++/* Interrupt priority is 4 bits width, irqs(0) is [3,0], irqs(1) is [7,4] ... */ ++#define Sys_IntPri 0x08 ++/* End of offset define of sys_SYS_BASE */ ++/* Refer to Aquarius datasheet Page 12, NMI is lvl16, and lvl0 will not be accept */ ++/* Refer to define.v, IBit in SR [7:4] */ ++#define SIC_ENMI ((unsigned int) 0x1<<31) /* Emulate NMI */ ++#define SIC EIRQ ((unsigned int) 0x1<<30) /* Emulate IRQ */ ++#define SIC_ECER ((unsigned int) 0x1<<29) /* Emulate CPU Address Error */ ++#define SIC_EDER ((unsigned int) 0x1<<28) /* Emulate DMA Address Error */ ++#define SIC_EMRS ((unsigned int) 0x1<<27) /* Emulate Manual Reset */ ++#define SIC_EPIT ((unsigned int) 0x1<<26) /* Enable Periodical interval timer(PIT) */ ++#define SIC_TMRON ((unsigned int) 0x1<<25) /* Enable timer */ ++#define SIC_BRKON ((unsigned int) 0x1<<24) /* Break ON */ ++#define SIC_ILVL ((unsigned int) 0xF<<20) /* interrupt level for PIT */ ++#define SIC_IVEC ((unsigned int) 0xFF<<12) /* Interrupt Vector for PIT */ ++#define SIC_TMR ((unsigned int)0xFFF) /* Interval Timer when 0x0, it request IRQ*/ ++ ++/* PIO registers offset */ ++#define Poffset_IO 0x00 ++#define Poffset_imask 0x04 ++#define Poffset_redge 0x08 ++#define Poffset_changes 0x0c ++ ++/* Keys are connected to Parallel Input, Active low */ ++#define Pio_KeyEnter 0x0001 ++#define Pio_KeyESC 0x0002 ++#define Pio_KeyNorth 0x0020 ++#define Pio_KeyEast 0x0040 ++#define Pio_KeySouth 0x0080 ++#define Pio_KeyWest 0x0100 ++ ++/* SD_CD is active high of this bit */ ++#define Pio_SD_CD 0x00200000 ++ ++#define Pio_1PPS 0x00800000 ++ ++/* IMPORTANT!!! Pio_LEDPwr is connected with with reset pins of USB, ETH-PHY ++ * and GPS. DON'T CHANGE IT or use it for now!!! ++ * TODO: VHDL needs to fix Power LED to other location with set and reset feature ++ */ ++#define Pio_LEDPwr 0x0010 ++#define Pio_LEDErr 0x0020 ++#define Pio_TP70 0x0040 ++ ++#if 0 ++ #define I2c_busy 0x8000 ++ #define I2c_next 0x4000 ++ #define I2c_ack 0x2000 ++ #define I2c_timeout 0x1000 ++ #define I2c_timer 0x0800 ++ #define I2c_mask 0xf800 ++#else ++ #define I2cO_ctrl 0x00 ++ #define I2cO_slen 0x04 ++ #define I2cO_word 0x0C ++ ++ /* for I2cO_ctrl */ ++ #define I2cC_busy 0x01 ++ #define I2cC_timeout 0x02 ++ #define I2cC_complete 0x04 ++ #define I2cC_reset 0x08 ++ #define I2cC_run 0x10 ++ #define I2cC_irqen 0x20 ++ #define I2cC_clk 0x40 ++ #define I2cC_dat 0x80 ++ #define I2cC_MaskDelay 0xff00 ++ #define I2c_delay(x) ((x)<< 8) ++ #define I2cC_MaskAckTimeout 0xf0000 ++ #define I2c_timeout(x) ((x) << 16) ++ /* for I2cO_slen */ ++ #define I2cS_MaskXlen 0x1f ++ #define I2cS_MaxLen 16 ++ #define I2cS_MaskSpeed 0x30000 ++ #define I2cS_100k 0x0 ++ #define I2cS_400k 0x10000 ++ #define I2cS_1m 0x20000 ++ #define I2cS_3m4 0x30000 ++ #define I2cS_Maskwordcount 0xf80000 ++#endif ++ ++/***********************************************************/ ++/************************************ EMAC **************/ ++/***********************************************************/ ++ ++#define AQ_EMAC_BASE 0xABCE0000 ++#define AQ_EMAC_CONTROL 0xABCE0000 ++#define AQ_EMAC_STATUS 0xABCE0000 ++ ++/* Control bits */ ++#define AQ_EMAC_ENABLE_RX 0x00000002 ++#define AQ_EMAC_ENABLE_TX 0x00000004 ++#define AQ_EMAC_READ 0x00000010 ++#define AQ_EMAC_ENABLE_INT_RX 0x00000020 ++#define AQ_EMAC_ENABLE_INT_TX 0x00000040 ++ ++/* Status bits */ ++#define AQ_EMAC_TX_BUSY 0x00000004 ++#define AQ_EMAC_COMPLETE 0x00000100 ++#define AQ_EMAC_CRC 0x00000200 ++ ++#define AQ_EMAC_TX_LEN 0xABCE0004 ++#define AQ_EMAC_MACL 0xABCE0008 ++#define AQ_EMAC_MACH 0xABCE000C ++#define AQ_EMAC_RX_BUF 0xABCE1000 ++#define AQ_EMAC_TX_BUF 0xABCE1800 ++ ++#define Emac_Rbuf 0x1000 ++#define Emac_Xbuf 0x1800 ++#define Emac_Ctrl 0x0000 ++#define Emac_xlen 0x0004 ++#define Emac_MACL 0x0008 ++#define Emac_MACH 0x000c ++#define ECtrl_RecvEnable 0x2 /* Receive enable */ ++#define ECtrl_Xmit 0x4 /* Read: Transmit busy(1); Write: Start transmit(1) */ ++#define ECtrl_MACReset 0x8 /* Reset MAC address */ ++#define ECtrl_Read 0x10 /* complete read from Receive FIFO */ ++#define ECtrl_RIntEnable 0x20 /* Receive interrupt enable(1) */ ++#define ECtrl_XIntEnable 0x40 /* Transmit interrupt enable(1) */ ++#define ECtrl_PROM 0x80 /* Promiscuous Mode enable(1)/disable(0) */ ++#define ECtrl_Complete 0x100 /* Receive packet waiting in FIFO */ ++#define ECtrl_CRC 0x200 /* Receive packet has CRC error */ ++#define ECtrl_getrxlen(x) ((x) >> 16) /* Length of received package, when ECtrl_Complete is set */ ++ ++#define Spi_Ctrl 0x0 ++#define Spi_Data 0x4 ++#define SpiCtrl_ACS 0x01 /* chipselect for applcation data */ ++#define SpiCtrl_CCS 0x04 /* chipselect for FPGA configure */ ++#define SpiCtrl_DCS 0x10 /* chipselect for D2A or extra SPI device */ ++#define SpiCtrl_setDiv(x) ((x) << 27) /* Div contrl SPI_CK = 12.5/(div + 1), Min: 400KHz for now*/ ++#define SpiCtrl_Xmit 0x02 ++#define SpiCtrl_Busy 0x02 ++#define SpiCtrl_Loop 0x08 /* When it assert, mosi will connect to miso */ ++/* by default SPI run at 12.5 MHz,maxium speed for Spartan 3E, for SPI Flash ++ * We need a DDS delay for different devices ++ */ ++ ++#define SHJ_PIT_PMR 0xABCD0210 ++#define SHJ_PIT_PCNTR 0xABCD0214 ++#define SHJ_NSEC_PER_CLOCK 0xABCD0218 ++ ++#endif +diff -Nur linux-4.1.13.orig/arch/sh/include/asm/processor.h linux-4.1.13/arch/sh/include/asm/processor.h +--- linux-4.1.13.orig/arch/sh/include/asm/processor.h 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/include/asm/processor.h 2015-12-05 00:16:49.000000000 +0100 +@@ -15,7 +15,7 @@ + */ + enum cpu_type { + /* SH-2 types */ +- CPU_SH7619, ++ CPU_SH7619, CPU_0PF, + + /* SH-2A types */ + CPU_SH7201, CPU_SH7203, CPU_SH7206, CPU_SH7263, CPU_SH7264, CPU_SH7269, +diff -Nur linux-4.1.13.orig/arch/sh/include/cpu-sh2/cpu/cache.h linux-4.1.13/arch/sh/include/cpu-sh2/cpu/cache.h +--- linux-4.1.13.orig/arch/sh/include/cpu-sh2/cpu/cache.h 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/include/cpu-sh2/cpu/cache.h 2015-12-05 00:16:49.000000000 +0100 +@@ -38,6 +38,10 @@ + #define CCR_CACHE_INVALIDATE CCR_CACHE_CF + #define CACHE_PHYSADDR_MASK 0x1ffffc00 + ++#elif defined(CONFIG_CPU_SUBTYPE_0PF) ++#define CCR 0xabcd00c0 ++#define CCR_CACHE_ENABLE 0x80000000 ++#define CCR_CACHE_RESET 0x101 + #endif + + #endif /* __ASM_CPU_SH2_CACHE_H */ +diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/init.c linux-4.1.13/arch/sh/kernel/cpu/init.c +--- linux-4.1.13.orig/arch/sh/kernel/cpu/init.c 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/kernel/cpu/init.c 2015-12-05 00:16:49.000000000 +0100 +@@ -106,7 +106,7 @@ + /* + * Generic first-level cache init + */ +-#ifdef CONFIG_SUPERH32 ++#if defined(CONFIG_SUPERH32) && !defined(CONFIG_CPU_SUBTYPE_0PF) + static void cache_init(void) + { + unsigned long ccr, flags; +diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/proc.c linux-4.1.13/arch/sh/kernel/cpu/proc.c +--- linux-4.1.13.orig/arch/sh/kernel/cpu/proc.c 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/kernel/cpu/proc.c 2015-12-05 00:16:49.000000000 +0100 +@@ -26,6 +26,7 @@ + [CPU_SH5_101] = "SH5-101", [CPU_SH5_103] = "SH5-103", + [CPU_MXG] = "MX-G", [CPU_SH7723] = "SH7723", + [CPU_SH7366] = "SH7366", [CPU_SH7724] = "SH7724", ++ [CPU_0PF] = "SH2J-0PF", + [CPU_SH7372] = "SH7372", [CPU_SH7734] = "SH7734", + [CPU_SH_NONE] = "Unknown" + }; +diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/Makefile linux-4.1.13/arch/sh/kernel/cpu/sh2/Makefile +--- linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/Makefile 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/kernel/cpu/sh2/Makefile 2015-12-05 00:16:49.000000000 +0100 +@@ -5,3 +5,4 @@ + obj-y := ex.o probe.o entry.o + + obj-$(CONFIG_CPU_SUBTYPE_SH7619) += setup-sh7619.o clock-sh7619.o ++obj-$(CONFIG_CPU_SUBTYPE_0PF) += setup-0pf.o clock-0pf.o +diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/clock-0pf.c linux-4.1.13/arch/sh/kernel/cpu/sh2/clock-0pf.c +--- linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/clock-0pf.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.13/arch/sh/kernel/cpu/sh2/clock-0pf.c 2015-12-05 00:16:48.000000000 +0100 +@@ -0,0 +1,80 @@ ++/* ++ * arch/sh/kernel/cpu/sh2/clock-0pf.c ++ * ++ * 0PF FPGA support for the clock framework ++ * ++ * Copyright (C) 2012 SEI, Inc. ++ * ++ * Based on clock-sh4.c ++ * Copyright (C) 2005 Paul Mundt ++ * Copyright (C) 2009 D. Jeff Dionne ++ * ++ * This file is subject to the terms and conditions of the GNU General Public ++ * License. See the file "COPYING" in the main directory of this archive ++ * for more details. ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++static void master_clk_init(struct clk *clk) ++{ ++ clk->rate = CONFIG_SH_PCLK_FREQ; /* Fixed Rate */ ++} ++ ++static struct sh_clk_ops shj_master_clk_ops = { ++ .init = master_clk_init, ++}; ++ ++static unsigned long module_clk_recalc(struct clk *clk) ++{ ++ return clk->parent->rate; ++} ++ ++static struct sh_clk_ops shj_module_clk_ops = { ++ .recalc = module_clk_recalc, ++}; ++ ++static unsigned long bus_clk_recalc(struct clk *clk) ++{ ++ return clk->parent->rate; ++} ++ ++static struct sh_clk_ops shj_bus_clk_ops = { ++ .recalc = bus_clk_recalc, ++}; ++ ++static struct sh_clk_ops shj_cpu_clk_ops = { ++ .recalc = followparent_recalc, ++}; ++ ++static struct sh_clk_ops *shj_clk_ops[] = { ++ &shj_master_clk_ops, ++ &shj_module_clk_ops, ++ &shj_bus_clk_ops, ++ &shj_cpu_clk_ops, ++}; ++ ++void __init arch_init_clk_ops(struct sh_clk_ops **ops, int idx) ++{ ++ if (idx < ARRAY_SIZE(shj_clk_ops)) ++ *ops = shj_clk_ops[idx]; ++} ++ ++int __init arch_clk_init() ++{ ++ int ret; ++ ++ printk("%s(): 0PF Clock init...\n", __func__); ++ ++ ret = cpg_clk_init(); /* appease Over-engineered "clock infrastructure" */ ++ ++ return ret; ++} +diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/entry.S linux-4.1.13/arch/sh/kernel/cpu/sh2/entry.S +--- linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/entry.S 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/kernel/cpu/sh2/entry.S 2015-12-05 00:16:49.000000000 +0100 +@@ -3,6 +3,7 @@ + * + * The SH-2 exception entry + * ++ * Copyright (C) 2012 SEI,Inc. + * Copyright (C) 2005-2008 Yoshinori Sato + * Copyright (C) 2005 AXE,Inc. + * +@@ -147,7 +148,11 @@ + mov #32,r8 + cmp/hs r8,r9 + bt trap_entry ! 64 > vec >= 32 is trap +- ++#if defined(CONFIG_CPU_SUBTYPE_0PF) ++ mov #16,r8 ++ cmp/hs r8,r9 ++ bt interrupt_entry ! 32 > vec >= 16 is interrupt ++#endif + mov.l 4f,r8 + mov r9,r4 + shll2 r9 +@@ -245,6 +250,19 @@ + .align 2 + 1: .long do_address_error + ++#if defined(CONFIG_CPU_SUBTYPE_0PF) ++ENTRY(pc_address_error_trap_handler) ++ mov r15,r4 ! regs ++ mov #OFF_PC,r0 ++ mov.l @(r0,r15),r6 ! pc ++ mov.l 1f,r0 ++ jmp @r0 ++ mov #0,r5 ! writeaccess is unknown ++ ++ .align 2 ++1: .long do_pc_address_error ++#endif // CONFIG_CPU_SUBTYPE_0PF ++ + restore_all: + stc sr,r0 + or #0xf0,r0 +diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/probe.c linux-4.1.13/arch/sh/kernel/cpu/sh2/probe.c +--- linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/probe.c 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/kernel/cpu/sh2/probe.c 2015-12-05 00:16:49.000000000 +0100 +@@ -24,6 +24,12 @@ + boot_cpu_data.dcache.linesz = L1_CACHE_BYTES; + boot_cpu_data.dcache.flags = 0; + #endif ++ ++#if defined(CONFIG_CPU_SUBTYPE_0PF) ++ boot_cpu_data.type = CPU_0PF; ++ boot_cpu_data.dcache.flags = 0; ++#endif ++ + /* + * SH-2 doesn't have separate caches + */ +diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/setup-0pf.c linux-4.1.13/arch/sh/kernel/cpu/sh2/setup-0pf.c +--- linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/setup-0pf.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-4.1.13/arch/sh/kernel/cpu/sh2/setup-0pf.c 2015-12-05 00:16:48.000000000 +0100 +@@ -0,0 +1,82 @@ ++/* ++ * 0PF-FPGA Setup ++ * ++ * Copyright (C) 2006 Yoshinori Sato ++ * Copyright (C) 2009 Paul Mundt ++ * Copyright (C) 2009 D. Jeff Dionne ++ * Copyright (C) 2012 SEI, Inc. ++ * by Oleksandr Zhadan ++ * ++ * This file is subject to the terms and conditions of the GNU General Public ++ * License. See the file "COPYING" in the main directory of this archive ++ * for more details. ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#if defined(CONFIG_SERIAL_UARTLITE_0PF) ++static struct resource shj_uartlite_resources[] = { ++ [0] = DEFINE_RES_MEM(0xABCD0100, 16), ++ [1] = DEFINE_RES_IRQ(0x12), ++ ++ [2] = DEFINE_RES_MEM(0xABCD0300, 16), ++ [3] = DEFINE_RES_IRQ(0x17), ++ ++ [4] = DEFINE_RES_MEM(0xABCD0400, 16), ++ [5] = DEFINE_RES_IRQ(0x13), ++}; ++ ++static struct platform_device shj_uartlite_device[] = { ++ [0] = { .name = "uartlite", .id = 0 }, ++ [1] = { .name = "uartlite", .id = 1 }, ++ [2] = { .name = "uartlite", .id = 2 }, ++}; ++#endif ++ ++/***************************************************************************** ++ * 0PF FPGA platform devices ++ ****************************************************************************/ ++static struct platform_device *shj_devices[] __initdata = { ++#if defined(CONFIG_SERIAL_UARTLITE_0PF) ++ shj_uartlite_device, ++ shj_uartlite_device + 1, ++ shj_uartlite_device + 2, ++#endif ++}; ++ ++static int __init shj_devices_setup(void) ++{ ++ int i; ++ pr_info("%s(): registering device resources\n", __func__); ++ ++#if defined(CONFIG_SERIAL_UARTLITE_0PF) ++ for (i = 0; i < ARRAY_SIZE(shj_uartlite_device); i++) { ++ printk("Register UARTLITE resources %d\n", i); ++ if (platform_device_add_resources( ++ shj_uartlite_device + i, ++ shj_uartlite_resources + 2 * i, ++ 2)) ++ pr_err("Failed to set uartlite %d IRQ and MEM\n", i); ++ ++ } ++#endif ++ platform_add_devices(shj_devices, ARRAY_SIZE(shj_devices)); ++ ++ return 0; ++} ++ ++arch_initcall(shj_devices_setup); ++ ++void __init native_machine_early_platform_add_devices(void) ++{ ++} ++ ++void __init plat_irq_setup(void) ++{ ++} +diff -Nur linux-4.1.13.orig/arch/sh/kernel/irq.c linux-4.1.13/arch/sh/kernel/irq.c +--- linux-4.1.13.orig/arch/sh/kernel/irq.c 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/kernel/irq.c 2015-12-05 00:16:49.000000000 +0100 +@@ -20,6 +20,8 @@ + #include + #include + ++#include ++ + atomic_t irq_err_count; + + /* +@@ -175,11 +177,24 @@ + ); + } + #else ++#define noinline __attribute__((noinline)) ++static noinline void handle_irq_UART0(unsigned int irq) { generic_handle_irq(irq); } ++static noinline void handle_irq_UART1(unsigned int irq) { generic_handle_irq(irq); } ++static noinline void handle_irq_GPS(unsigned int irq) { generic_handle_irq(irq); } ++static noinline void handle_irq_EMAC(unsigned int irq) { generic_handle_irq(irq); } + static inline void handle_one_irq(unsigned int irq) + { +- generic_handle_irq(irq); ++ switch(irq) { ++ case Irq_UART0: handle_irq_UART0(irq); break; ++ case Irq_UART1: handle_irq_UART1(irq); break; ++ case Irq_GPS: handle_irq_GPS(irq); break; ++ case Irq_EMAC: handle_irq_EMAC(irq); break; ++ default: ++ generic_handle_irq(irq); ++ break; ++ } + } +-#endif ++#endif // CONFIG_IRQSTACKS + + asmlinkage __irq_entry int do_IRQ(unsigned int irq, struct pt_regs *regs) + { +diff -Nur linux-4.1.13.orig/arch/sh/kernel/traps_32.c linux-4.1.13/arch/sh/kernel/traps_32.c +--- linux-4.1.13.orig/arch/sh/kernel/traps_32.c 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/kernel/traps_32.c 2015-12-05 00:16:49.000000000 +0100 +@@ -34,6 +34,7 @@ + #ifdef CONFIG_CPU_SH2 + # define TRAP_RESERVED_INST 4 + # define TRAP_ILLEGAL_SLOT_INST 6 ++# define TRAP_PC_ADDRESS_ERROR 8 // Aug 20, 2012 ulianov - SEI extension - PC governor + # define TRAP_ADDRESS_ERROR 9 + # ifdef CONFIG_CPU_SH2A + # define TRAP_UBC 12 +@@ -458,6 +459,14 @@ + return ret; + } + ++#if defined(CONFIG_CPU_SUBTYPE_0PF) ++asmlinkage void do_pc_address_error(struct pt_regs *regs, ++ unsigned long writeaccess, ++ unsigned long address) ++{ ++} ++#endif // CONFIG_CPU_SUBTYPE_0PF ++ + /* + * Handle various address error exceptions: + * - instruction address error: +@@ -779,6 +788,9 @@ + #endif + + #ifdef CONFIG_CPU_SH2 ++ #if defined(CONFIG_CPU_SUBTYPE_0PF) ++ set_exception_table_vec(TRAP_PC_ADDRESS_ERROR, address_error_trap_handler); ++ #endif + set_exception_table_vec(TRAP_ADDRESS_ERROR, address_error_trap_handler); + #endif + #ifdef CONFIG_CPU_SH2A +diff -Nur linux-4.1.13.orig/arch/sh/mm/cache-sh2.c linux-4.1.13/arch/sh/mm/cache-sh2.c +--- linux-4.1.13.orig/arch/sh/mm/cache-sh2.c 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/mm/cache-sh2.c 2015-12-05 00:16:49.000000000 +0100 +@@ -3,6 +3,7 @@ + * + * Copyright (C) 2002 Paul Mundt + * Copyright (C) 2008 Yoshinori Sato ++ * Copyright (C) 2012 SEI, Inc. + * + * Released under the terms of the GNU GPL v2.0. + */ +@@ -16,6 +17,30 @@ + #include + #include + ++#if defined(CONFIG_CPU_SUBTYPE_0PF) ++ ++// Just flush the whole thing each time ++static void j2_flush_icache_range(void *fwoosh) ++{ ++ __raw_writel(CCR_CACHE_RESET, CCR); ++} ++ ++// This should never happen, but... ++static void j2_flush_icache_page(void *fwoosh) ++{ ++ __raw_writel(CCR_CACHE_RESET, CCR); ++} ++ ++void __init sh2_cache_init(void) ++{ ++ local_flush_icache_range = j2_flush_icache_range; ++ local_flush_icache_page = j2_flush_icache_page; ++ boot_cpu_data.dcache.n_aliases = 0; ++ ++ __raw_writel(CCR_CACHE_RESET, CCR); ++} ++ ++#else + static void sh2__flush_wback_region(void *start, int size) + { + unsigned long v; +@@ -89,3 +114,4 @@ + __flush_purge_region = sh2__flush_purge_region; + __flush_invalidate_region = sh2__flush_invalidate_region; + } ++#endif +diff -Nur linux-4.1.13.orig/arch/sh/mm/cache.c linux-4.1.13/arch/sh/mm/cache.c +--- linux-4.1.13.orig/arch/sh/mm/cache.c 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/mm/cache.c 2015-12-05 00:16:49.000000000 +0100 +@@ -258,14 +258,16 @@ + boot_cpu_data.icache.entry_mask, + boot_cpu_data.icache.alias_mask, + boot_cpu_data.icache.n_aliases); +- printk(KERN_NOTICE "D-cache : n_ways=%d n_sets=%d way_incr=%d\n", +- boot_cpu_data.dcache.ways, +- boot_cpu_data.dcache.sets, +- boot_cpu_data.dcache.way_incr); +- printk(KERN_NOTICE "D-cache : entry_mask=0x%08x alias_mask=0x%08x n_aliases=%d\n", +- boot_cpu_data.dcache.entry_mask, +- boot_cpu_data.dcache.alias_mask, +- boot_cpu_data.dcache.n_aliases); ++ if (boot_cpu_data.dcache.n_aliases) { ++ printk(KERN_NOTICE "D-cache : n_ways=%d n_sets=%d way_incr=%d\n", ++ boot_cpu_data.dcache.ways, ++ boot_cpu_data.dcache.sets, ++ boot_cpu_data.dcache.way_incr); ++ printk(KERN_NOTICE "D-cache : entry_mask=0x%08x alias_mask=0x%08x n_aliases=%d\n", ++ boot_cpu_data.dcache.entry_mask, ++ boot_cpu_data.dcache.alias_mask, ++ boot_cpu_data.dcache.n_aliases); ++ } + + /* + * Emit Secondary Cache parameters if the CPU has a probed L2. +diff -Nur linux-4.1.13.orig/drivers/tty/serial/Kconfig linux-4.1.13/drivers/tty/serial/Kconfig +--- linux-4.1.13.orig/drivers/tty/serial/Kconfig 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/drivers/tty/serial/Kconfig 2015-12-05 00:16:49.000000000 +0100 +@@ -594,7 +594,7 @@ + + config SERIAL_UARTLITE + tristate "Xilinx uartlite serial port support" +- depends on PPC32 || MICROBLAZE || MFD_TIMBERDALE || ARCH_ZYNQ ++ depends on PPC32 || MICROBLAZE || MFD_TIMBERDALE || ARCH_ZYNQ || CPU_SUBTYPE_0PF + select SERIAL_CORE + help + Say Y here if you want to use the Xilinx uartlite serial controller. +@@ -611,6 +611,12 @@ + console (the system console is the device which receives all kernel + messages and warnings and which allows logins in single user mode). + ++config SERIAL_UARTLITE_0PF ++ tristate "Support 0PF UARTLITEs" ++ depends on SERIAL_UARTLITE = y && CPU_SUBTYPE_0PF ++ help ++ Say Y here to set up 0PF's UARTLITEs. ++ + config SERIAL_SUNCORE + bool + depends on SPARC diff --git a/target/linux/patches/4.1.15/mtd-rootfs.patch b/target/linux/patches/4.1.15/mtd-rootfs.patch new file mode 100644 index 000000000..5f6d82b5c --- /dev/null +++ b/target/linux/patches/4.1.15/mtd-rootfs.patch @@ -0,0 +1,26 @@ +diff -Nur linux-4.1.15.orig/drivers/mtd/mtdpart.c linux-4.1.15/drivers/mtd/mtdpart.c +--- linux-4.1.15.orig/drivers/mtd/mtdpart.c 2015-12-15 06:24:51.000000000 +0100 ++++ linux-4.1.15/drivers/mtd/mtdpart.c 2015-12-26 21:02:02.766905805 +0100 +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + #include + + #include "mtdcore.h" +@@ -667,6 +668,14 @@ + if (IS_ERR(slave)) + return PTR_ERR(slave); + ++ if (strcmp(parts[i].name, "rootfs") == 0) { ++ if (ROOT_DEV == 0) { ++ printk(KERN_NOTICE "mtd: partition \"rootfs\" " ++ "set to be root filesystem\n"); ++ ROOT_DEV = MKDEV(MTD_BLOCK_MAJOR, i); ++ } ++ } ++ + mutex_lock(&mtd_partitions_mutex); + list_add(&slave->list, &mtd_partitions); + mutex_unlock(&mtd_partitions_mutex); diff --git a/target/linux/patches/4.1.15/use-libgcc-for-sh.patch b/target/linux/patches/4.1.15/use-libgcc-for-sh.patch new file mode 100644 index 000000000..6420219b0 --- /dev/null +++ b/target/linux/patches/4.1.15/use-libgcc-for-sh.patch @@ -0,0 +1,29 @@ +diff -Nur linux-4.1.13.orig/arch/sh/Makefile linux-4.1.13/arch/sh/Makefile +--- linux-4.1.13.orig/arch/sh/Makefile 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/Makefile 2015-12-06 19:59:31.000000000 +0100 +@@ -200,7 +206,9 @@ + KBUILD_CFLAGS += -fasynchronous-unwind-tables + endif + +-libs-$(CONFIG_SUPERH32) := arch/sh/lib/ $(libs-y) ++LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-file-name=libgcc.a) ++ ++libs-$(CONFIG_SUPERH32) := arch/sh/lib/ $(libs-y) $(LIBGCC) + libs-$(CONFIG_SUPERH64) := arch/sh/lib64/ $(libs-y) + + BOOT_TARGETS = uImage uImage.bz2 uImage.gz uImage.lzma uImage.xz uImage.lzo \ +diff -Nur linux-4.1.13.orig/arch/sh/lib/Makefile linux-4.1.13/arch/sh/lib/Makefile +--- linux-4.1.13.orig/arch/sh/lib/Makefile 2015-11-09 23:34:10.000000000 +0100 ++++ linux-4.1.13/arch/sh/lib/Makefile 2015-12-06 19:59:14.000000000 +0100 +@@ -5,11 +5,6 @@ + lib-y = delay.o memmove.o memchr.o \ + checksum.o strlen.o div64.o div64-generic.o + +-# Extracted from libgcc +-obj-y += movmem.o ashldi3.o ashrdi3.o lshrdi3.o \ +- ashlsi3.o ashrsi3.o ashiftrt.o lshrsi3.o \ +- udiv_qrnnd.o +- + udivsi3-y := udivsi3_i4i-Os.o + + ifneq ($(CONFIG_CC_OPTIMIZE_FOR_SIZE),y) diff --git a/target/microblaze/Makefile b/target/microblaze/Makefile index 8bbaadedc..8555a1b01 100644 --- a/target/microblaze/Makefile +++ b/target/microblaze/Makefile @@ -57,7 +57,7 @@ targethelp: @echo "The RootFS image is: $(FW_DIR)/$(ROOTFSSQUASHFS)" ifeq ($(ADK_TARGET_QEMU),y) @echo "Start qemu with following options:" - @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} $(QEMU_ARGS) -nographic -kernel $(FW_DIR)/$(TARGET_KERNEL) -pflash $(FW_DIR)/$(ROOTFSSQUASHFS)' + @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} $(QEMU_ARGS) -nographic -kernel $(FW_DIR)/$(TARGET_KERNEL) -pflash $(FW_DIR)/$(ROOTFSJFFS2)' endif endif diff --git a/target/microblaze/kernel/qemu-microblaze-ml605 b/target/microblaze/kernel/qemu-microblaze-ml605 index d674fb390..932843c13 100644 --- a/target/microblaze/kernel/qemu-microblaze-ml605 +++ b/target/microblaze/kernel/qemu-microblaze-ml605 @@ -11,9 +11,5 @@ CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL=2 CONFIG_XILINX_MICROBLAZE0_USE_FPU=1 CONFIG_XILINX_MICROBLAZE0_HW_VER="8.10.a" CONFIG_PCI_XILINX=y -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_NR_UARTS=1 -CONFIG_SERIAL_8250_RUNTIME_UARTS=1 -CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_CMDLINE_BOOL=y CONFIG_CMDLINE_FORCE=y diff --git a/target/microblaze/kernel/qemu-microblaze-s3adsp1800 b/target/microblaze/kernel/qemu-microblaze-s3adsp1800 index 7f21cc019..cf8c3a91c 100644 --- a/target/microblaze/kernel/qemu-microblaze-s3adsp1800 +++ b/target/microblaze/kernel/qemu-microblaze-s3adsp1800 @@ -11,6 +11,5 @@ CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL=1 CONFIG_XILINX_MICROBLAZE0_USE_FPU=0 CONFIG_XILINX_MICROBLAZE0_HW_VER="7.10.d" CONFIG_PCI_XILINX=y -CONFIG_SERIAL_UARTLITE=y -CONFIG_SERIAL_UARTLITE_CONSOLE=y CONFIG_CMDLINE_FORCE=y +CONFIG_CMDLINE_BOOL=y -- cgit v1.2.3