ramips: TP-Link EC330-G5u v1: switch to mac-address-ascii
authorMikhail Zhilkin <csharper2005@gmail.com>
Sat, 22 Apr 2023 06:58:01 +0000 (06:58 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 29 Apr 2023 20:34:51 +0000 (22:34 +0200)
The TP-Link EC330-G5u v1 router has MAC address that stored in factory mtd
in ascii format. This commit makes the router use of "mac-address-ascii"
in dts.

After the change:
1. All MAC addresses are explicitly assigned in dts (the workarounds in
   network scripts are no longer needed);
2. gmac0 (eth0) MAC address is no longer random.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
target/linux/ramips/dts/mt7621_tplink_ec330-g5u-v1.dts
target/linux/ramips/mt7621/base-files/etc/board.d/02_network
target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac

index b128a7d7a8417ff4404f0589de1fa80d5ec7b099..6c9cc407015b3840908f8555ee7220ca66d03db7 100644 (file)
@@ -11,6 +11,8 @@
        model = "TP-Link EC330-G5u v1";
 
        aliases {
+               label-mac-device = &gmac0;
+
                led-boot = &led_power;
                led-failsafe = &led_power;
                led-running = &led_power;
                        label = "factory";
                        reg = <0x7800000 0x400000>;
                        read-only;
+
+                       compatible = "nvmem-cells";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       macaddr_factory_165: macaddr@165 {
+                               reg = <0x165 0x11>;
+                       };
                };
 
                partition@0_wholeflash {
                reg = <0x0000 0 0 0 0>;
                mediatek,mtd-eeprom = <&factory 0x8000>;
                ieee80211-freq-limit = <2400000 2500000>;
+
+               nvmem-cells = <&macaddr_factory_165>;
+               nvmem-cell-names = "mac-address-ascii";
        };
 };
 
                reg = <0x0000 0 0 0 0>;
                mediatek,mtd-eeprom = <&factory 0x14000>;
                ieee80211-freq-limit = <5000000 6000000>;
+
+               nvmem-cells = <&macaddr_factory_165>;
+               nvmem-cell-names = "mac-address-ascii";
+               mac-address-increment = <(2)>;
        };
 };
 
+&gmac0 {
+       nvmem-cells = <&macaddr_factory_165>;
+       nvmem-cell-names = "mac-address-ascii";
+};
+
 &gmac1 {
        status = "okay";
        label = "wan";
        phy-handle = <&ethphy0>;
+
+       nvmem-cells = <&macaddr_factory_165>;
+       nvmem-cell-names = "mac-address-ascii";
+       mac-address-increment = <(1)>;
 };
 
 &mdio {
index 871d7fc7d9a62a73937485fad80b56f459a8aff2..a986e9bac91dafdf41b73bbb3d44514f6ccc7294 100644 (file)
@@ -245,11 +245,6 @@ ramips_setup_macs()
                label_mac=$(cat "/sys/firmware/mikrotik/hard_config/mac_base")
                lan_mac=$label_mac
                ;;
-       tplink,ec330-g5u-v1)
-               label_mac="$(mtd_get_mac_text factory 0x165)"
-               lan_mac=$label_mac
-               wan_mac=$(macaddr_add $label_mac 1)
-               ;;
        tplink,er605-v2)
                CI_UBIPART="firmware"
                label_mac=$(mtd_get_mac_uci_config_ubi "tddp")
index 9db115fcae6566325f35f9cf931b3144584c63ca..746a88bd12f43692bc96bf84e0f6dfeed7912a52 100644 (file)
@@ -161,11 +161,6 @@ case "$board" in
                hw_mac_addr="$(mtd_get_mac_binary product-info 0x8)"
                macaddr_add "$hw_mac_addr" "$PHYNBR" > "/sys${DEVPATH}/macaddress"
                ;;
-       tplink,ec330-g5u-v1)
-               hw_mac_addr="$(mtd_get_mac_text factory 0x165)"
-               [ "$PHYNBR" = "0" ] && echo -n $hw_mac_addr > /sys${DEVPATH}/macaddress
-               [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
-               ;;
        yuncore,ax820)
                [ "$PHYNBR" = "1" ] && \
                        macaddr_setbit_la "$(mtd_get_mac_binary Factory 0xe000)" > /sys${DEVPATH}/macaddress