Browse Source

csky: add better qemu support

Waldemar Brodkorb 6 years ago
parent
commit
1f032e9550

+ 4 - 0
package/uclibc-ng/Makefile

@@ -31,6 +31,10 @@ uclibc-ng-install:
 	-$(CP) $(STAGING_TARGET_DIR)/lib/ld*-uClibc*.so* $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
 	-$(CP) $(STAGING_TARGET_DIR)/lib/libc.so.* $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
 	-$(CP) $(STAGING_TARGET_DIR)/lib/libuClibc-*.so $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
+ifeq ($(ADK_TARGET_ARCH_CSKY),y)
+	cd $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH) && \
+		ln -sf ld-uClibc.so.0 ld.so.1
+endif
 	test -z $(ADK_RUNTIME_TIMEZONE) || \
 	    grep $(ADK_RUNTIME_TIMEZONE) ./files/tz.lst | \
 	    cut -f 2 > $(IDIR_UCLIBC_NG)/etc/TZ

+ 6 - 8
target/config/Config.in.cpu

@@ -498,23 +498,21 @@ config ADK_TARGET_CPU_CSKY_CK610
 	depends on ADK_TARGET_ARCH_CSKY
 	depends on ADK_TARGET_LITTLE_ENDIAN
 
-config ADK_TARGET_CPU_CSKY_CK807F
-	bool "ck807f"
+config ADK_TARGET_CPU_CSKY_CK807
+	bool "ck807"
 	select ADK_TARGET_SUPPORTS_THREADS
 	select ADK_TARGET_SUPPORTS_LT
 	select ADK_TARGET_SUPPORTS_NPTL
 	select ADK_TARGET_WITH_MMU
-	select ADK_TARGET_CPU_WITH_FPU
 	depends on ADK_TARGET_ARCH_CSKY
 	depends on ADK_TARGET_LITTLE_ENDIAN
 
-config ADK_TARGET_CPU_CSKY_CK810F
-	bool "ck810f"
+config ADK_TARGET_CPU_CSKY_CK810
+	bool "ck810"
 	select ADK_TARGET_SUPPORTS_THREADS
 	select ADK_TARGET_SUPPORTS_LT
 	select ADK_TARGET_SUPPORTS_NPTL
 	select ADK_TARGET_WITH_MMU
-	select ADK_TARGET_CPU_WITH_FPU
 	depends on ADK_TARGET_ARCH_CSKY
 	depends on ADK_TARGET_LITTLE_ENDIAN
 
@@ -2098,8 +2096,8 @@ config ADK_TARGET_CPU_FLAGS
 	default "-mcpu=bf561" if ADK_TARGET_CPU_BFIN_BF561
 	default "-mcpu=bf592" if ADK_TARGET_CPU_BFIN_BF592
 	default "-mcpu=ck610" if ADK_TARGET_CPU_CSKY_CK610
-	default "-mcpu=ck810f" if ADK_TARGET_CPU_CSKY_CK810F
-	default "-mcpu=ck807f" if ADK_TARGET_CPU_CSKY_CK807F
+	default "-mcpu=ck807" if ADK_TARGET_CPU_CSKY_CK807
+	default "-mcpu=ck810" if ADK_TARGET_CPU_CSKY_CK810
 	default "-mcpu=v10" if ADK_TARGET_CPU_CRIS_CRISV10
 	default "-mcpu=v32" if ADK_TARGET_CPU_CRIS_CRISV32
 	default "-mh" if ADK_TARGET_CPU_H8300H

+ 9 - 0
target/config/Config.in.qemuopts

@@ -38,6 +38,9 @@ menu "Qemu system configuration"
 depends on ADK_TARGET_QEMU && (ADK_TARGET_SYSTEM_QEMU_X86_64 \
 				|| ADK_TARGET_SYSTEM_QEMU_RISCV32 \
 				|| ADK_TARGET_SYSTEM_QEMU_RISCV64 \
+				|| ADK_TARGET_SYSTEM_QEMU_CSKY_CK610 \
+				|| ADK_TARGET_SYSTEM_QEMU_CSKY_CK807 \
+				|| ADK_TARGET_SYSTEM_QEMU_CSKY_CK810 \
 				|| ADK_TARGET_SYSTEM_QEMU_X86 \
 				|| ADK_TARGET_SYSTEM_QEMU_AARCH64 \
 				|| ADK_TARGET_SYSTEM_QEMU_SPARC64)
@@ -95,9 +98,15 @@ depends on ADK_TARGET_SYSTEM_QEMU_SPARC64 || \
 		ADK_TARGET_SYSTEM_QEMU_AARCH64 || \
 		ADK_TARGET_SYSTEM_QEMU_RISCV32 || \
 		ADK_TARGET_SYSTEM_QEMU_RISCV64 || \
+		ADK_TARGET_SYSTEM_QEMU_CSKY_CK610 || \
+		ADK_TARGET_SYSTEM_QEMU_CSKY_CK807 || \
+		ADK_TARGET_SYSTEM_QEMU_CSKY_CK810 || \
 		ADK_TARGET_SYSTEM_QEMU_X86 || \
 		ADK_TARGET_SYSTEM_QEMU_X86_64
 default ADK_TARGET_QEMU_WITH_VIRTIO if ADK_TARGET_SYSTEM_QEMU_AARCH64
+default ADK_TARGET_QEMU_WITH_VIRTIO if ADK_TARGET_SYSTEM_QEMU_CSKY_CK610
+default ADK_TARGET_QEMU_WITH_VIRTIO if ADK_TARGET_SYSTEM_QEMU_CSKY_CK807
+default ADK_TARGET_QEMU_WITH_VIRTIO if ADK_TARGET_SYSTEM_QEMU_CSKY_CK810
 default ADK_TARGET_QEMU_WITH_VIRTIO if ADK_TARGET_SYSTEM_QEMU_RISCV32
 default ADK_TARGET_QEMU_WITH_VIRTIO if ADK_TARGET_SYSTEM_QEMU_RISCV64
 

+ 6 - 6
target/csky/Makefile

@@ -7,15 +7,15 @@ include $(ADK_TOPDIR)/mk/image.mk
 
 KERNEL:=$(LINUX_DIR)/$(ADK_TARGET_KERNEL)
 
-QEMU_ARGS:=${ADK_QEMU_ARGS}
+QEMU_ARGS:=${ADK_QEMU_ARGS} -M virt
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_CSKY_CK610),y)
-QEMU:=qemu-system-cskyv1
+QEMU:=qemu-system-cskyv1 -dtb target/csky/ck610.dtb
 endif
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_CSKY_CK807F),y)
-QEMU:=qemu-system-cskyv2
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_CSKY_CK807),y)
+QEMU:=qemu-system-cskyv2 -dtb target/csky/qemu.dtb
 endif
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_CSKY_CK810F),y)
-QEMU:=qemu-system-cskyv2
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_CSKY_CK810),y)
+QEMU:=qemu-system-cskyv2 -dtb target/csky/ck810.dtb
 endif
 
 # target helper text

BIN
target/csky/ck610.dtb


+ 98 - 0
target/csky/ck610.dts

@@ -0,0 +1,98 @@
+/dts-v1/;
+
+/ {
+	model = "qemu.csky.ck610";
+	compatible = "csky";
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	memory {
+		device_type = "memory";
+		reg = <0x0 0x1f400000>;
+	};
+
+	cpus {
+		#address-cells = <0>;
+		#size-cells = <0>;
+
+		cpu {
+			device_type = "cpu";
+			ccr	= <0x7d>;
+			hint	= <0x1c>;
+		};
+	};
+
+	soc {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "simple-bus";
+		ranges;
+
+		dummy_apb: apb-clock {
+			compatible = "fixed-clock";
+			clock-frequency = <40000000>;
+			clock-output-names = "dummy_apb";
+			#clock-cells = <0>;
+		};
+
+		intc: interrupt-controller {
+			compatible = "csky,intc-v1";
+			reg = <0x1ffff000 0x1000>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+		};
+
+		/* clockevent */
+		timer0 {
+			compatible = "snps,dw-apb-timer";
+			reg = <0x1fffd000 0x1000>;
+			clocks = <&dummy_apb>;
+			clock-names = "timer";
+			interrupts = <1>;
+			interrupt-parent = <&intc>;
+		};
+
+		/* clocksource */
+		timer1 {
+			compatible = "snps,dw-apb-timer";
+			reg = <0x1fffd014 0x800>;
+			clocks = <&dummy_apb>;
+			clock-names = "timer";
+			interrupts = <2>;
+			interrupt-parent = <&intc>;
+		};
+
+		serial0 {
+			compatible = "ns16550a";
+			reg = <0x1fffe000 0x1000>;
+			interrupt-parent = <&intc>;
+			interrupts = <3>;
+			clocks = <&dummy_apb>;
+			baud = <115200>;
+			reg-shift = <2>;
+			reg-io-width = <1>;
+		};
+
+		gmac: ethernet {
+			compatible = "snps,dwmac";
+			reg = <0x1fffa000 0x2000>;
+			interrupt-parent = <&intc>;
+			interrupts = <4>;
+			interrupt-names = "macirq";
+			clocks = <&dummy_apb>;
+			clock-names = "stmmaceth";
+			phy-mode = "mii";
+			snps,pbl = <32>;
+			snps,fixed-burst;
+		};
+
+		qemu-exit {
+			compatible = "csky,qemu-exit";
+			reg = <0x1fffc000 0x1000>;
+		};
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200";
+	};
+};

BIN
target/csky/ck810.dtb


+ 98 - 0
target/csky/ck810.dts

@@ -0,0 +1,98 @@
+/dts-v1/;
+
+/ {
+	model = "qemu.csky.ck810";
+	compatible = "csky";
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	memory {
+		device_type = "memory";
+		reg = <0x0 0x1f400000>;
+	};
+
+	cpus {
+		#address-cells = <0>;
+		#size-cells = <0>;
+
+		cpu {
+			device_type = "cpu";
+			ccr	= <0x417d>;
+			hint	= <0xe>;
+		};
+	};
+
+	soc {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "simple-bus";
+		ranges;
+
+		intc: interrupt-controller {
+			compatible = "csky,intc-v1";
+			reg = <0x1ffff000 0x1000>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+		};
+
+		/* clockevent */
+		timer0 {
+			compatible = "snps,dw-apb-timer";
+			reg = <0x1fffd000 0x1000>;
+			clocks = <&dummy_apb>;
+			clock-names = "timer";
+			interrupts = <1>;
+			interrupt-parent = <&intc>;
+		};
+
+		/* clocksource */
+		timer1 {
+			compatible = "snps,dw-apb-timer";
+			reg = <0x1fffd014 0x800>;
+			clocks = <&dummy_apb>;
+			clock-names = "timer";
+			interrupts = <2>;
+			interrupt-parent = <&intc>;
+		};
+
+		serial0 {
+			compatible = "ns16550a";
+			reg = <0x1fffe000 0x1000>;
+			interrupt-parent = <&intc>;
+			interrupts = <3>;
+			clocks = <&dummy_apb>;
+			baud = <115200>;
+			reg-shift = <2>;
+			reg-io-width = <1>;
+		};
+
+		dummy_apb: apb-clock {
+			compatible = "fixed-clock";
+			clock-frequency = <40000000>;
+			clock-output-names = "dummy_apb";
+			#clock-cells = <0>;
+		};
+
+		gmac: ethernet {
+			compatible = "snps,dwmac";
+			reg = <0x1fffa000 0x2000>;
+			interrupt-parent = <&intc>;
+			interrupts = <4>;
+			interrupt-names = "macirq";
+			clocks = <&dummy_apb>;
+			clock-names = "stmmaceth";
+			phy-mode = "mii";
+			snps,pbl = <32>;
+			snps,fixed-burst;
+		};
+
+		qemu-exit {
+			compatible = "csky,qemu-exit";
+			reg = <0x1fffc000 0x1000>;
+		};
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200 rdinit=/sbin/init root=/dev/ram0";
+	};
+};

+ 8 - 0
target/csky/kernel/qemu-csky-ck610

@@ -1,3 +1,11 @@
 CONFIG_CSKY=y
 CONFIG_CPU_CK610=y
+CONFIG_CSKY_IRQ=y
+CONFIG_RAM_BASE=0x0
+CONFIG_NATIONALCHIP_IRQ=y
+CONFIG_NATIONALCHIP_TIMER=y
+CONFIG_CSKYMAC=y
+CONFIG_CSKY_ADDONS=y
+CONFIG_MMU_HARD_REFILL=y
+CONFIG_SOFT_HANDMISSALIGN=y
 CONFIG_SECTION_MISMATCH_WARN_ONLY=y

+ 0 - 0
target/csky/kernel/qemu-csky-ck807f → target/csky/kernel/qemu-csky-ck807


+ 11 - 0
target/csky/kernel/qemu-csky-ck810

@@ -0,0 +1,11 @@
+CONFIG_CSKY=y
+CONFIG_CPU_CK810=y
+CONFIG_CSKY_IRQ=y
+CONFIG_RAM_BASE=0x0
+CONFIG_NATIONALCHIP_IRQ=y
+CONFIG_NATIONALCHIP_TIMER=y
+CONFIG_CSKYMAC=y
+CONFIG_CSKY_ADDONS=y
+CONFIG_MMU_HARD_REFILL=y
+CONFIG_SOFT_HANDMISSALIGN=y
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y

+ 0 - 4
target/csky/kernel/qemu-csky-ck810f

@@ -1,4 +0,0 @@
-CONFIG_CSKY=y
-CONFIG_CPU_CK810=y
-CSKY_BUILTIN_DTB=y
-CONFIG_SECTION_MISMATCH_WARN_ONLY=y

BIN
target/csky/qemu.dtb


+ 87 - 0
target/csky/qemu.dts

@@ -0,0 +1,87 @@
+/dts-v1/;
+
+/ {
+	model = "qemu.csky";
+	compatible = "csky";
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	memory {
+		device_type = "memory";
+		reg = <0x0 0x40000000>;
+	};
+
+	soc {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "simple-bus";
+		ranges;
+
+		intc: interrupt-controller {
+			compatible = "csky,intc-v1";
+			reg = <0xfffff000 0x1000>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+		};
+
+		/* clockevent */
+		timer0 {
+			compatible = "snps,dw-apb-timer";
+			reg = <0xffffd000 0x1000>;
+			clocks = <&dummy_apb>;
+			clock-names = "timer";
+			interrupts = <1>;
+			interrupt-parent = <&intc>;
+		};
+
+		/* clocksource */
+		timer1 {
+			compatible = "snps,dw-apb-timer";
+			reg = <0xffffd014 0x800>;
+			clocks = <&dummy_apb>;
+			clock-names = "timer";
+			interrupts = <2>;
+			interrupt-parent = <&intc>;
+		};
+
+		serial0 {
+			compatible = "ns16550a";
+			reg = <0xffffe000 0x1000>;
+			interrupt-parent = <&intc>;
+			interrupts = <3>;
+			clocks = <&dummy_apb>;
+			baud = <115200>;
+			reg-shift = <2>;
+			reg-io-width = <1>;
+		};
+
+		dummy_apb: apb-clock {
+			compatible = "fixed-clock";
+			clock-frequency = <40000000>;
+			clock-output-names = "dummy_apb";
+			#clock-cells = <0>;
+		};
+
+		gmac: ethernet {
+			compatible = "snps,dwmac";
+			reg = <0xffffa000 0x2000>;
+			interrupt-parent = <&intc>;
+			interrupts = <4>;
+			interrupt-names = "macirq";
+			clocks = <&dummy_apb>;
+			clock-names = "stmmaceth";
+			phy-mode = "mii";
+			snps,pbl = <32>;
+			snps,fixed-burst;
+		};
+
+		qemu-exit {
+			compatible = "csky,qemu-exit";
+			reg = <0xffffc000 0x1000>;
+		};
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200 rdinit=/sbin/init root=/dev/ram0";
+	};
+};

+ 7 - 0
target/csky/systems/qemu-csky-ck807

@@ -0,0 +1,7 @@
+config ADK_TARGET_SYSTEM_QEMU_CSKY_CK807
+	bool "Qemu Emulator (ck807)"
+	select ADK_TARGET_QEMU
+	select ADK_TARGET_CPU_CSKY_CK807
+	help
+	  Qemu Emulator for C-SKY architecture (ck807).
+

+ 0 - 7
target/csky/systems/qemu-csky-ck807f

@@ -1,7 +0,0 @@
-config ADK_TARGET_SYSTEM_QEMU_CSKY_CK807F
-	bool "Qemu Emulator (ck807f)"
-	select ADK_TARGET_QEMU
-	select ADK_TARGET_CPU_CSKY_CK807F
-	help
-	  Qemu Emulator for C-SKY architecture (ck807f).
-

+ 7 - 0
target/csky/systems/qemu-csky-ck810

@@ -0,0 +1,7 @@
+config ADK_TARGET_SYSTEM_QEMU_CSKY_CK810
+	bool "Qemu Emulator (ck810)"
+	select ADK_TARGET_QEMU
+	select ADK_TARGET_CPU_CSKY_CK810
+	help
+	  Qemu Emulator for C-SKY architecture (ck810).
+

+ 0 - 7
target/csky/systems/qemu-csky-ck810f

@@ -1,7 +0,0 @@
-config ADK_TARGET_SYSTEM_QEMU_CSKY_CK810F
-	bool "Qemu Emulator (ck810f)"
-	select ADK_TARGET_QEMU
-	select ADK_TARGET_CPU_CSKY_CK810F
-	help
-	  Qemu Emulator for C-SKY architecture (ck810f).
-

+ 15 - 2
target/linux/config/Config.in.ethernet

@@ -106,6 +106,9 @@ config ADK_KERNEL_NETDEV_1000
 config ADK_KERNEL_VIA_RHINE_MMIO
 	bool
 
+config ADK_KERNEL_DWMAC_GENERIC
+	bool
+
 config ADK_KERNEL_DWMAC_SUNXI
 	bool
 
@@ -455,11 +458,21 @@ config ADK_KERNEL_STMMAC_ETH
 	bool "Stmicro MAC ethernet driver"
 	select ADK_KERNEL_NET_VENDOR_STMICRO
 	select ADK_KERNEL_STMMAC_PLATFORM
-	select ADK_KERNEL_DWMAC_SUNXI
+	select ADK_KERNEL_DWMAC_SUNXI if ADK_TARGET_SYSTEM_BANANA_PRO \
+				      || ADK_TARGET_SYSTEM_ORANGE_PI0
+	select ADK_KERNEL_DWMAC_GENERIC if ADK_TARGET_SYSTEM_QEMU_CSKY_CK610
+	select ADK_KERNEL_DWMAC_GENERIC if ADK_TARGET_SYSTEM_QEMU_CSKY_CK807
+	select ADK_KERNEL_DWMAC_GENERIC if ADK_TARGET_SYSTEM_QEMU_CSKY_CK810
 	depends on ADK_TARGET_SYSTEM_BANANA_PRO \
-		|| ADK_TARGET_SYSTEM_ORANGE_PI0
+		|| ADK_TARGET_SYSTEM_ORANGE_PI0 \
+		|| ADK_TARGET_SYSTEM_QEMU_CSKY_CK610 \
+		|| ADK_TARGET_SYSTEM_QEMU_CSKY_CK807 \
+		|| ADK_TARGET_SYSTEM_QEMU_CSKY_CK810
 	default y if ADK_TARGET_SYSTEM_BANANA_PRO
 	default y if ADK_TARGET_SYSTEM_ORANGE_PI0
+	default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK610
+	default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK807
+	default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK810
 	default n
 
 config ADK_KERNEL_ETHOC

+ 9 - 0
target/linux/config/Config.in.serial

@@ -89,6 +89,9 @@ config ADK_KERNEL_SERIAL_8250
 	select ADK_KERNEL_SERIAL_8250_CONSOLE
 	select ADK_KERNEL_SERIAL_OF_PLATFORM if ADK_TARGET_SYSTEM_XILINX_KINTEX7 \
 						|| ADK_TARGET_SYSTEM_IMGTEC_CI20 \
+						|| ADK_TARGET_SYSTEM_QEMU_CSKY_CK610 \
+						|| ADK_TARGET_SYSTEM_QEMU_CSKY_CK807 \
+						|| ADK_TARGET_SYSTEM_QEMU_CSKY_CK810 \
 						|| ADK_TARGET_SYSTEM_QEMU_XTENSA \
 						|| ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 \
 						|| ADK_TARGET_SYSTEM_QEMU_NIOS2 \
@@ -112,6 +115,9 @@ config ADK_KERNEL_SERIAL_8250
 		|| ADK_TARGET_SYSTEM_QEMU_MIPS64 \
 		|| ADK_TARGET_SYSTEM_SGI_O2 \
 		|| ADK_TARGET_SYSTEM_QEMU_ALPHA \
+		|| ADK_TARGET_SYSTEM_QEMU_CSKY_CK610 \
+		|| ADK_TARGET_SYSTEM_QEMU_CSKY_CK807 \
+		|| ADK_TARGET_SYSTEM_QEMU_CSKY_CK810 \
 		|| ADK_TARGET_SYSTEM_QEMU_NIOS2 \
 		|| ADK_TARGET_SYSTEM_QEMU_OR1K \
 		|| ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO \
@@ -140,6 +146,9 @@ config ADK_KERNEL_SERIAL_8250
 	default y if ADK_TARGET_SYSTEM_QEMU_MIPS64
 	default y if ADK_TARGET_SYSTEM_SGI_O2
 	default y if ADK_TARGET_SYSTEM_QEMU_ALPHA
+	default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK610
+	default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK807
+	default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK810
 	default y if ADK_TARGET_SYSTEM_QEMU_NIOS2
 	default y if ADK_TARGET_SYSTEM_QEMU_OR1K
 	default y if ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO

+ 34 - 0
target/linux/patches/6064a9bdf48cefbccc4f6472dd04251f0dec1931/startup.patch

@@ -0,0 +1,34 @@
+diff -Nur linux-4.4.6.orig/init/initramfs.c linux-4.4.6/init/initramfs.c
+--- linux-4.4.6.orig/init/initramfs.c	2016-03-16 16:43:17.000000000 +0100
++++ linux-4.4.6/init/initramfs.c	2016-03-27 14:15:43.931044532 +0200
+@@ -653,6 +653,9 @@
+ 		 */
+ 		load_default_modules();
+ 	}
++#ifdef CONFIG_DEVTMPFS_MOUNT
++	devtmpfs_mount("dev");
++#endif
+ 	return 0;
+ }
+ rootfs_initcall(populate_rootfs);
+diff -Nur linux-4.4.6.orig/init/main.c linux-4.4.6/init/main.c
+--- linux-4.4.6.orig/init/main.c	2016-03-16 16:43:17.000000000 +0100
++++ linux-4.4.6/init/main.c	2016-03-27 14:15:43.935044783 +0200
+@@ -1011,6 +1011,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);
+ 	/*
+@@ -1019,7 +1021,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;