From 8b27e60c58a6b78826b53093c7b79159265af7ae Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Thu, 13 Mar 2025 22:22:39 +0000 Subject: [PATCH] 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 --- .../dts/mt7988d-asus-zenwifi-bt8-ubootmod.dts | 100 ++++++++++++++++++ .../filogic/base-files/etc/board.d/02_network | 1 + .../base-files/lib/upgrade/platform.sh | 2 + target/linux/mediatek/image/filogic.mk | 24 +++++ 4 files changed, 127 insertions(+) create mode 100644 target/linux/mediatek/dts/mt7988d-asus-zenwifi-bt8-ubootmod.dts 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 00000000000..bee997f3db3 --- /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@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"; + }; +}; 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 832220d2a22..9ff1aaf4f8c 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 821d7592e0c..97c7ceba5a0 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 54615a5c2f6..3a6e1ef71ca 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