[openwrt/openwrt] mediatek: filogic: add build for ASUS ZenWiFi BT8 with OpenWrt's U-Boot

LEDE Commits lede-commits at lists.infradead.org
Sat Mar 29 18:04:00 PDT 2025


dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/8b27e60c58a6b78826b53093c7b79159265af7ae

commit 8b27e60c58a6b78826b53093c7b79159265af7ae
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Thu Mar 13 22:22:39 2025 +0000

    mediatek: filogic: add build for ASUS ZenWiFi BT8 with OpenWrt's U-Boot
    
    Add 'ubootmod' variant for the ASUS ZenWiFi BT8.
    An out-of-tree installer will be provided in Github to allow users an easy
    transition from the stock loader to OpenWrt's bootchain which is built from
    source.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 .../dts/mt7988d-asus-zenwifi-bt8-ubootmod.dts      | 100 +++++++++++++++++++++
 .../filogic/base-files/etc/board.d/02_network      |   1 +
 .../filogic/base-files/lib/upgrade/platform.sh     |   2 +
 target/linux/mediatek/image/filogic.mk             |  24 +++++
 4 files changed, 127 insertions(+)

diff --git a/target/linux/mediatek/dts/mt7988d-asus-zenwifi-bt8-ubootmod.dts b/target/linux/mediatek/dts/mt7988d-asus-zenwifi-bt8-ubootmod.dts
new file mode 100644
index 0000000000..bee997f3db
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7988d-asus-zenwifi-bt8-ubootmod.dts
@@ -0,0 +1,100 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+
+#include "mt7988d-asus-zenwifi-bt8.dtsi"
+
+/ {
+	model = "ASUS ZenWiFi BT8 (U-Boot mod)";
+	compatible = "asus,zenwifi-bt8-ubootmod", "mediatek,mt7988a";
+
+	chosen {
+		rootdisk = <&ubi_fit_volume>;
+		stdout-path = "serial0:115200n8";
+	};
+};
+
+&spi0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi0_flash_pins>;
+	status = "okay";
+
+	spi_nand: spi_nand at 0 {
+		compatible = "spi-nand";
+		reg = <0>;
+		spi-max-frequency = <52000000>;
+		spi-tx-buswidth = <4>;
+		spi-rx-buswidth = <4>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				reg = <0x0 0x200000>;
+				label = "bl2";
+				read-only;
+			};
+
+			partition at 200000 {
+				reg = <0x200000 0x7e00000>;
+				compatible = "linux,ubi";
+				label = "UBI_DEV";
+
+				volumes {
+					ubi_factory: ubi-volume-factory {
+						volname = "factory";
+					};
+
+					ubi_fit_volume: ubi-volume-fit {
+						volname = "fit";
+					};
+				};
+			};
+		};
+	};
+};
+
+&ubi_factory {
+	ASUS_BT8_NVMEM_LAYOUT;
+};
+
+&gmac0 {
+	nvmem-cells = <&macaddr_factory_4>;
+	nvmem-cell-names = "mac-address";
+};
+
+&gmac1 {
+	nvmem-cells = <&macaddr_factory_a>;
+	nvmem-cell-names = "mac-address";
+};
+
+&gmac2 {
+	nvmem-cells = <&macaddr_factory_4>;
+	nvmem-cell-names = "mac-address";
+};
+
+&mt7996_wifi {
+	nvmem-cells = <&eeprom_factory_0>;
+	nvmem-cell-names = "eeprom";
+
+	band at 0 {
+		/* 2.4 GHz */
+		reg = <0>;
+		nvmem-cells = <&macaddr_factory_fffee>;
+		nvmem-cell-names = "mac-address";
+	};
+
+	band at 1 {
+		/* 5 GHz */
+		reg = <1>;
+		nvmem-cells = <&macaddr_factory_ffff4>;
+		nvmem-cell-names = "mac-address";
+	};
+
+	band at 2 {
+		/* 6 GHz */
+		reg = <2>;
+		nvmem-cells = <&macaddr_factory_ffffa>;
+		nvmem-cell-names = "mac-address";
+	};
+};
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 832220d2a2..9ff1aaf4f8 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
@@ -30,6 +30,7 @@ mediatek_setup_interfaces()
 		;;
 	asus,rt-ax59u|\
 	asus,zenwifi-bt8|\
+	asus,zenwifi-bt8-ubootmod|\
 	cetron,ct3003|\
 	cmcc,a10-stock|\
 	cmcc,a10-ubootmod|\
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 821d7592e0..97c7ceba5a 100755
--- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
@@ -67,6 +67,7 @@ platform_do_upgrade() {
 
 	case "$board" in
 	abt,asr3000|\
+	asus,zenwifi-bt8-ubootmod|\
 	bananapi,bpi-r3|\
 	bananapi,bpi-r3-mini|\
 	bananapi,bpi-r4|\
@@ -191,6 +192,7 @@ platform_check_image() {
 	[ "$#" -gt 1 ] && return 1
 
 	case "$board" in
+	asus,zenwifi-bt8-ubootmod|\
 	bananapi,bpi-r3|\
 	bananapi,bpi-r3-mini|\
 	bananapi,bpi-r4|\
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 54615a5c2f..3a6e1ef71c 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -313,6 +313,30 @@ endif
 endef
 TARGET_DEVICES += asus_zenwifi-bt8
 
+define Device/asus_zenwifi-bt8-ubootmod
+  DEVICE_VENDOR := ASUS
+  DEVICE_MODEL := ZenWiFi BT8
+  DEVICE_VARIANT := U-Boot mod
+  DEVICE_DTS := mt7988d-asus-zenwifi-bt8-ubootmod
+  DEVICE_DTS_DIR := ../dts
+  DEVICE_DTS_LOADADDR := 0x45f00000
+  DEVICE_PACKAGES := kmod-usb3 mt7988-2p5g-phy-firmware kmod-mt7996-firmware mt7988-wo-firmware
+  ARTIFACTS := preloader.bin bl31-uboot.fip
+  ARTIFACT/preloader.bin := mt7988-bl2 spim-nand-ubi-ddr4
+  ARTIFACT/bl31-uboot.fip := mt7988-bl31-uboot asus_zenwifi-bt8
+  KERNEL := kernel-bin | gzip
+  KERNEL_INITRAMFS := kernel-bin | lzma | \
+	fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
+  KERNEL_INITRAMFS_SUFFIX := -recovery.itb
+  KERNEL_LOADADDR := 0x46000000
+  KERNEL_IN_UBI := 1
+  UBOOTENV_IN_UBI := 1
+  IMAGES := sysupgrade.itb
+  IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-with-rootfs | pad-rootfs | append-metadata
+endef
+TARGET_DEVICES += asus_zenwifi-bt8-ubootmod
+
+
 define Device/bananapi_bpi-r3
   DEVICE_VENDOR := Bananapi
   DEVICE_MODEL := BPi-R3




More information about the lede-commits mailing list