diff mbox series

[OpenWrt-Devel] gemini: Fix hard disk boot on D-Link devices

Message ID 20180502075321.4831-1-linus.walleij@linaro.org
State Superseded
Delegated to: John Crispin
Headers show
Series [OpenWrt-Devel] gemini: Fix hard disk boot on D-Link devices | expand

Commit Message

Linus Walleij May 2, 2018, 7:53 a.m. UTC
Since the D-Link devices boot from hard disk we need to
add the following changes to Gemini:

- Supply a bootarg in the device tree so we can boot from
  the right partition (/dev/sda4 on DNS-313)
- Disable forced command line in config so the kernel picks
  up the right bootargs from the device tree
- Enable EXT4 in the config as this is used for rootfs else
  we get nowhere, we cannot load this as a module because,
  well, it is supposed to be loaded from the root partition
  (chicken and egg problem).

Also clean out the premature attempts to dynamically
modify the command line in the Image makefile: we should
pass this with the device tree bootargs instead, it works
much better.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 target/linux/gemini/config-4.14                    |  2 +-
 target/linux/gemini/image/Makefile                 |  6 ---
 ...ts-Fix-bootargs-for-Gemini-D-Link-devices.patch | 45 ++++++++++++++++++++++
 3 files changed, 46 insertions(+), 7 deletions(-)
 create mode 100644 target/linux/gemini/patches-4.14/0033-ARM-dts-Fix-bootargs-for-Gemini-D-Link-devices.patch
diff mbox series

Patch

diff --git a/target/linux/gemini/config-4.14 b/target/linux/gemini/config-4.14
index 034bbcf6054a..d6dfef0bcacd 100644
--- a/target/linux/gemini/config-4.14
+++ b/target/linux/gemini/config-4.14
@@ -56,7 +56,6 @@  CONFIG_CLKDEV_LOOKUP=y
 CONFIG_CLKSRC_MMIO=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_CMDLINE="console=ttyS0,19200n8"
-CONFIG_CMDLINE_FORCE=y
 CONFIG_COMMON_CLK=y
 CONFIG_COMMON_CLK_GEMINI=y
 CONFIG_COMPACTION=y
@@ -153,6 +152,7 @@  CONFIG_ELF_CORE=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_EXPERT is not set
 CONFIG_EXPORTFS=y
+CONFIG_EXT4_FS=y
 CONFIG_FARADAY_FTINTC010=y
 CONFIG_FHANDLE=y
 CONFIG_FIRMWARE_IN_KERNEL=y
diff --git a/target/linux/gemini/image/Makefile b/target/linux/gemini/image/Makefile
index dca3b63b19ce..2e3bcdb21ccd 100644
--- a/target/linux/gemini/image/Makefile
+++ b/target/linux/gemini/image/Makefile
@@ -75,19 +75,15 @@  GEMINI_NAS_PACKAGES:=kmod-md-mod kmod-md-linear kmod-md-multipath \
 		kmod-nls-utf8 kmod-usb-storage-extras \
 		samba36-server mdadm cfdisk fdisk e2fsprogs badblocks
 
-DIR685_CMDLINE:=-console=ttyS0,19200n8 root=/dev/sda1 rw rootwait
 define Device/dlink-dir-685
 	DEVICE_TITLE := D-Link DIR-685 Xtreme N Storage Router
-	CMDLINE := $(DIR685_CMDLINE)
 	DEVICE_PACKAGES := $(GEMINI_NAS_PACKAGES) \
 			kmod-switch-rtl8366rb swconfig
 endef
 TARGET_DEVICES += dlink-dir-685
 
-DNS313_CMDLINE:=-console=ttyS0,19200n8 root=/dev/sda4 rw rootwait
 define Device/dlink-dns-313
 	DEVICE_TITLE := D-Link DNS-313 1-Bay Network Storage Enclosure
-	CMDLINE := $(DNS313_CMDLINE)
 	DEVICE_PACKAGES := $(GEMINI_NAS_PACKAGES)
 	IMAGES += dns313-image
 	IMAGE/dns313-image := dns313-images
@@ -108,10 +104,8 @@  define Device/rut1xx
 endef
 TARGET_DEVICES += rut1xx
 
-SQ201_CMDLINE:=-console=ttyS0,115200n8
 define Device/sq201
 	DEVICE_TITLE := ITian Square One SQ201
-	CMDLINE := $(SQ201_CMDLINE)
 	DEVICE_PACKAGES := $(GEMINI_NAS_PACKAGES) rt61-pci-firmware
 endef
 TARGET_DEVICES += sq201
diff --git a/target/linux/gemini/patches-4.14/0033-ARM-dts-Fix-bootargs-for-Gemini-D-Link-devices.patch b/target/linux/gemini/patches-4.14/0033-ARM-dts-Fix-bootargs-for-Gemini-D-Link-devices.patch
new file mode 100644
index 000000000000..f8cf123d7b2e
--- /dev/null
+++ b/target/linux/gemini/patches-4.14/0033-ARM-dts-Fix-bootargs-for-Gemini-D-Link-devices.patch
@@ -0,0 +1,45 @@ 
+From 5813b729eb9fe91fcf895a5c2f30bf34fbd46379 Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij@linaro.org>
+Date: Wed, 2 May 2018 09:17:25 +0200
+Subject: [PATCH] ARM: dts: Fix bootargs for Gemini D-Link devices
+
+These machines need to be booted from very specific harddisk
+partitions (as the D-Link DNS-313 boots specifically from
+partition 4). Add the proper bootargs so that everything works
+smoothly.
+
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+---
+ arch/arm/boot/dts/gemini-dlink-dir-685.dts | 3 ++-
+ arch/arm/boot/dts/gemini-dlink-dns-313.dts | 1 +
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm/boot/dts/gemini-dlink-dir-685.dts b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
+index a39914dece98..840f4a32f37c 100644
+--- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts
++++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
+@@ -20,7 +20,8 @@
+ 	};
+ 
+ 	chosen {
+-		stdout-path = "uart0:115200n8";
++		bootargs = "console=ttyS0,19200n8 root=/dev/sda1 rw rootwait";
++		stdout-path = "uart0:19200n8";
+ 	};
+ 
+ 	gpio_keys {
+diff --git a/arch/arm/boot/dts/gemini-dlink-dns-313.dts b/arch/arm/boot/dts/gemini-dlink-dns-313.dts
+index 4904f1251671..685719a0b8c0 100644
+--- a/arch/arm/boot/dts/gemini-dlink-dns-313.dts
++++ b/arch/arm/boot/dts/gemini-dlink-dns-313.dts
+@@ -26,6 +26,7 @@
+ 	};
+ 
+ 	chosen {
++		bootargs = "console=ttyS0,19200n8 root=/dev/sda4 rw rootwait";
+ 		stdout-path = "uart0:19200n8";
+ 	};
+ 
+-- 
+2.14.3
+