mediatek: filogic: add build for ASUS ZenWiFi BT8 with OpenWrt's U-Boot
authorDaniel Golle <daniel@makrotopia.org>
Thu, 13 Mar 2025 22:22:39 +0000 (22:22 +0000)
committerDaniel Golle <daniel@makrotopia.org>
Sun, 30 Mar 2025 01:02:58 +0000 (02:02 +0100)
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@makrotopia.org>
target/linux/mediatek/dts/mt7988d-asus-zenwifi-bt8-ubootmod.dts [new file with mode: 0644]
target/linux/mediatek/filogic/base-files/etc/board.d/02_network
target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
target/linux/mediatek/image/filogic.mk

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 (file)
index 0000000..bee997f
--- /dev/null
@@ -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@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@0 {
+                               reg = <0x0 0x200000>;
+                               label = "bl2";
+                               read-only;
+                       };
+
+                       partition@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@0 {
+               /* 2.4 GHz */
+               reg = <0>;
+               nvmem-cells = <&macaddr_factory_fffee>;
+               nvmem-cell-names = "mac-address";
+       };
+
+       band@1 {
+               /* 5 GHz */
+               reg = <1>;
+               nvmem-cells = <&macaddr_factory_ffff4>;
+               nvmem-cell-names = "mac-address";
+       };
+
+       band@2 {
+               /* 6 GHz */
+               reg = <2>;
+               nvmem-cells = <&macaddr_factory_ffffa>;
+               nvmem-cell-names = "mac-address";
+       };
+};
index 832220d2a22e8b80d2de11702f9d6c9b2ff611f9..9ff1aaf4f8ca0abec1f215a8cb5fbd153808bc6e 100644 (file)
@@ -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|\
index 821d7592e0c64d7f007ac770ab7b9090e108c713..97c7ceba5a0afc079fbd203aea51bb17ea13c90f 100755 (executable)
@@ -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|\
index 54615a5c2f6bd2443e399e9b486bf266b5c9b46f..3a6e1ef71ca55f94743f8c4798bbc22122dc29f5 100644 (file)
@@ -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