[openwrt/openwrt] mediatek: add Zyxel EX5601-T0 with uboot custom partition

LEDE Commits lede-commits at lists.infradead.org
Sun Mar 3 06:38:30 PST 2024


dangole pushed a commit to openwrt/openwrt.git, branch openwrt-23.05:
https://git.openwrt.org/6bec68062b83b86ed65a96fe4a7e1ed30e5423b9

commit 6bec68062b83b86ed65a96fe4a7e1ed30e5423b9
Author: Valerio 'ftp21' Mancini <ftp21 at ftp21.eu>
AuthorDate: Wed Oct 4 11:43:25 2023 +0200

    mediatek: add Zyxel EX5601-T0 with uboot custom partition
    
    The flash procedure is similar to the Xiaomi AX6000 router.
    
    Load openwrt-mediatek-filogic-zyxel_ex5601-t0-ubootmod-initramfs-recovery.itb from original Zyxel U-Boot:
    
    tftpboot openwrt-mediatek-filogic-zyxel_ex5601-t0-ubootmod-initramfs-recovery.itb
    bootm 0x46000000
    Load mtd-rw
    insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1
    
    Format ubi and create ubootenv partitions
    
    ubidetach -p /dev/mtd5; ubiformat /dev/mtd5 -y; ubiattach -p /dev/mtd5
    ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB
    ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB
    Copy openwrt-mediatek-filogic-zyxel_ex5601-t0-ubootmod-initramfs-recovery.itb to /tmp and create recovery partition.
    If your recovery image is larger than 10MiB, size the recovery partition accordingly to make it fit.
    
    ubimkvol /dev/ubi0 -n 2 -N recovery -s 10MiB
    ubiupdatevol /dev/ubi0_2  openwrt-mediatek-filogic-zyxel_ex5601-t0-ubootmod-initramfs-recovery.itb
    Copy preloader and uboot to /tmp and write them in the mtd
    
    mtd write /tmp/openwrt-mediatek-filogic-zyxel_ex5601-t0-ubootmod-preloader.bin bl2
    mtd write /tmp/openwrt-mediatek-filogic-zyxel_ex5601-t0-ubootmod-bl31-uboot.fip fip
    Now write the firmware:
    sysupgrade -n  /tmp/openwrt-mediatek-filogic-zyxel_ex5601-t0-ubootmod-squashfs-sysupgrade.itb
    
    To create a correct BL2, I had to add a profile for 'spim:4k+256' as I could not find a way to value the variable 'NAND_TYPE'.
    
    Features and fixes from hitech95 tree has been squashed, I'm attaching his commit message:
    
    The Power LED was not working correctly and not reacting
     to the boot process and statuses.
    
    The board has space (footprint) for an unpopulated Zigbee chip,
     while we dont know the device model having this chip populated
     we have to assure that the common dts doesnt enable
     interfaces that share pins with such device.
    
    In this instance the PCIe and the uart1 and uart2 are disabled.
    Some of the control PCIE pins seems to be used for the Zigbee chip,
     UART1 seems to be used as a flash port while UART2 should be the
     main comunication interface of Zigbee chip.
    
    The Zigbee chip should be a EFR32MG21. But the pins used for UART
     seems to be not on standard PINS used by other adapters.
     So it cannot run firmwares shared on the web.
     But it should be possible to build a custom firmware with
     the corrtect pinmux.
    
    This commit also contains the following squashed commit from hitech95
     - mediatek: fix sysupgrade for Zyxel EX7601-T0 ubootmod
    
    Changes and fixes added in common board:
     - added aliases for boot status leds.
     - added aliases for the mac-label-device.
     - added pin claims for core features (MDIO and UART 0)
     - added default LEDs configuration (01_leds)
     - added default network configuration (02_network)
     - added missing kmod-usb3 module for USB3
     - fixed LED names
     - fixed reset pin for SLIC chip
     - removed unused pinmux configurations and devices
     - fix LAN (switch) port numbering
     - using nvmem cells for wifi eeprom, dropping deprecated "mediatek,mtd-eeprom"
     - proper factory partition and mac address handling
     - cleaned up spi_nand sections and partition
    
    Changes and fixxes added in stock layout:
     - added NMBM, if u-boot has it, the kernel must be informed.
    
    Co-authored-by: Nicolò Veronese <nicveronese at gmail.com>
    Co-developed-by: Nicolò Veronese <nicveronese at gmail.com>
    Signed-off-by: Nicolò Veronese <nicveronese at gmail.com>
    Signed-off-by: Valerio 'ftp21' Mancini <ftp21 at ftp21.eu>
    (cherry picked from commit b5df398a36f153f036c0a5ff9b221abb0f6f240a)
---
 ...ock.dts => mt7986a-zyxel-ex5601-t0-common.dtsi} | 289 +++-------
 .../mediatek/dts/mt7986a-zyxel-ex5601-t0-stock.dts | 582 +++------------------
 .../dts/mt7986a-zyxel-ex5601-t0-ubootmod.dts       | 106 ++++
 .../filogic/base-files/etc/board.d/01_leds         |   7 +
 .../filogic/base-files/etc/board.d/02_network      |   4 +
 .../etc/hotplug.d/ieee80211/11_fix_wifi_mac        |   3 +-
 .../filogic/base-files/lib/upgrade/platform.sh     |   5 +
 target/linux/mediatek/image/filogic.mk             |  34 +-
 8 files changed, 302 insertions(+), 728 deletions(-)

diff --git a/target/linux/mediatek/dts/mt7986a-zyxel-ex5601-t0-stock.dts b/target/linux/mediatek/dts/mt7986a-zyxel-ex5601-t0-common.dtsi
similarity index 61%
copy from target/linux/mediatek/dts/mt7986a-zyxel-ex5601-t0-stock.dts
copy to target/linux/mediatek/dts/mt7986a-zyxel-ex5601-t0-common.dtsi
index 331150d85d..04e86a737d 100644
--- a/target/linux/mediatek/dts/mt7986a-zyxel-ex5601-t0-stock.dts
+++ b/target/linux/mediatek/dts/mt7986a-zyxel-ex5601-t0-common.dtsi
@@ -4,17 +4,18 @@
  * Author: Sam.Shih <sam.shih at mediatek.com>
  */
 
-/dts-v1/;
 #include "mt7986a.dtsi"
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 
 / {
-	model = "Zyxel EX5601-T0";
-	compatible = "zyxel,ex5601-t0", "mediatek,mt7986a-rfb-snand";
-
 	aliases {
 		serial0 = &uart0;
+		label-mac-device = &gmac0;
+		led-boot = &led_status_green;
+		led-failsafe = &led_status_red;
+		led-running = &led_status_green;
+		led-upgrade = &led_status_red;
 	};
 
 	chosen {
@@ -74,87 +75,112 @@
 		};
 	};
 
-	zyleds {
+	leds {
 		compatible = "gpio-leds";
 
 		led_green_wifi24g {
-			label = "zyled-green-wifi24g";
+			label = "green:wifi24g";
 			gpios = <&pio 1 GPIO_ACTIVE_LOW>;
 			default-state = "off";
 		};
 
 		led_green_wifi5g {
-			label = "zyled-green-wifi5g";
+			label = "green:wifi5g";
 			gpios = <&pio 2 GPIO_ACTIVE_LOW>;
 			default-state = "off";
 		};
 
 		led_green_inet {
-			label = "zyled-green-inet";
+			label = "green:inet";
 			gpios = <&pio 14 GPIO_ACTIVE_LOW>;
 			default-state = "off";
 		};
 
 		led_red_inet {
-			label = "zyled-red-inet";
+			label = "red:inet";
 			gpios = <&pio 15 GPIO_ACTIVE_LOW>;
 			default-state = "off";
 		};
 
-		led_green_pwr {
-			label = "zyled-green-pwr";
+		led_status_green: led_green_pwr {
+			label = "green:pwr";
 			gpios = <&pio 13 GPIO_ACTIVE_LOW>;
 			linux,default-trigger = "timer"; /* Default blinking */
 			led-pattern = <125 125>; /* Fast blink is 4 HZ */
 		};
 
-		led_red_pwr {
-			label = "zyled-red-pwr";
+		led_status_red: led_red_pwr {
+			label = "red:pwr";
 			gpios = <&pio 12 GPIO_ACTIVE_LOW>;
 			default-state = "off";
 		};
 
 		led_green_fxs {
-			label = "zyled-green-fxs";
+			label = "green:fxs";
 			gpios = <&pio 16 GPIO_ACTIVE_HIGH>;
 			default-state = "off";
 		};
 
 		led_amber_fxs {
-			label = "zyled-amber-fxs";
+			label = "amber:fxs";
 			gpios = <&pio 17 GPIO_ACTIVE_HIGH>;
 			default-state = "off";
 		};
 
 		led_amber_wps24g {
-			label = "zyled-amber-wps24g";
+			label = "amber:wps24g";
 			gpios = <&pio 18 GPIO_ACTIVE_HIGH>;
 			default-state = "off";
 		};
 
 		led_amber_wps5g {
-			label = "zyled-amber-wps5g";
+			label = "amber:wps5g";
 			gpios = <&pio 19 GPIO_ACTIVE_HIGH>;
 			default-state = "off";
 		};
 
 		led_green_lan {
-			label = "zyled-green-lan";
+			label = "green:lan";
 			gpios = <&pio 20 GPIO_ACTIVE_HIGH>;
 			default-state = "off";
 		};
 
 		led_green_sfp {
-			label = "zyled-green-sfp";
+			label = "green:sfp";
 			gpios = <&pio 24 GPIO_ACTIVE_HIGH>;
 			default-state = "off";
 		};
-
 	};
+};
 
+&spi0 {
+        pinctrl-names = "default";
+        pinctrl-0 = <&spi_flash_pins>;
+        cs-gpios = <0>, <0>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+        status = "okay";
+
+        spi_nand: spi_nand at 0 {
+                #address-cells = <1>;
+                #size-cells = <1>;
+                compatible = "spi-nand";
+                reg = <1>;
+                spi-max-frequency = <10000000>;
+                spi-tx-bus-width = <4>;
+                spi-rx-bus-width = <4>;
+
+		nand_partitions: partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+		};
+	};
 };
 
 &eth {
+	pinctrl-names = "default";
+	pinctrl-0 = <&eth_pins>;
 	status = "okay";
 
 	gmac0: mac at 0 {
@@ -162,9 +188,6 @@
 		reg = <0>;
 		phy-mode = "2500base-x";
 
-		nvmem-cells = <&macaddr_factory_002a>;
-		nvmem-cell-names = "mac-address";
-
 		fixed-link {
 			speed = <2500>;
 			full-duplex;
@@ -177,9 +200,6 @@
 		reg = <1>;
 		phy-mode = "2500base-x";
 		phy = <&phy6>;
-
-		nvmem-cells = <&macaddr_factory_0024>;
-		nvmem-cell-names = "mac-address";
 	};
 
 	mdio: mdio-bus {
@@ -192,11 +212,13 @@
 		phy5: phy at 5 {
 			compatible = "ethernet-phy-ieee802.3-c45";
 			reg = <5>;
+			mxl,led-config = <0x03f0 0x0 0x0 0x0>;
 		};
 
 		phy6: phy at 6 {
 			compatible = "ethernet-phy-ieee802.3-c45";
 			reg = <6>;
+			mxl,led-config = <0x00f0 0x0 0x0 0x0>;
 		};
 
 		switch at 1f {
@@ -210,22 +232,22 @@
 
 				port at 1 {
 					reg = <1>;
-					label = "lan1";
+					label = "lan2";
 				};
 
 				port at 2 {
 					reg = <2>;
-					label = "lan2";
+					label = "lan3";
 				};
 
 				port at 3 {
 					reg = <3>;
-					label = "lan3";
+					label = "lan4";
 				};
 
 				port at 5 {
 					reg = <5>;
-					label = "lan4";
+					label = "lan1";
 					phy-mode = "2500base-x";
 					phy = <&phy5>;
 				};
@@ -255,106 +277,17 @@
 	pinctrl-names = "default", "dbdc";
 	pinctrl-0 = <&wf_2g_5g_pins>;
 	pinctrl-1 = <&wf_dbdc_pins>;
-	mediatek,mtd-eeprom = <&factory 0x0>;
-	nvmem-cells = <&macaddr_factory_0004>;
-	nvmem-cell-names = "mac-address";
 };
 
 &crypto {
 	status = "okay";
 };
 
-&mmc0 {
-	pinctrl-names = "default", "state_uhs";
-	pinctrl-0 = <&mmc0_pins_default>;
-	pinctrl-1 = <&mmc0_pins_uhs>;
-	bus-width = <8>;
-	max-frequency = <200000000>;
-	cap-mmc-highspeed;
-	mmc-hs200-1_8v;
-	mmc-hs400-1_8v;
-	hs400-ds-delay = <0x14014>;
-	vmmc-supply = <&reg_3p3v>;
-	vqmmc-supply = <&reg_1p8v>;
-	non-removable;
-	no-sd;
-	no-sdio;
-	status = "disabled";
-};
-
-&pcie {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pcie_pins>;
-	status = "okay";
-};
-
-&pcie_phy {
-	status = "okay";
-};
-
 &pio {
-	mmc0_pins_default: mmc0-pins {
-		mux {
-			function = "emmc";
-			groups = "emmc_51";
-		};
-		conf-cmd-dat {
-			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
-			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
-			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
-			input-enable;
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
-		conf-clk {
-			pins = "EMMC_CK";
-			drive-strength = <6>;
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-ds {
-			pins = "EMMC_DSL";
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-rst {
-			pins = "EMMC_RSTB";
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
-	};
-
-	mmc0_pins_uhs: mmc0-uhs-pins {
-		mux {
-			function = "emmc";
-			groups = "emmc_51";
-		};
-		conf-cmd-dat {
-			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
-			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
-			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
-			input-enable;
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
-		conf-clk {
-			pins = "EMMC_CK";
-			drive-strength = <6>;
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-ds {
-			pins = "EMMC_DSL";
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-rst {
-			pins = "EMMC_RSTB";
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
-	};
-
-	pcie_pins: pcie-pins {
+	eth_pins: eth-pins {
 		mux {
-			function = "pcie";
-			groups = "pcie_clk", "pcie_wake", "pcie_pereset";
+			function = "eth";
+			groups = "switch_int", "mdc_mdio";
 		};
 	};
 
@@ -382,6 +315,13 @@
 		};
 	};
 
+	uart0_pins: uart0-pins {
+                mux {
+                        function = "uart";
+                        groups = "uart0";
+                };
+        };
+
 	uart1_pins: uart1-pins {
 		mux {
 			function = "uart";
@@ -429,76 +369,13 @@
 			drive-strength = <4>;
 		};
 	};
-};
-
-&spi0 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&spi_flash_pins>;
-	cs-gpios = <0>, <0>;
-	#address-cells = <1>;
-	#size-cells = <0>;
-	status = "okay";
-
-	spi_nand: spi_nand at 0 {
-		#address-cells = <1>;
-		#size-cells = <1>;
-		compatible = "spi-nand";
-		reg = <1>;
-		spi-max-frequency = <10000000>;
-		spi-tx-bus-width = <4>;
-		spi-rx-bus-width = <4>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition at 0 {
-				label = "BL2";
-				reg = <0x00000 0x0100000>;
-				read-only;
-			};
-
-			partition at 100000 {
-				label = "u-boot-env";
-				reg = <0x0100000 0x0080000>;
-			};
-
-			factory: partition at 180000 {
-				label = "Factory";
-				reg = <0x180000 0x0200000>;
-				read-only;
-			};
-
-			partition at 380000 {
-				label = "FIP";
-				reg = <0x380000 0x01C0000>;
-				read-only;
-			};
 
-			partition at 540000 {
-				label = "zloader";
-				reg = <0x540000 0x0040000>;
-				read-only;
-			};
-
-			partition at 580000 {
-				label = "ubi";
-				reg = <0x580000 0x4000000>;
-			};
-
-			partition at 4580000 {
-				label = "ubi2";
-				reg = <0x4580000 0x4000000>;
-				read-only;
-			};
-
-			partition at 8580000 {
-				label = "zyubi";
-				reg = <0x8580000 0x15A80000>;
-			};
-		};
-	};
+        usb-oc-hog {
+                gpio-hog;
+                gpios = <7 GPIO_ACTIVE_LOW>;
+                input;
+                line-name = "usb-oc";
+        };
 };
 
 &spi1 {
@@ -514,7 +391,7 @@
 		spi-cpol = <1>;
 		channel_count = <1>;
 		debug_level = <4>;       /* 1 = TRC, 2 = DBG, 4 = ERR */
-		reset_gpio = <&pio 7 GPIO_ACTIVE_HIGH>;
+		reset_gpio = <&pio 25 GPIO_ACTIVE_HIGH>;
 		ig,enable-spi = <1>;     /* 1: Enable, 0: Disable */
 	};
 };
@@ -530,39 +407,27 @@
 };
 
 &uart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart0_pins>;
 	status = "okay";
 };
 
 &uart1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&uart1_pins>;
-	status = "okay";
+	status = "disabled";
+
+	/* EFR32MG21 Zigbee (BOOT)*/
 };
 
 &uart2 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&uart2_pins>;
-	status = "okay";
+	status = "disabled";
+
+	/* EFR32MG21 Zigbee */
 };
 
 &usb_phy {
 	status = "okay";
 };
-
-&factory {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_factory_0004: macaddr at 0004 {
-		reg = <0x0004 0x6>;
-	};
-
-	macaddr_factory_0024: macaddr at 0024 {
-		reg = <0x0024 0x6>;
-	};
-
-	macaddr_factory_002a: macaddr at 002a {
-		reg = <0x002a 0x6>;
-	};
-};
diff --git a/target/linux/mediatek/dts/mt7986a-zyxel-ex5601-t0-stock.dts b/target/linux/mediatek/dts/mt7986a-zyxel-ex5601-t0-stock.dts
index 331150d85d..987510d486 100644
--- a/target/linux/mediatek/dts/mt7986a-zyxel-ex5601-t0-stock.dts
+++ b/target/linux/mediatek/dts/mt7986a-zyxel-ex5601-t0-stock.dts
@@ -6,6 +6,7 @@
 
 /dts-v1/;
 #include "mt7986a.dtsi"
+#include "mt7986a-zyxel-ex5601-t0-common.dtsi"
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 
@@ -13,556 +14,111 @@
 	model = "Zyxel EX5601-T0";
 	compatible = "zyxel,ex5601-t0", "mediatek,mt7986a-rfb-snand";
 
-	aliases {
-		serial0 = &uart0;
+	memory at 40000000 {
+		device_type = "memory";
+		reg = <0x40000000 0x20000000>;
 	};
-
-	chosen {
-		stdout-path = "serial0:115200n8";
-	};
-
-	memory {
-		reg = <0 0x40000000 0 0x40000000>;
-	};
-
-	reg_1p8v: regulator-1p8v {
-		compatible = "regulator-fixed";
-		regulator-name = "fixed-1.8V";
-		regulator-min-microvolt = <1800000>;
-		regulator-max-microvolt = <1800000>;
-		regulator-boot-on;
-		regulator-always-on;
-	};
-
-	reg_3p3v: regulator-3p3v {
-		compatible = "regulator-fixed";
-		regulator-name = "fixed-3.3V";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-		regulator-boot-on;
-		regulator-always-on;
-	};
-
-	reg_5v: regulator-5v {
-		compatible = "regulator-fixed";
-		regulator-name = "fixed-5V";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		regulator-boot-on;
-		regulator-always-on;
-	};
-
-	gpio-keys {
-		compatible = "gpio-keys";
-		poll-interval = <20>;
-
-		reset-button {
-			label = "reset";
-			gpios = <&pio 21 GPIO_ACTIVE_LOW>;
-			linux,code = <KEY_RESTART>;
-		};
-
-		wlan-button {
-			label = "wlan";
-			gpios = <&pio 11 GPIO_ACTIVE_LOW>;
-			linux,code = <KEY_WLAN>;
-		};
-		wps-button {
-			label = "wps";
-			gpios = <&pio 56 GPIO_ACTIVE_LOW>;
-			linux,code = <KEY_WPS_BUTTON>;
-		};
-	};
-
-	zyleds {
-		compatible = "gpio-leds";
-
-		led_green_wifi24g {
-			label = "zyled-green-wifi24g";
-			gpios = <&pio 1 GPIO_ACTIVE_LOW>;
-			default-state = "off";
-		};
-
-		led_green_wifi5g {
-			label = "zyled-green-wifi5g";
-			gpios = <&pio 2 GPIO_ACTIVE_LOW>;
-			default-state = "off";
-		};
-
-		led_green_inet {
-			label = "zyled-green-inet";
-			gpios = <&pio 14 GPIO_ACTIVE_LOW>;
-			default-state = "off";
-		};
-
-		led_red_inet {
-			label = "zyled-red-inet";
-			gpios = <&pio 15 GPIO_ACTIVE_LOW>;
-			default-state = "off";
-		};
-
-		led_green_pwr {
-			label = "zyled-green-pwr";
-			gpios = <&pio 13 GPIO_ACTIVE_LOW>;
-			linux,default-trigger = "timer"; /* Default blinking */
-			led-pattern = <125 125>; /* Fast blink is 4 HZ */
-		};
-
-		led_red_pwr {
-			label = "zyled-red-pwr";
-			gpios = <&pio 12 GPIO_ACTIVE_LOW>;
-			default-state = "off";
-		};
-
-		led_green_fxs {
-			label = "zyled-green-fxs";
-			gpios = <&pio 16 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led_amber_fxs {
-			label = "zyled-amber-fxs";
-			gpios = <&pio 17 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led_amber_wps24g {
-			label = "zyled-amber-wps24g";
-			gpios = <&pio 18 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led_amber_wps5g {
-			label = "zyled-amber-wps5g";
-			gpios = <&pio 19 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led_green_lan {
-			label = "zyled-green-lan";
-			gpios = <&pio 20 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-		led_green_sfp {
-			label = "zyled-green-sfp";
-			gpios = <&pio 24 GPIO_ACTIVE_HIGH>;
-			default-state = "off";
-		};
-
-	};
-
 };
 
-&eth {
-	status = "okay";
-
-	gmac0: mac at 0 {
-		compatible = "mediatek,eth-mac";
-		reg = <0>;
-		phy-mode = "2500base-x";
-
-		nvmem-cells = <&macaddr_factory_002a>;
-		nvmem-cell-names = "mac-address";
-
-		fixed-link {
-			speed = <2500>;
-			full-duplex;
-			pause;
-		};
-	};
-
-	gmac1: mac at 1 {
-		compatible = "mediatek,eth-mac";
-		reg = <1>;
-		phy-mode = "2500base-x";
-		phy = <&phy6>;
-
-		nvmem-cells = <&macaddr_factory_0024>;
-		nvmem-cell-names = "mac-address";
-	};
-
-	mdio: mdio-bus {
-		#address-cells = <1>;
-		#size-cells = <0>;
-		reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
-		reset-delay-us = <1500000>;
-		reset-post-delay-us = <1000000>;
-
-		phy5: phy at 5 {
-			compatible = "ethernet-phy-ieee802.3-c45";
-			reg = <5>;
-		};
-
-		phy6: phy at 6 {
-			compatible = "ethernet-phy-ieee802.3-c45";
-			reg = <6>;
-		};
-
-		switch at 1f {
-			compatible = "mediatek,mt7531";
-			reg = <31>;
-			reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
-
-			ports {
-				#address-cells = <1>;
-				#size-cells = <0>;
-
-				port at 1 {
-					reg = <1>;
-					label = "lan1";
-				};
-
-				port at 2 {
-					reg = <2>;
-					label = "lan2";
-				};
-
-				port at 3 {
-					reg = <3>;
-					label = "lan3";
-				};
-
-				port at 5 {
-					reg = <5>;
-					label = "lan4";
-					phy-mode = "2500base-x";
-					phy = <&phy5>;
-				};
-
-				port at 6 {
-					reg = <6>;
-					ethernet = <&gmac0>;
-					phy-mode = "2500base-x";
-
-					fixed-link {
-						speed = <2500>;
-						full-duplex;
-						pause;
-					};
-				};
-			};
-		};
-	};
+&spi_nand {
+	mediatek,nmbm;
+	mediatek,bmt-max-ratio = <1>;
+	mediatek,bmt-max-reserved-blocks = <64>;
 };
 
-&watchdog {
-	status = "okay";
-};
+&nand_partitions {
 
-&wifi {
-	status = "okay";
-	pinctrl-names = "default", "dbdc";
-	pinctrl-0 = <&wf_2g_5g_pins>;
-	pinctrl-1 = <&wf_dbdc_pins>;
-	mediatek,mtd-eeprom = <&factory 0x0>;
-	nvmem-cells = <&macaddr_factory_0004>;
-	nvmem-cell-names = "mac-address";
-};
-
-&crypto {
-	status = "okay";
-};
-
-&mmc0 {
-	pinctrl-names = "default", "state_uhs";
-	pinctrl-0 = <&mmc0_pins_default>;
-	pinctrl-1 = <&mmc0_pins_uhs>;
-	bus-width = <8>;
-	max-frequency = <200000000>;
-	cap-mmc-highspeed;
-	mmc-hs200-1_8v;
-	mmc-hs400-1_8v;
-	hs400-ds-delay = <0x14014>;
-	vmmc-supply = <&reg_3p3v>;
-	vqmmc-supply = <&reg_1p8v>;
-	non-removable;
-	no-sd;
-	no-sdio;
-	status = "disabled";
-};
-
-&pcie {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pcie_pins>;
-	status = "okay";
-};
-
-&pcie_phy {
-	status = "okay";
-};
-
-&pio {
-	mmc0_pins_default: mmc0-pins {
-		mux {
-			function = "emmc";
-			groups = "emmc_51";
-		};
-		conf-cmd-dat {
-			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
-			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
-			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
-			input-enable;
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
-		conf-clk {
-			pins = "EMMC_CK";
-			drive-strength = <6>;
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-ds {
-			pins = "EMMC_DSL";
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-rst {
-			pins = "EMMC_RSTB";
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
+	partition at 0 {
+		label = "BL2";
+		reg = <0x00000 0x0100000>;
+		read-only;
 	};
 
-	mmc0_pins_uhs: mmc0-uhs-pins {
-		mux {
-			function = "emmc";
-			groups = "emmc_51";
-		};
-		conf-cmd-dat {
-			pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
-			       "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
-			       "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
-			input-enable;
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
-		conf-clk {
-			pins = "EMMC_CK";
-			drive-strength = <6>;
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-ds {
-			pins = "EMMC_DSL";
-			mediatek,pull-down-adv = <2>;	/* pull-down 50K */
-		};
-		conf-rst {
-			pins = "EMMC_RSTB";
-			drive-strength = <4>;
-			mediatek,pull-up-adv = <1>;	/* pull-up 10K */
-		};
+	partition at 100000 {
+		label = "u-boot-env";
+		reg = <0x0100000 0x0080000>;
 	};
 
-	pcie_pins: pcie-pins {
-		mux {
-			function = "pcie";
-			groups = "pcie_clk", "pcie_wake", "pcie_pereset";
-		};
+	factory: partition at 180000 {
+		label = "Factory";
+		reg = <0x180000 0x0200000>;
+		read-only;
 	};
 
-	spic_pins_g2: spic-pins-29-to-32 {
-		mux {
-			function = "spi";
-			groups = "spi1_2";
-		};
+	partition at 380000 {
+		label = "FIP";
+		reg = <0x380000 0x01C0000>;
+		read-only;
 	};
 
-	spi_flash_pins: spi-flash-pins-33-to-38 {
-		mux {
-			function = "spi";
-			groups = "spi0", "spi0_wp_hold";
-		};
-		conf-pu {
-			pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP";
-			drive-strength = <8>;
-			mediatek,pull-up-adv = <0>;	/* bias-disable */
-		};
-		conf-pd {
-			pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO";
-			drive-strength = <8>;
-			mediatek,pull-down-adv = <0>;	/* bias-disable */
-		};
+	partition at 540000 {
+		label = "zloader";
+		reg = <0x540000 0x0040000>;
+		read-only;
 	};
 
-	uart1_pins: uart1-pins {
-		mux {
-			function = "uart";
-			groups = "uart1";
-		};
+	partition at 580000 {
+		label = "ubi";
+		reg = <0x580000 0x4000000>;
 	};
 
-	uart2_pins: uart2-pins {
-		mux {
-			function = "uart";
-			groups = "uart2";
-		};
-	};
-
-	wf_2g_5g_pins: wf_2g_5g-pins {
-		mux {
-			function = "wifi";
-			groups = "wf_2g", "wf_5g";
-		};
-		conf {
-			pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
-			       "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
-			       "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
-			       "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
-			       "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
-			       "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
-			       "WF1_TOP_CLK", "WF1_TOP_DATA";
-			drive-strength = <4>;
-		};
+	partition at 4580000 {
+		label = "ubi2";
+		reg = <0x4580000 0x4000000>;
+		read-only;
 	};
 
-	wf_dbdc_pins: wf_dbdc-pins {
-		mux {
-			function = "wifi";
-			groups = "wf_dbdc";
-		};
-		conf {
-			pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
-			       "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
-			       "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
-			       "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
-			       "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
-			       "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
-			       "WF1_TOP_CLK", "WF1_TOP_DATA";
-			drive-strength = <4>;
-		};
+	partition at 8580000 {
+		label = "zyubi";
+		reg = <0x8580000 0x15A80000>;
 	};
 };
 
-&spi0 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&spi_flash_pins>;
-	cs-gpios = <0>, <0>;
+&factory {
+	compatible = "nvmem-cells";
 	#address-cells = <1>;
-	#size-cells = <0>;
-	status = "okay";
+	#size-cells = <1>;
 
-	spi_nand: spi_nand at 0 {
+	nvmem-layout {
+		compatible = "fixed-layout";
 		#address-cells = <1>;
-		#size-cells = <1>;
-		compatible = "spi-nand";
-		reg = <1>;
-		spi-max-frequency = <10000000>;
-		spi-tx-bus-width = <4>;
-		spi-rx-bus-width = <4>;
 
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
+		eeprom_factory: eeprom at 0 {
 			#size-cells = <1>;
+			reg = <0x0 0x1000>;
+		};
 
-			partition at 0 {
-				label = "BL2";
-				reg = <0x00000 0x0100000>;
-				read-only;
-			};
-
-			partition at 100000 {
-				label = "u-boot-env";
-				reg = <0x0100000 0x0080000>;
-			};
-
-			factory: partition at 180000 {
-				label = "Factory";
-				reg = <0x180000 0x0200000>;
-				read-only;
-			};
-
-			partition at 380000 {
-				label = "FIP";
-				reg = <0x380000 0x01C0000>;
-				read-only;
-			};
-
-			partition at 540000 {
-				label = "zloader";
-				reg = <0x540000 0x0040000>;
-				read-only;
-			};
-
-			partition at 580000 {
-				label = "ubi";
-				reg = <0x580000 0x4000000>;
-			};
-
-			partition at 4580000 {
-				label = "ubi2";
-				reg = <0x4580000 0x4000000>;
-				read-only;
-			};
-
-			partition at 8580000 {
-				label = "zyubi";
-				reg = <0x8580000 0x15A80000>;
-			};
+		macaddr_factory_0004: macaddr at 0004 {
+			compatible = "mac-base";
+			reg = <0x0004 0x6>;
+			#nvmem-cell-cells = <1>;
 		};
-	};
-};
 
-&spi1 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&spic_pins_g2>;
-	status = "okay";
+		macaddr_factory_0024: macaddr at 0024 {
+			compatible = "mac-base";
+			reg = <0x0024 0x6>;
+			#nvmem-cell-cells = <1>;
+		};
 
-	proslic_spi: proslic_spi at 0 {
-		compatible = "silabs,proslic_spi";
-		reg = <0>;
-		spi-max-frequency = <10000000>;
-		spi-cpha = <1>;
-		spi-cpol = <1>;
-		channel_count = <1>;
-		debug_level = <4>;       /* 1 = TRC, 2 = DBG, 4 = ERR */
-		reset_gpio = <&pio 7 GPIO_ACTIVE_HIGH>;
-		ig,enable-spi = <1>;     /* 1: Enable, 0: Disable */
+		macaddr_factory_002a: macaddr at 002a {
+			compatible = "mac-base";
+			reg = <0x002a 0x6>;
+			#nvmem-cell-cells = <1>;
+		};
 	};
 };
 
-&ssusb {
-	vusb33-supply = <&reg_3p3v>;
-	vbus-supply = <&reg_5v>;
-	status = "okay";
-};
-
-&trng {
-	status = "okay";
-};
-
-&uart0 {
-	status = "okay";
-};
-
-&uart1 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart1_pins>;
-	status = "okay";
-};
-
-&uart2 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&uart2_pins>;
-	status = "okay";
+&gmac0 {
+	nvmem-cells = <&macaddr_factory_002a 0>;
+	nvmem-cell-names = "mac-address";
 };
 
-&usb_phy {
-	status = "okay";
+&gmac1 {
+	nvmem-cells = <&macaddr_factory_0024 0>;
+	nvmem-cell-names = "mac-address";
 };
 
-&factory {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_factory_0004: macaddr at 0004 {
-		reg = <0x0004 0x6>;
-	};
-
-	macaddr_factory_0024: macaddr at 0024 {
-		reg = <0x0024 0x6>;
-	};
-
-	macaddr_factory_002a: macaddr at 002a {
-		reg = <0x002a 0x6>;
-	};
+&wifi {
+	nvmem-cells = <&eeprom_factory>;
+	nvmem-cell-names = "eeprom";
 };
diff --git a/target/linux/mediatek/dts/mt7986a-zyxel-ex5601-t0-ubootmod.dts b/target/linux/mediatek/dts/mt7986a-zyxel-ex5601-t0-ubootmod.dts
new file mode 100644
index 0000000000..a300e2052d
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7986a-zyxel-ex5601-t0-ubootmod.dts
@@ -0,0 +1,106 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 MediaTek Inc.
+ * Author: Sam.Shih <sam.shih at mediatek.com>
+ */
+
+/dts-v1/;
+#include "mt7986a.dtsi"
+#include "mt7986a-zyxel-ex5601-t0-common.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	model = "Zyxel EX5601-T0 ubootmod";
+	compatible = "zyxel,ex5601-t0-ubootmod", "mediatek,mt7986a";
+	memory at 40000000 {
+		device_type = "memory";
+		reg = <0x40000000 0x20000000>;
+	};
+};
+
+&nand_partitions {
+	partition at 0 {
+		label = "bl2";
+		reg = <0x0 0x100000>;
+		read-only;
+	};
+
+	partition at 100000 {
+		label = "u-boot-env";
+		reg = <0x0100000 0x0080000>;
+		read-only;
+	};
+
+	factory: partition at 180000 {
+		label = "Factory";
+		reg = <0x180000 0x0200000>;
+		read-only;
+	};
+
+	partition at 380000 {
+		label = "fip";
+		reg = <0x380000 0x0200000>;
+		read-only;
+	};
+			
+	partition at 540000 {
+		label = "zloader";
+		reg = <0x540000 0x0040000>;
+		read-only;
+	};
+			
+	partition at 580000 {
+		label = "ubi";
+		reg = <0x580000 0x1da80000>;
+	};
+};
+
+&factory {
+	compatible = "nvmem-cells";
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	nvmem-layout {
+		compatible = "fixed-layout";
+		#address-cells = <1>; 
+
+		eeprom_factory: eeprom at 0 {
+			#size-cells = <1>;
+			reg = <0x0 0x1000>;
+		};
+
+		macaddr_factory_0004: macaddr at 0004 {
+			compatible = "mac-base";
+			reg = <0x0004 0x6>;
+			#nvmem-cell-cells = <1>;
+		};
+
+		macaddr_factory_0024: macaddr at 0024 {
+			compatible = "mac-base";
+			reg = <0x0024 0x6>;
+			#nvmem-cell-cells = <1>;
+		};
+
+		macaddr_factory_002a: macaddr at 002a {
+			compatible = "mac-base";
+			reg = <0x002a 0x6>;
+			#nvmem-cell-cells = <1>;
+		};
+	};
+};
+
+&gmac0 {
+	nvmem-cells = <&macaddr_factory_002a 0>;
+	nvmem-cell-names = "mac-address";
+};
+
+&gmac1 {
+	nvmem-cells = <&macaddr_factory_0024 0>;
+	nvmem-cell-names = "mac-address";
+};
+
+&wifi {
+	nvmem-cells = <&eeprom_factory>;
+	nvmem-cell-names = "eeprom";
+};
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds b/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
index cdeaa6c5c5..75c8fcda9b 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
@@ -42,6 +42,13 @@ xiaomi,redmi-router-ax6000-stock|\
 xiaomi,redmi-router-ax6000-ubootmod)
 	ucidef_set_led_netdev "wan" "wan" "rgb:network" "wan"
 	;;
+zyxel_ex5601-t0-stock|\
+zyxel,ex5601-t0-ubootmod)
+	ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0" "link tx rx"
+	ucidef_set_led_netdev "wan" "WAN" "green:inet" "eth1" "link tx rx"
+	ucidef_set_led_netdev "wifi-24g" "WIFI-2.4G" "green:wifi24g" "phy0-ap0" "link tx rx"
+	ucidef_set_led_netdev "wifi-5g" "WIFI-5G" "green:wifi5g" "phy1-ap0" "link tx rx"
+        ;;
 esac
 
 board_config_flush
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
index 2e978be680..a48fbbc79c 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
@@ -73,6 +73,10 @@ mediatek_setup_interfaces()
 	xiaomi,redmi-router-ax6000-ubootmod)
 		ucidef_set_interfaces_lan_wan "lan2 lan3 lan4" wan
 		;;
+	zyxel,ex5601-t0-stock|\
+	zyxel,ex5601-t0-ubootmod)
+		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" eth1
+		;;
 	*)
 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" wan
 		;;
diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
index f8ebc1da42..e6378dd498 100644
--- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
+++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
@@ -107,7 +107,8 @@ case "$board" in
 		;;
 	routerich,ax3000|\
 	zbtlink,zbt-z8102ax|\
-	zyxel,ex5601-t0)
+	zyxel,ex5601-t0|\
+	zyxel,ex5601-t0-ubootmod)
 		addr=$(mtd_get_mac_binary "Factory" 0x4)
 		[ "$PHYNBR" = "1" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress
 		;;
diff --git a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
index e3b042c876..9b3ebe92f1 100755
--- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
@@ -142,6 +142,11 @@ platform_do_upgrade() {
 		CI_ROOT_UBIPART=ubi
 		nand_do_upgrade "$1"
 		;;
+        zyxel,ex5601-t0-ubootmod)
+		CI_KERNPART="fit"
+		CI_ROOTPART="ubi_rootfs"
+                nand_do_upgrade "$1"
+                ;;
 	*)
 		nand_do_upgrade "$1"
 		;;
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 194319a228..7daac6a1fa 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -801,10 +801,11 @@ TARGET_DEVICES += zbtlink_zbt-z8102ax
 
 define Device/zyxel_ex5601-t0-stock
   DEVICE_VENDOR := Zyxel
-  DEVICE_MODEL := EX5601-T0  (stock layout)
+  DEVICE_MODEL := EX5601-T0
+  DEVICE_VARIANT := (stock layout)
   DEVICE_DTS := mt7986a-zyxel-ex5601-t0-stock
   DEVICE_DTS_DIR := ../dts
-  DEVICE_PACKAGES := kmod-mt7986-firmware mt7986-wo-firmware
+  DEVICE_PACKAGES := kmod-mt7986-firmware mt7986-wo-firmware kmod-usb3
   SUPPORTED_DEVICES := mediatek,mt7986a-rfb-snand
   UBINIZE_OPTS := -E 5
   BLOCKSIZE := 256k
@@ -821,6 +822,35 @@ define Device/zyxel_ex5601-t0-stock
 endef
 TARGET_DEVICES += zyxel_ex5601-t0-stock
 
+define Device/zyxel_ex5601-t0-ubootmod
+  DEVICE_VENDOR := Zyxel
+  DEVICE_MODEL := EX5601-T0
+  DEVICE_VARIANT := (OpenWrt U-Boot layout)
+  DEVICE_DTS := mt7986a-zyxel-ex5601-t0-ubootmod
+  DEVICE_DTS_DIR := ../dts
+  DEVICE_PACKAGES := kmod-mt7986-firmware mt7986-wo-firmware kmod-usb3
+  KERNEL_INITRAMFS_SUFFIX := -recovery.itb
+  IMAGES := sysupgrade.itb
+  UBINIZE_OPTS := -E 5
+  BLOCKSIZE := 256k
+  PAGESIZE := 4096
+  KERNEL_IN_UBI := 1
+  UBOOTENV_IN_UBI := 1
+  KERNEL := kernel-bin | lzma
+  KERNEL_INITRAMFS := kernel-bin | lzma | \
+        fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd
+  IMAGE/sysupgrade.itb := append-kernel | \
+        fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | append-metadata
+  ARTIFACTS := preloader.bin bl31-uboot.fip
+  ARTIFACT/preloader.bin := mt7986-bl2 spim-nand-4k-ddr4
+  ARTIFACT/bl31-uboot.fip := mt7986-bl31-uboot zyxel_ex5601-t0
+ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
+  ARTIFACTS += initramfs-factory.ubi
+  ARTIFACT/initramfs-factory.ubi := append-image-stage initramfs-recovery.itb | ubinize-kernel
+endif
+endef
+TARGET_DEVICES += zyxel_ex5601-t0-ubootmod
+
 define Device/zyxel_ex5700-telenor
   DEVICE_VENDOR := ZyXEL
   DEVICE_MODEL := EX5700 (Telenor)




More information about the lede-commits mailing list