From 41b61b037df97aef7d30ae3db493d0b1fab6328c Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Sat, 28 Apr 2018 03:18:55 +0200
Subject: linux: update to 4.16.5

---
 mk/linux-ver.mk                                  |  6 +-
 target/linux/Config.in.kernelversion             |  8 +--
 target/linux/patches/4.15.17/arm-nommu.patch     | 81 ------------------------
 target/linux/patches/4.15.17/arm-thumb2.patch    | 16 -----
 target/linux/patches/4.15.17/h8300.patch         | 12 ----
 target/linux/patches/4.15.17/or1k-more-ram.patch | 12 ----
 target/linux/patches/4.15.17/startup.patch       | 34 ----------
 target/linux/patches/4.16.5/arm-nommu.patch      | 81 ++++++++++++++++++++++++
 target/linux/patches/4.16.5/arm-thumb2.patch     | 16 +++++
 target/linux/patches/4.16.5/h8300.patch          | 12 ++++
 target/linux/patches/4.16.5/or1k-more-ram.patch  | 12 ++++
 target/linux/patches/4.16.5/startup.patch        | 34 ++++++++++
 12 files changed, 162 insertions(+), 162 deletions(-)
 delete mode 100644 target/linux/patches/4.15.17/arm-nommu.patch
 delete mode 100644 target/linux/patches/4.15.17/arm-thumb2.patch
 delete mode 100644 target/linux/patches/4.15.17/h8300.patch
 delete mode 100644 target/linux/patches/4.15.17/or1k-more-ram.patch
 delete mode 100644 target/linux/patches/4.15.17/startup.patch
 create mode 100644 target/linux/patches/4.16.5/arm-nommu.patch
 create mode 100644 target/linux/patches/4.16.5/arm-thumb2.patch
 create mode 100644 target/linux/patches/4.16.5/h8300.patch
 create mode 100644 target/linux/patches/4.16.5/or1k-more-ram.patch
 create mode 100644 target/linux/patches/4.16.5/startup.patch

diff --git a/mk/linux-ver.mk b/mk/linux-ver.mk
index dbef79ee8..551eff899 100644
--- a/mk/linux-ver.mk
+++ b/mk/linux-ver.mk
@@ -15,11 +15,11 @@ KERNEL_FILE_VER:=	$(ADK_TARGET_LINUX_KERNEL_GIT)
 KERNEL_RELEASE:=	1
 KERNEL_VERSION:=	$(ADK_TARGET_LINUX_KERNEL_GIT_VER)-$(KERNEL_RELEASE)
 endif
-ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_4_15),y)
-KERNEL_FILE_VER:=	4.15.17
+ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_4_16),y)
+KERNEL_FILE_VER:=	4.16.5
 KERNEL_RELEASE:=	1
 KERNEL_VERSION:=	$(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
-KERNEL_HASH:=		2fd5f2322018c6d4d318629abb0ea17f046a308271a8514cc31bb29c858040b8
+KERNEL_HASH:=		39ac2f4af0ca848153b3de5610f1e4d4f3d50362d76f382c625d8a25df432a38
 endif
 ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_4_14),y)
 KERNEL_FILE_VER:=	4.14.34
diff --git a/target/linux/Config.in.kernelversion b/target/linux/Config.in.kernelversion
index 7ae671271..69103838d 100644
--- a/target/linux/Config.in.kernelversion
+++ b/target/linux/Config.in.kernelversion
@@ -15,8 +15,8 @@ default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_ARCH_LM32
 default ADK_TARGET_LINUX_KERNEL_VERSION_4_4 if ADK_TARGET_ARCH_CRIS
 default ADK_TARGET_LINUX_KERNEL_VERSION_4_4 if ADK_TARGET_ARCH_H8300
 default ADK_TARGET_LINUX_KERNEL_VERSION_4_4 if ADK_TARGET_ARCH_METAG
-default ADK_TARGET_LINUX_KERNEL_VERSION_4_15 if ADK_TARGET_ARCH_RISCV32
-default ADK_TARGET_LINUX_KERNEL_VERSION_4_15 if ADK_TARGET_ARCH_RISCV64
+default ADK_TARGET_LINUX_KERNEL_VERSION_4_16 if ADK_TARGET_ARCH_RISCV32
+default ADK_TARGET_LINUX_KERNEL_VERSION_4_16 if ADK_TARGET_ARCH_RISCV64
 default ADK_TARGET_LINUX_KERNEL_VERSION_4_14
 
 config ADK_TARGET_LINUX_KERNEL_VERSION_GIT
@@ -29,8 +29,8 @@ config ADK_TARGET_LINUX_KERNEL_VERSION_GIT
 	select ADK_TARGET_LINUX_KERNEL_IMAGE if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
 	select ADK_TARGET_LINUX_KERNEL_IMAGE if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
 
-config ADK_TARGET_LINUX_KERNEL_VERSION_4_15
-	bool "4.15.17"
+config ADK_TARGET_LINUX_KERNEL_VERSION_4_16
+	bool "4.16.5"
 	depends on !ADK_TARGET_ARCH_AVR32
 	depends on !ADK_TARGET_ARCH_CRIS
 	depends on !ADK_TARGET_ARCH_CSKY
diff --git a/target/linux/patches/4.15.17/arm-nommu.patch b/target/linux/patches/4.15.17/arm-nommu.patch
deleted file mode 100644
index 2480b5169..000000000
--- a/target/linux/patches/4.15.17/arm-nommu.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-diff -Nur linux-4.15.13.orig/arch/arm/Kconfig linux-4.15.13/arch/arm/Kconfig
---- linux-4.15.13.orig/arch/arm/Kconfig	2018-03-24 11:02:53.000000000 +0100
-+++ linux-4.15.13/arch/arm/Kconfig	2018-04-01 03:47:33.415078244 +0100
-@@ -355,6 +355,17 @@
- 	select SPARSE_IRQ
- 	select USE_OF
- 
-+config ARM_SINGLE_ARCH_VERSATILE
-+	bool "ARM Ltd. Versatile family"
-+	depends on !MMU
-+	select AUTO_ZRELADDR
-+	select CLKSRC_OF
-+	select COMMON_CLK
-+	select GENERIC_CLOCKEVENTS
-+	select GPIOLIB
-+	select SPARSE_IRQ
-+	select USE_OF
-+
- config ARCH_EBSA110
- 	bool "EBSA-110"
- 	select ARCH_USES_GETTIMEOFFSET
-diff -Nur linux-4.15.13.orig/arch/arm/Kconfig.debug linux-4.15.13/arch/arm/Kconfig.debug
---- linux-4.15.13.orig/arch/arm/Kconfig.debug	2018-03-24 11:02:53.000000000 +0100
-+++ linux-4.15.13/arch/arm/Kconfig.debug	2018-04-01 03:47:33.416078232 +0100
-@@ -1795,7 +1795,8 @@
- config UNCOMPRESS_INCLUDE
- 	string
- 	default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \
--					PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
-+					PLAT_SAMSUNG || ARM_SINGLE_ARMV7M || \
-+					ARM_SINGLE_ARCH_VERSATILE
- 	default "mach/uncompress.h"
- 
- config EARLY_PRINTK
-diff -Nur linux-4.15.13.orig/arch/arm/include/asm/mach/map.h linux-4.15.13/arch/arm/include/asm/mach/map.h
---- linux-4.15.13.orig/arch/arm/include/asm/mach/map.h	2018-03-24 11:02:53.000000000 +0100
-+++ linux-4.15.13/arch/arm/include/asm/mach/map.h	2018-04-01 03:47:17.587276119 +0100
-@@ -62,6 +62,7 @@
- #else
- #define iotable_init(map,num)	do { } while (0)
- #define vm_reserve_area_early(a,s,c)	do { } while (0)
-+#define debug_ll_io_init()	do { } while (0)
- #endif
- 
- #endif
-diff -Nur linux-4.15.13.orig/arch/arm/mach-versatile/Kconfig linux-4.15.13/arch/arm/mach-versatile/Kconfig
---- linux-4.15.13.orig/arch/arm/mach-versatile/Kconfig	2018-03-24 11:02:53.000000000 +0100
-+++ linux-4.15.13/arch/arm/mach-versatile/Kconfig	2018-04-01 03:47:33.417078219 +0100
-@@ -1,7 +1,8 @@
- # SPDX-License-Identifier: GPL-2.0
- config ARCH_VERSATILE
--	bool "ARM Ltd. Versatile family"
--	depends on ARCH_MULTI_V5
-+	bool "ARM Ltd. Versatile family" if ARCH_MULTI_V5
-+	depends on ARCH_MULTI_V5 || ARM_SINGLE_ARCH_VERSATILE
-+	default y if ARM_SINGLE_ARCH_VERSATILE
- 	select ARM_AMBA
- 	select ARM_TIMER_SP804
- 	select ARM_VIC
-diff -Nur linux-4.15.13.orig/arch/arm/mach-versatile/Makefile.boot linux-4.15.13/arch/arm/mach-versatile/Makefile.boot
---- linux-4.15.13.orig/arch/arm/mach-versatile/Makefile.boot	1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.15.13/arch/arm/mach-versatile/Makefile.boot	2018-04-01 03:47:25.644175394 +0100
-@@ -0,0 +1,3 @@
-+# Empty file waiting for deletion once Makefile.boot isn't needed any more.
-+# Patch waits for application at
-+# http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
-diff -Nur linux-4.15.13.orig/arch/arm/mach-versatile/versatile_dt.c linux-4.15.13/arch/arm/mach-versatile/versatile_dt.c
---- linux-4.15.13.orig/arch/arm/mach-versatile/versatile_dt.c	2018-03-24 11:02:53.000000000 +0100
-+++ linux-4.15.13/arch/arm/mach-versatile/versatile_dt.c	2018-04-01 03:47:10.913359555 +0100
-@@ -37,7 +37,11 @@
- #include <asm/mach/map.h>
- 
- /* macro to get at MMIO space when running virtually */
-+#ifdef CONFIG_MMU
- #define IO_ADDRESS(x)		(((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000)
-+#else
-+#define IO_ADDRESS(x)		(x)
-+#endif
- #define __io_address(n)		((void __iomem __force *)IO_ADDRESS(n))
- 
- /*
diff --git a/target/linux/patches/4.15.17/arm-thumb2.patch b/target/linux/patches/4.15.17/arm-thumb2.patch
deleted file mode 100644
index a5ae3d260..000000000
--- a/target/linux/patches/4.15.17/arm-thumb2.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -Nur linux-4.15.17.orig/arch/arm/include/asm/assembler.h linux-4.15.17/arch/arm/include/asm/assembler.h
---- linux-4.15.17.orig/arch/arm/include/asm/assembler.h	2018-04-12 11:31:21.000000000 +0100
-+++ linux-4.15.17/arch/arm/include/asm/assembler.h	2018-04-22 02:14:24.155580474 +0100
-@@ -194,10 +194,9 @@
-  */
- 	.irp	c,,eq,ne,cs,cc,mi,pl,vs,vc,hi,ls,ge,lt,gt,le,hs,lo
- 	.macro	badr\c, rd, sym
--#ifdef CONFIG_THUMB2_KERNEL
--	adr\c	\rd, \sym + 1
--#else
- 	adr\c	\rd, \sym
-+#ifdef CONFIG_THUMB2_KERNEL
-+	orr\c	\rd, \rd, 1
- #endif
- 	.endm
- 	.endr
diff --git a/target/linux/patches/4.15.17/h8300.patch b/target/linux/patches/4.15.17/h8300.patch
deleted file mode 100644
index 836a414e5..000000000
--- a/target/linux/patches/4.15.17/h8300.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur linux-4.13.2.orig/arch/h8300/Kconfig.cpu linux-4.13.2/arch/h8300/Kconfig.cpu
---- linux-4.13.2.orig/arch/h8300/Kconfig.cpu	2017-09-13 23:21:49.000000000 +0200
-+++ linux-4.13.2/arch/h8300/Kconfig.cpu	2017-09-16 18:32:15.263759679 +0200
-@@ -96,4 +96,8 @@
-         hex "Load offset"
- 	default 0
- 
-+config RAMBASE
-+	hex "RAM base address"
-+	default 0x400000
-+
- endmenu
diff --git a/target/linux/patches/4.15.17/or1k-more-ram.patch b/target/linux/patches/4.15.17/or1k-more-ram.patch
deleted file mode 100644
index de848c838..000000000
--- a/target/linux/patches/4.15.17/or1k-more-ram.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur linux-4.8.11.orig/arch/openrisc/boot/dts/or1ksim.dts linux-4.8.11/arch/openrisc/boot/dts/or1ksim.dts
---- linux-4.8.11.orig/arch/openrisc/boot/dts/or1ksim.dts	2016-11-26 09:57:13.000000000 +0100
-+++ linux-4.8.11/arch/openrisc/boot/dts/or1ksim.dts	2016-12-04 14:39:46.092952799 +0100
-@@ -11,7 +11,7 @@
- 
- 	memory@0 {
- 		device_type = "memory";
--		reg = <0x00000000 0x02000000>;
-+		reg = <0x00000000 0x04000000>;
- 	};
- 
- 	cpus {
diff --git a/target/linux/patches/4.15.17/startup.patch b/target/linux/patches/4.15.17/startup.patch
deleted file mode 100644
index 8115b2cc6..000000000
--- a/target/linux/patches/4.15.17/startup.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -Nur linux-4.15.13.orig/init/initramfs.c linux-4.15.13/init/initramfs.c
---- linux-4.15.13.orig/init/initramfs.c	2018-03-24 11:02:53.000000000 +0100
-+++ linux-4.15.13/init/initramfs.c	2018-04-04 21:05:40.670682792 +0100
-@@ -659,6 +659,9 @@
- 	 * us a chance to load before device_initcalls.
- 	 */
- 	load_default_modules();
-+#ifdef CONFIG_DEVTMPFS_MOUNT
-+	devtmpfs_mount("dev");
-+#endif
- 
- 	return 0;
- }
-diff -Nur linux-4.15.13.orig/init/main.c linux-4.15.13/init/main.c
---- linux-4.15.13.orig/init/main.c	2018-03-24 11:02:53.000000000 +0100
-+++ linux-4.15.13/init/main.c	2018-04-04 21:05:40.671682779 +0100
-@@ -1075,6 +1075,8 @@
- 	if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
- 		pr_err("Warning: unable to open an initial console.\n");
- 
-+	printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
-+
- 	(void) sys_dup(0);
- 	(void) sys_dup(0);
- 	/*
-@@ -1083,7 +1085,7 @@
- 	 */
- 
- 	if (!ramdisk_execute_command)
--		ramdisk_execute_command = "/init";
-+		ramdisk_execute_command = "/sbin/init";
- 
- 	if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
- 		ramdisk_execute_command = NULL;
diff --git a/target/linux/patches/4.16.5/arm-nommu.patch b/target/linux/patches/4.16.5/arm-nommu.patch
new file mode 100644
index 000000000..2480b5169
--- /dev/null
+++ b/target/linux/patches/4.16.5/arm-nommu.patch
@@ -0,0 +1,81 @@
+diff -Nur linux-4.15.13.orig/arch/arm/Kconfig linux-4.15.13/arch/arm/Kconfig
+--- linux-4.15.13.orig/arch/arm/Kconfig	2018-03-24 11:02:53.000000000 +0100
++++ linux-4.15.13/arch/arm/Kconfig	2018-04-01 03:47:33.415078244 +0100
+@@ -355,6 +355,17 @@
+ 	select SPARSE_IRQ
+ 	select USE_OF
+ 
++config ARM_SINGLE_ARCH_VERSATILE
++	bool "ARM Ltd. Versatile family"
++	depends on !MMU
++	select AUTO_ZRELADDR
++	select CLKSRC_OF
++	select COMMON_CLK
++	select GENERIC_CLOCKEVENTS
++	select GPIOLIB
++	select SPARSE_IRQ
++	select USE_OF
++
+ config ARCH_EBSA110
+ 	bool "EBSA-110"
+ 	select ARCH_USES_GETTIMEOFFSET
+diff -Nur linux-4.15.13.orig/arch/arm/Kconfig.debug linux-4.15.13/arch/arm/Kconfig.debug
+--- linux-4.15.13.orig/arch/arm/Kconfig.debug	2018-03-24 11:02:53.000000000 +0100
++++ linux-4.15.13/arch/arm/Kconfig.debug	2018-04-01 03:47:33.416078232 +0100
+@@ -1795,7 +1795,8 @@
+ config UNCOMPRESS_INCLUDE
+ 	string
+ 	default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \
+-					PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
++					PLAT_SAMSUNG || ARM_SINGLE_ARMV7M || \
++					ARM_SINGLE_ARCH_VERSATILE
+ 	default "mach/uncompress.h"
+ 
+ config EARLY_PRINTK
+diff -Nur linux-4.15.13.orig/arch/arm/include/asm/mach/map.h linux-4.15.13/arch/arm/include/asm/mach/map.h
+--- linux-4.15.13.orig/arch/arm/include/asm/mach/map.h	2018-03-24 11:02:53.000000000 +0100
++++ linux-4.15.13/arch/arm/include/asm/mach/map.h	2018-04-01 03:47:17.587276119 +0100
+@@ -62,6 +62,7 @@
+ #else
+ #define iotable_init(map,num)	do { } while (0)
+ #define vm_reserve_area_early(a,s,c)	do { } while (0)
++#define debug_ll_io_init()	do { } while (0)
+ #endif
+ 
+ #endif
+diff -Nur linux-4.15.13.orig/arch/arm/mach-versatile/Kconfig linux-4.15.13/arch/arm/mach-versatile/Kconfig
+--- linux-4.15.13.orig/arch/arm/mach-versatile/Kconfig	2018-03-24 11:02:53.000000000 +0100
++++ linux-4.15.13/arch/arm/mach-versatile/Kconfig	2018-04-01 03:47:33.417078219 +0100
+@@ -1,7 +1,8 @@
+ # SPDX-License-Identifier: GPL-2.0
+ config ARCH_VERSATILE
+-	bool "ARM Ltd. Versatile family"
+-	depends on ARCH_MULTI_V5
++	bool "ARM Ltd. Versatile family" if ARCH_MULTI_V5
++	depends on ARCH_MULTI_V5 || ARM_SINGLE_ARCH_VERSATILE
++	default y if ARM_SINGLE_ARCH_VERSATILE
+ 	select ARM_AMBA
+ 	select ARM_TIMER_SP804
+ 	select ARM_VIC
+diff -Nur linux-4.15.13.orig/arch/arm/mach-versatile/Makefile.boot linux-4.15.13/arch/arm/mach-versatile/Makefile.boot
+--- linux-4.15.13.orig/arch/arm/mach-versatile/Makefile.boot	1970-01-01 01:00:00.000000000 +0100
++++ linux-4.15.13/arch/arm/mach-versatile/Makefile.boot	2018-04-01 03:47:25.644175394 +0100
+@@ -0,0 +1,3 @@
++# Empty file waiting for deletion once Makefile.boot isn't needed any more.
++# Patch waits for application at
++# http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
+diff -Nur linux-4.15.13.orig/arch/arm/mach-versatile/versatile_dt.c linux-4.15.13/arch/arm/mach-versatile/versatile_dt.c
+--- linux-4.15.13.orig/arch/arm/mach-versatile/versatile_dt.c	2018-03-24 11:02:53.000000000 +0100
++++ linux-4.15.13/arch/arm/mach-versatile/versatile_dt.c	2018-04-01 03:47:10.913359555 +0100
+@@ -37,7 +37,11 @@
+ #include <asm/mach/map.h>
+ 
+ /* macro to get at MMIO space when running virtually */
++#ifdef CONFIG_MMU
+ #define IO_ADDRESS(x)		(((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000)
++#else
++#define IO_ADDRESS(x)		(x)
++#endif
+ #define __io_address(n)		((void __iomem __force *)IO_ADDRESS(n))
+ 
+ /*
diff --git a/target/linux/patches/4.16.5/arm-thumb2.patch b/target/linux/patches/4.16.5/arm-thumb2.patch
new file mode 100644
index 000000000..a5ae3d260
--- /dev/null
+++ b/target/linux/patches/4.16.5/arm-thumb2.patch
@@ -0,0 +1,16 @@
+diff -Nur linux-4.15.17.orig/arch/arm/include/asm/assembler.h linux-4.15.17/arch/arm/include/asm/assembler.h
+--- linux-4.15.17.orig/arch/arm/include/asm/assembler.h	2018-04-12 11:31:21.000000000 +0100
++++ linux-4.15.17/arch/arm/include/asm/assembler.h	2018-04-22 02:14:24.155580474 +0100
+@@ -194,10 +194,9 @@
+  */
+ 	.irp	c,,eq,ne,cs,cc,mi,pl,vs,vc,hi,ls,ge,lt,gt,le,hs,lo
+ 	.macro	badr\c, rd, sym
+-#ifdef CONFIG_THUMB2_KERNEL
+-	adr\c	\rd, \sym + 1
+-#else
+ 	adr\c	\rd, \sym
++#ifdef CONFIG_THUMB2_KERNEL
++	orr\c	\rd, \rd, 1
+ #endif
+ 	.endm
+ 	.endr
diff --git a/target/linux/patches/4.16.5/h8300.patch b/target/linux/patches/4.16.5/h8300.patch
new file mode 100644
index 000000000..836a414e5
--- /dev/null
+++ b/target/linux/patches/4.16.5/h8300.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-4.13.2.orig/arch/h8300/Kconfig.cpu linux-4.13.2/arch/h8300/Kconfig.cpu
+--- linux-4.13.2.orig/arch/h8300/Kconfig.cpu	2017-09-13 23:21:49.000000000 +0200
++++ linux-4.13.2/arch/h8300/Kconfig.cpu	2017-09-16 18:32:15.263759679 +0200
+@@ -96,4 +96,8 @@
+         hex "Load offset"
+ 	default 0
+ 
++config RAMBASE
++	hex "RAM base address"
++	default 0x400000
++
+ endmenu
diff --git a/target/linux/patches/4.16.5/or1k-more-ram.patch b/target/linux/patches/4.16.5/or1k-more-ram.patch
new file mode 100644
index 000000000..de848c838
--- /dev/null
+++ b/target/linux/patches/4.16.5/or1k-more-ram.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-4.8.11.orig/arch/openrisc/boot/dts/or1ksim.dts linux-4.8.11/arch/openrisc/boot/dts/or1ksim.dts
+--- linux-4.8.11.orig/arch/openrisc/boot/dts/or1ksim.dts	2016-11-26 09:57:13.000000000 +0100
++++ linux-4.8.11/arch/openrisc/boot/dts/or1ksim.dts	2016-12-04 14:39:46.092952799 +0100
+@@ -11,7 +11,7 @@
+ 
+ 	memory@0 {
+ 		device_type = "memory";
+-		reg = <0x00000000 0x02000000>;
++		reg = <0x00000000 0x04000000>;
+ 	};
+ 
+ 	cpus {
diff --git a/target/linux/patches/4.16.5/startup.patch b/target/linux/patches/4.16.5/startup.patch
new file mode 100644
index 000000000..8115b2cc6
--- /dev/null
+++ b/target/linux/patches/4.16.5/startup.patch
@@ -0,0 +1,34 @@
+diff -Nur linux-4.15.13.orig/init/initramfs.c linux-4.15.13/init/initramfs.c
+--- linux-4.15.13.orig/init/initramfs.c	2018-03-24 11:02:53.000000000 +0100
++++ linux-4.15.13/init/initramfs.c	2018-04-04 21:05:40.670682792 +0100
+@@ -659,6 +659,9 @@
+ 	 * us a chance to load before device_initcalls.
+ 	 */
+ 	load_default_modules();
++#ifdef CONFIG_DEVTMPFS_MOUNT
++	devtmpfs_mount("dev");
++#endif
+ 
+ 	return 0;
+ }
+diff -Nur linux-4.15.13.orig/init/main.c linux-4.15.13/init/main.c
+--- linux-4.15.13.orig/init/main.c	2018-03-24 11:02:53.000000000 +0100
++++ linux-4.15.13/init/main.c	2018-04-04 21:05:40.671682779 +0100
+@@ -1075,6 +1075,8 @@
+ 	if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
+ 		pr_err("Warning: unable to open an initial console.\n");
+ 
++	printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
++
+ 	(void) sys_dup(0);
+ 	(void) sys_dup(0);
+ 	/*
+@@ -1083,7 +1085,7 @@
+ 	 */
+ 
+ 	if (!ramdisk_execute_command)
+-		ramdisk_execute_command = "/init";
++		ramdisk_execute_command = "/sbin/init";
+ 
+ 	if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
+ 		ramdisk_execute_command = NULL;
-- 
cgit v1.2.3