From c699a1ab37273ede8d0d172e6958fec693a71fe2 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sat, 9 May 2026 13:57:32 -0700 Subject: [PATCH] ath79: mynet-wifi-rangeextender: use nvmem Convert the last remaining userspace eeprom for ath9k to nvmem. Well, easily converted at least. wifi MAC has to be handled in userspace as the kernel nvram driver works on memory mapped addresses, not mtd ones. Signed-off-by: Rosen Penev Link: https://github.com/openwrt/openwrt/pull/14666 Signed-off-by: Jonas Jelonek --- .../dts/ar9344_wd_mynet-wifi-rangeextender.dts | 14 ++++++++++++-- .../etc/hotplug.d/firmware/10-ath9k-eeprom | 4 ---- .../etc/hotplug.d/ieee80211/10_fix_wifi_mac | 3 +++ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/target/linux/ath79/dts/ar9344_wd_mynet-wifi-rangeextender.dts b/target/linux/ath79/dts/ar9344_wd_mynet-wifi-rangeextender.dts index 67ff1c9d07e..598781ae681 100644 --- a/target/linux/ath79/dts/ar9344_wd_mynet-wifi-rangeextender.dts +++ b/target/linux/ath79/dts/ar9344_wd_mynet-wifi-rangeextender.dts @@ -118,6 +118,16 @@ label = "art"; reg = <0x7f0000 0x10000>; read-only; + + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + + cal_art_1000: calibration@1000 { + reg = <0x1000 0x440>; + }; + }; }; }; }; @@ -129,8 +139,8 @@ ath9k: wifi@0,0 { compatible = "pci168c,0030"; reg = <0x0000 0 0 0 0>; - qca,no-eeprom; - /* wifi MAC is stored in nvram */ + nvmem-cells = <&cal_art_1000>; + nvmem-cell-names = "calibration"; }; }; diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index a8443cf163e..2fd334ef320 100644 --- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -25,10 +25,6 @@ case "$FIRMWARE" in avm,fritz300e) caldata_extract_reverse "urloader" 0x1541 0x440 ;; - wd,mynet-wifi-rangeextender) - caldata_extract "art" 0x1000 0x440 - ath9k_patch_mac $(nvram get wl0_hwaddr) - ;; *) caldata_die "board $board is not supported yet" ;; diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac index 0ef322e898e..31fd1890a66 100644 --- a/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac +++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac @@ -110,6 +110,9 @@ case "$board" in [ "$PHYNBR" -eq 1 ] && \ macaddr_add $base_mac 1 > /sys${DEVPATH}/macaddress ;; + wd,mynet-wifi-rangeextender) + echo $(nvram get wl0_hwaddr) > /sys${DEVPATH}/macaddress + ;; wd,mynet-n600|\ wd,mynet-n750) [ "$PHYNBR" -eq 0 ] && \ -- 2.47.3