[OpenWrt-Devel] [PATCH][for master] apm821xx: unify My Book Live Single + Duo images

Christian Lamparter chunkeey at gmail.com
Mon Jul 16 16:56:36 EDT 2018


By takimata:
"Come to think of it, an MBL Single board boots up just fine on an
MBL Duo image, and the MBL Single board identifies completely
identical to the MBL Duo
(Board: Apollo-3G - APM82181 Board, 2*SATA, 1*USB).
I wonder if there is any downside to just using the MBL Duo firmware
on a MBL Single. I wonder if the two firmwares could even be unified."

<https://forum.lede-project.org/t/wd-mybook-live-duo-two-disks/16195/9>

Signed-off-by: Christian Lamparter <chunkeey at gmail.com>
---
 target/linux/apm821xx/dts/apollo3g.dtsi       | 189 ------------------
 .../linux/apm821xx/dts/wd-mybooklive-duo.dts  |  38 ----
 target/linux/apm821xx/dts/wd-mybooklive.dts   | 183 ++++++++++++++++-
 target/linux/apm821xx/image/Makefile          |  23 +--
 4 files changed, 187 insertions(+), 246 deletions(-)
 delete mode 100644 target/linux/apm821xx/dts/apollo3g.dtsi
 delete mode 100644 target/linux/apm821xx/dts/wd-mybooklive-duo.dts

diff --git a/target/linux/apm821xx/dts/apollo3g.dtsi b/target/linux/apm821xx/dts/apollo3g.dtsi
deleted file mode 100644
index e88973f8d2..0000000000
--- a/target/linux/apm821xx/dts/apollo3g.dtsi
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright 2008 DENX Software Engineering, Stefan Roese <sr at denx.de>
- * (c) Copyright 2010 Western Digital Technologies, Inc. All Rights Reserved.
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2.  This program is licensed "as is" without
- * any warranty of any kind, whether express or implied.
- */
-
-#include "apm82181.dtsi"
-
-/ {
-	compatible = "amcc,apollo3g";
-
-	aliases {
-		serial0 = &UART0;
-		led-boot = &status;
-		led-failsafe = &status;
-		led-running = &status;
-		led-upgrade = &status;
-	};
-};
-
-&POB0 {
-	ebc {
-		nor_flash at 0,0 {
-			status = "okay";
-			compatible = "amd,s29gl512n", "jedec-probe", "cfi-flash", "mtd-rom";
-			bank-width = <1>;
-			reg = <0x00000000 0x00000000 0x00080000>;
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition at 0 {
-				/* Part of bootrom - Don't use it without a jump */
-				label = "free";
-				reg = <0x00000000 0x0001e000>;
-			};
-
-			partition at 1 {
-				label = "env";
-				reg = <0x0001e000 0x00002000>;
-			};
-
-			partition at 2 {
-				label = "uboot";
-				reg = <0x00020000 0x00050000>;
-			};
-		};
-	};
-
-	GPIO1: gpio1 at e0000000 {
-		compatible = "wd,mbl-gpio", "ti,74273";
-		reg-names = "dat";
-		reg = <0xe0000000 0x1>;
-		#gpio-cells = <2>;
-		gpio-controller;
-
-		enable-phy {
-			/* toggle to reset EMAC PHY */
-			gpio-hog;
-			line-name = "enable EMAC PHY";
-			gpios = <0 GPIO_ACTIVE_LOW>;
-			output-low;
-		};
-
-		enable-button {
-			/* Defined in u-boot as: NOT_NOR
-			 * "enables features other than NOR
-			 * specifically, the buffer at CS2"
-			 * (button).
-			 *
-			 * Note: This option is disabled as
-			 * it prevents the system from being
-			 * rebooted successfully.
-			 */
-
-			gpio-hog;
-			line-name = "Enable Reset Button, disable NOR";
-			gpios = <1 GPIO_ACTIVE_HIGH>;
-			output-low;
-		};
-
-		enable-usb {
-			gpio-hog;
-			line-name = "Power USB Core";
-			gpios = <2 GPIO_ACTIVE_LOW>;
-			output-low;
-			status = "disabled";
-		};
-
-		enable-port1 {
-			gpio-hog;
-			line-name = "Power Drive Port 1";
-			gpios = <3 GPIO_ACTIVE_LOW>;
-			output-low;
-		};
-
-		enable-port0 {
-			gpio-hog;
-			line-name = "Power Drive Port 0";
-			gpios = <7 GPIO_ACTIVE_LOW>;
-			output-low;
-			status = "disabled";
-		};
-	};
-
-	GPIO2: gpio2 at e0100000 {
-		compatible = "wd,mbl-gpio", "ti,74244";
-		reg-names = "dat";
-		reg = <0xe0100000 0x1>;
-		#gpio-cells = <2>;
-		gpio-controller;
-		no-output;
-	};
-
-	gpio-leds {
-		compatible = "gpio-leds";
-
-		failsafe: power-red {
-			label = "mbl:red:power";
-			gpios = <&GPIO1 4 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "panic";
-		};
-
-		status: power-green {
-			label = "mbl:green:power";
-			gpios = <&GPIO1 5 GPIO_ACTIVE_HIGH>;
-		};
-
-		power-blue {
-			label = "mbl:blue:power";
-			gpios = <&GPIO1 6 GPIO_ACTIVE_HIGH>;
-		};
-	};
-
-	gpio_keys_polled {
-		compatible = "gpio-keys-polled";
-		#address-cells = <1>;
-		#size-cells = <0>;
-		poll-interval = <60>;	/* 3 * 20 = 60ms */
-		autorepeat;
-
-		button at 1 {
-			label = "Reset button";
-			linux,code = <KEY_RESTART>;
-			gpios = <&GPIO2 2 GPIO_ACTIVE_LOW>;
-		};
-	};
-};
-
-&CRYPTO {
-	status = "okay";
-};
-
-&PKA {
-	status = "okay";
-};
-
-&TRNG {
-	status = "okay";
-};
-
-&SATA1 {
-	status = "okay";
-};
-
-&UART0 {
-	status = "okay";
-};
-
-&EMAC0 {
-	status = "okay";
-
-	phy-map = <0x2>;
-	phy-address = <0x1>;
-	phy-handle = <&phy>;
-
-	mdio {
-		phy: phy at 1 {
-			compatible = "ethernet-phy-ieee802.3-c22";
-			reg = <1>;
-		};
-	};
-};
-
-&SATA1 {
-	status = "okay";
-};
diff --git a/target/linux/apm821xx/dts/wd-mybooklive-duo.dts b/target/linux/apm821xx/dts/wd-mybooklive-duo.dts
deleted file mode 100644
index 4f6cc506f5..0000000000
--- a/target/linux/apm821xx/dts/wd-mybooklive-duo.dts
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Device Tree Source for AMCC Canyonlands (460EX)
- *
- * Copyright 2008 DENX Software Engineering, Stefan Roese <sr at denx.de>
- * (c) Copyright 2010 Western Digital Technologies, Inc. All Rights Reserved.
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2.  This program is licensed "as is" without
- * any warranty of any kind, whether express or implied.
- */
-
-/dts-v1/;
-
-#include "apollo3g.dtsi"
-
-/ {
-	compatible = "wd,mybooklive-duo", "amcc,apollo3g";
-	model = "MyBook Live Duo";
-};
-
-&SATA0 {
-	status = "okay";
-};
-
-&USBOTG0 {
-	status = "okay";
-	dr_mode = "host";
-};
-
-&GPIO1 {
-	enable-usb {
-		status = "okay";
-	};
-
-	enable-port0 {
-		status = "okay";
-	};
-};
diff --git a/target/linux/apm821xx/dts/wd-mybooklive.dts b/target/linux/apm821xx/dts/wd-mybooklive.dts
index d841352292..aee0d3266d 100644
--- a/target/linux/apm821xx/dts/wd-mybooklive.dts
+++ b/target/linux/apm821xx/dts/wd-mybooklive.dts
@@ -9,9 +9,190 @@
 
 /dts-v1/;
 
-#include "apollo3g.dtsi"
+#include "apm82181.dtsi"
 
 / {
 	compatible = "wd,mybooklive", "amcc,apollo3g";
 	model = "MyBook Live";
+
+	aliases {
+		serial0 = &UART0;
+		led-boot = &status;
+		led-failsafe = &status;
+		led-running = &status;
+		led-upgrade = &status;
+	};
+};
+
+&POB0 {
+	ebc {
+		nor_flash at 0,0 {
+			status = "okay";
+			compatible = "amd,s29gl512n", "jedec-probe", "cfi-flash", "mtd-rom";
+			bank-width = <1>;
+			reg = <0x00000000 0x00000000 0x00080000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				/* Part of bootrom - Don't use it without a jump */
+				label = "free";
+				reg = <0x00000000 0x0001e000>;
+			};
+
+			partition at 1 {
+				label = "env";
+				reg = <0x0001e000 0x00002000>;
+			};
+
+			partition at 2 {
+				label = "uboot";
+				reg = <0x00020000 0x00050000>;
+			};
+		};
+	};
+
+	GPIO1: gpio1 at e0000000 {
+		compatible = "wd,mbl-gpio", "ti,74273";
+		reg-names = "dat";
+		reg = <0xe0000000 0x1>;
+		#gpio-cells = <2>;
+		gpio-controller;
+
+		enable-phy {
+			/* toggle to reset EMAC PHY */
+			gpio-hog;
+			line-name = "enable EMAC PHY";
+			gpios = <0 GPIO_ACTIVE_LOW>;
+			output-low;
+		};
+
+		enable-button {
+			/* Defined in u-boot as: NOT_NOR
+			 * "enables features other than NOR
+			 * specifically, the buffer at CS2"
+			 * (button).
+			 *
+			 * Note: This option is disabled as
+			 * it prevents the system from being
+			 * rebooted successfully.
+			 */
+
+			gpio-hog;
+			line-name = "Enable Reset Button, disable NOR";
+			gpios = <1 GPIO_ACTIVE_HIGH>;
+			output-low;
+		};
+
+		enable-usb {
+			gpio-hog;
+			line-name = "Power USB Core";
+			gpios = <2 GPIO_ACTIVE_LOW>;
+			output-low;
+		};
+
+		enable-port1 {
+			gpio-hog;
+			line-name = "Power Drive Port 1";
+			gpios = <3 GPIO_ACTIVE_LOW>;
+			output-low;
+		};
+
+		enable-port0 {
+			gpio-hog;
+			line-name = "Power Drive Port 0";
+			gpios = <7 GPIO_ACTIVE_LOW>;
+			output-low;
+		};
+	};
+
+	GPIO2: gpio2 at e0100000 {
+		compatible = "wd,mbl-gpio", "ti,74244";
+		reg-names = "dat";
+		reg = <0xe0100000 0x1>;
+		#gpio-cells = <2>;
+		gpio-controller;
+		no-output;
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		failsafe: power-red {
+			label = "mbl:red:power";
+			gpios = <&GPIO1 4 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "panic";
+		};
+
+		status: power-green {
+			label = "mbl:green:power";
+			gpios = <&GPIO1 5 GPIO_ACTIVE_HIGH>;
+		};
+
+		power-blue {
+			label = "mbl:blue:power";
+			gpios = <&GPIO1 6 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	gpio_keys_polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <60>;	/* 3 * 20 = 60ms */
+		autorepeat;
+
+		reset-button {
+			label = "Reset button";
+			linux,code = <KEY_RESTART>;
+			gpios = <&GPIO2 2 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&EMAC0 {
+	status = "okay";
+
+	phy-map = <0x2>;
+	phy-address = <0x1>;
+	phy-handle = <&phy>;
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		phy: phy at 1 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <1>;
+		};
+	};
+};
+
+&CRYPTO {
+	status = "okay";
+};
+
+&PKA {
+	status = "okay";
+};
+
+&TRNG {
+	status = "okay";
+};
+
+&SATA0 {
+	status = "okay";
+};
+
+&SATA1 {
+	status = "okay";
+};
+
+&UART0 {
+	status = "okay";
+};
+
+&USBOTG0 {
+	status = "okay";
+	dr_mode = "host";
 };
diff --git a/target/linux/apm821xx/image/Makefile b/target/linux/apm821xx/image/Makefile
index 1e94a40918..9d9c0e5ace 100644
--- a/target/linux/apm821xx/image/Makefile
+++ b/target/linux/apm821xx/image/Makefile
@@ -214,7 +214,11 @@ define Build/hdd-img
 	./mbl_gen_hdd_img.sh $@ $@.boot $(IMAGE_ROOTFS)
 endef
 
-define Device/MyBookLiveDefault
+define Device/wd_mybooklive
+  DEVICE_TITLE := Western Digital My Book Live Series (Single + Duo)
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport kmod-usb-storage kmod-fs-vfat wpad-mini
+  DEVICE_DTS := wd-mybooklive
+  SUPPORTED_DEVICES += mbl wd_mybooklive-duo
   IMAGE_SIZE := 48m
   BLOCKSIZE := 1k
   DTB_SIZE := 16384
@@ -228,25 +232,8 @@ define Device/MyBookLiveDefault
   IMAGE/rootfs.img.gz := boot-script | boot-img | hdd-img | gzip | append-metadata
 endef
 
-define Device/wd_mybooklive
-$(Device/MyBookLiveDefault)
-  DEVICE_TITLE := Western Digital My Book Live
-  DEVICE_DTS := wd-mybooklive
-  SUPPORTED_DEVICES += mbl
-endef
-
 TARGET_DEVICES += wd_mybooklive
 
-define Device/wd_mybooklive-duo
-$(Device/MyBookLiveDefault)
-  DEVICE_TITLE := Western Digital My Book Live Duo
-  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport kmod-usb-storage kmod-fs-vfat wpad-mini
-  DEVICE_DTS := wd-mybooklive-duo
-  SUPPORTED_DEVICES += mbl
-endef
-
-TARGET_DEVICES += wd_mybooklive-duo
-
 endif
 
 $(eval $(call BuildImage))
-- 
2.18.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list