From 1794309bb5a442b5824de27a889f0855dcfe2198 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Mon, 19 Feb 2024 03:22:52 +0000 Subject: [PATCH] mediatek: filogic: asus-tuf-ax6000: use NVMEM-on-UBI Use newly added support for NVMEM-on-UBI instead of extracting MAC address and WiFi EEPROM data in userspace. Signed-off-by: Daniel Golle --- .../mediatek/dts/mt7986a-asus-tuf-ax6000.dts | 58 +++++++++++++++++-- .../filogic/base-files/etc/board.d/02_network | 6 -- .../etc/hotplug.d/firmware/11-mt76-caldata | 4 -- 3 files changed, 52 insertions(+), 16 deletions(-) diff --git a/target/linux/mediatek/dts/mt7986a-asus-tuf-ax6000.dts b/target/linux/mediatek/dts/mt7986a-asus-tuf-ax6000.dts index 2d7b9c8c5c01..bde2525cd755 100644 --- a/target/linux/mediatek/dts/mt7986a-asus-tuf-ax6000.dts +++ b/target/linux/mediatek/dts/mt7986a-asus-tuf-ax6000.dts @@ -13,6 +13,7 @@ aliases { serial0 = &uart0; + label-mac-device = &gmac0; led-boot = &led_system; led-failsafe = &led_system; led-running = &led_system; @@ -21,7 +22,7 @@ chosen { stdout-path = "serial0:115200n8"; - bootargs-override = "ubi.mtd=UBI_DEV"; + bootargs-override = ""; }; memory { @@ -101,6 +102,8 @@ /* LAN */ compatible = "mediatek,eth-mac"; reg = <0>; + nvmem-cells = <&macaddr_factory_4>; + nvmem-cell-names = "mac-address"; phy-mode = "2500base-x"; fixed-link { @@ -219,33 +222,74 @@ spi_nand_flash: flash@0 { compatible = "spi-nand"; + reg = <0>; #address-cells = <1>; #size-cells = <1>; - reg = <0>; spi-max-frequency = <20000000>; spi-tx-bus-width = <4>; spi-rx-bus-width = <4>; - partitions: partitions { + /* + * ASUS bootloader tries to replace the partitions defined in + * Device Tree and by that also deletes all additional properties + * needed for UBI and NVMEM-on-UBI. + * Prevent this from happening by tricking the loader to delete and + * replace a bait node instead. + */ + partitions: dummy { + compatible = "u-boot-dummy-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + reg = <0x0 0x0>; + label = "remove_me"; + }; + }; + + partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; partition@0 { - label = "bootloader"; reg = <0x0 0x400000>; + label = "bootloader"; read-only; }; partition@400000 { - label = "UBI_DEV"; + compatible = "linux,ubi"; reg = <0x400000 0xfc00000>; + label = "UBI_DEV"; + + volumes { + ubi_factory: ubi-volume-factory { + volname = "Factory"; + }; + }; }; }; }; }; +&ubi_factory { + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + + eeprom_factory_0: eeprom@0 { + reg = <0x0 0x1000>; + }; + + macaddr_factory_4: macaddr@4 { + reg = <0x4 0x6>; + }; + }; +}; + &switch { ports { #address-cells = <1>; @@ -360,10 +404,12 @@ }; &wifi { - status = "okay"; + nvmem-cells = <&eeprom_factory_0>; + nvmem-cell-names = "eeprom"; pinctrl-names = "default", "dbdc"; pinctrl-0 = <&wf_2g_5g_pins>; pinctrl-1 = <&wf_dbdc_pins>; + status = "okay"; }; &trng { 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 9f9544dec052..c899be1b9867 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 @@ -109,12 +109,6 @@ mediatek_setup_macs() local label_mac="" case $board in - asus,tuf-ax6000) - CI_UBIPART="UBI_DEV" - addr=$(mtd_get_mac_binary_ubi "Factory" 0x4) - wan_mac="${addr}" - lan_mac="${addr}" - ;; bananapi,bpi-r3) wan_mac=$(macaddr_add $(cat /sys/class/net/eth0/address) 1) ;; diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/firmware/11-mt76-caldata b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/firmware/11-mt76-caldata index bb81444b01b7..bd68ef741569 100644 --- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/firmware/11-mt76-caldata +++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/firmware/11-mt76-caldata @@ -59,10 +59,6 @@ case "$FIRMWARE" in ;; "mediatek/mt7986_eeprom_mt7976_dual.bin") case "$board" in - asus,tuf-ax6000) - CI_UBIPART="UBI_DEV" - caldata_extract_ubi "Factory" 0x0 0x1000 - ;; jdcloud,re-cp-03) caldata_extract_mmc "factory" 0x0 0x1000 ;; -- 2.30.2