From 749cc6ffc4d1607a31426f486da5ae97d3b55c40 Mon Sep 17 00:00:00 2001 From: Felix Baumann Date: Fri, 21 Apr 2023 03:07:58 +0200 Subject: [PATCH] ramips: Cudy X6 fixes / improvements - Correct WiFi MACs, they didn't match oem firmware - Move nvmem-cells to bdinfo partition and remove &bdinfo reference - Add OEM device model name R13 to SUPPORTED_DEVICES This allows sysupgrading from Cudy's OpenWrt fork without force - Label red_led and use it during failsafe mode and upgrades MAC addresses as verified by OEM firmware: use address source LAN b4:4b:d6:2d:c8:4a label WAN b4:4b:d6:2d:c8:4b label + 1 2g b4:4b:d6:2d:c8:4a label 5g b6:4b:d6:3d:c8:4a label + LA-Bit set + 4th oktet increased The label MAC address is found in bdinfo 0xde00. Signed-off-by: Felix Baumann [read wifi mac from flash offset] Signed-off-by: David Bauer (cherry picked from commit 45cf200b2e22c34f2ae043b87e24230de526fefc) --- target/linux/ramips/dts/mt7621_cudy_x6.dts | 29 ++++++++++--------- target/linux/ramips/image/mt7621.mk | 1 + .../etc/hotplug.d/ieee80211/10_fix_wifi_mac | 5 ++-- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/target/linux/ramips/dts/mt7621_cudy_x6.dts b/target/linux/ramips/dts/mt7621_cudy_x6.dts index ebb2149172..dc21964bd7 100644 --- a/target/linux/ramips/dts/mt7621_cudy_x6.dts +++ b/target/linux/ramips/dts/mt7621_cudy_x6.dts @@ -11,9 +11,9 @@ aliases { led-boot = &led_internet_blue; - led-failsafe = &led_internet_blue; + led-failsafe = &led_internet_red; led-running = &led_internet_blue; - led-upgrade = &led_internet_blue; + led-upgrade = &led_internet_red; label-mac-device = &gmac0; }; @@ -45,7 +45,7 @@ gpios = <&gpio 15 GPIO_ACTIVE_LOW>; }; - internet_red { + led_internet_red: internet_red { label = "red:internet"; gpios = <&gpio 16 GPIO_ACTIVE_LOW>; }; @@ -102,10 +102,18 @@ read-only; }; - bdinfo: partition@1ff0000 { + partition@1ff0000 { label = "bdinfo"; reg = <0x1ff0000 0x10000>; read-only; + + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_bdinfo_de00: macaddr@de00 { + reg = <0xde00 0x6>; + }; }; }; }; @@ -120,6 +128,9 @@ compatible = "mediatek,mt76"; reg = <0x0000 0 0 0 0>; mediatek,mtd-eeprom = <&factory 0x0000>; + + nvmem-cells = <&macaddr_bdinfo_de00>; + nvmem-cell-names = "mac-address"; }; }; @@ -166,13 +177,3 @@ function = "gpio"; }; }; - -&bdinfo { - compatible = "nvmem-cells"; - #address-cells = <1>; - #size-cells = <1>; - - macaddr_bdinfo_de00: macaddr@de00 { - reg = <0xde00 0x6>; - }; -}; diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index 9c451c26bf..3bf9fd3eda 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -352,6 +352,7 @@ define Device/cudy_x6 DEVICE_MODEL := X6 UIMAGE_NAME := R13 DEVICE_PACKAGES := kmod-mt7915e + SUPPORTED_DEVICES += R13 endef TARGET_DEVICES += cudy_x6 diff --git a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac index d8c9512bb7..b4d7542179 100644 --- a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac +++ b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac @@ -19,8 +19,9 @@ case "$board" in [ "$PHYNBR" = "1" ] && macaddr_setbit_la $hw_mac_addr > /sys${DEVPATH}/macaddress ;; cudy,x6) - hw_mac_addr="$(mtd_get_mac_binary factory 0x4)" - macaddr_add $hw_mac_addr "$PHYNBR" > /sys${DEVPATH}/macaddress + hw_mac_addr="$(mtd_get_mac_binary bdinfo 0xde00)" + [ "$PHYNBR" = "1" ] && \ + macaddr_setbit_la "$(macaddr_add $hw_mac_addr 0x100000)" > /sys${DEVPATH}/macaddress ;; dlink,dap-x1860-a1) hw_mac_addr="$(mtd_get_mac_binary factory 0x4)" -- 2.30.2