| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060 | 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-sh4adiff -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_EMULATIONdiff -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.odiff -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 <linux/platform_device.h>+#include <linux/sched.h>+#include <linux/kernel.h>+#include <linux/param.h>+#include <linux/interrupt.h>+#include <linux/profile.h>+#include <linux/init.h>+#include <linux/irq.h>+#include <linux/device.h>+#include <linux/module.h>+#include <asm/io.h>+#include <asm/irq.h>+#include <asm/rtc.h>+#include <asm/machvec.h>+#include <asm/board-0pf.h>++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 setdiff -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++#endifdiff -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.odiff -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 <linux/init.h>+#include <linux/kernel.h>+#include <asm/clock.h>+#include <linux/timex.h>+#include <linux/profile.h>+#include <linux/interrupt.h>+#include <linux/irq.h>++#include <asm/freq.h>+#include <asm/io.h>++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,r0diff -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 <linux/platform_device.h>+#include <linux/init.h>+#include <linux/module.h>+#include <linux/io.h>+#include <linux/interrupt.h>+#include <linux/irq.h>+#include <linux/serial_8250.h>+#include <asm/board-0pf.h>++#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 <asm/thread_info.h> #include <cpu/mmu_context.h> +#include <asm/board-0pf.h>+ 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_SH2Adiff -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 <asm/cacheflush.h> #include <asm/io.h> +#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; }+#endifdiff -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
 |