ipq40xx: glinet-b1300: fix LAN and WAN MAC address assigments
authorPetr Štetiar <ynezz@true.cz>
Fri, 12 Aug 2022 11:51:40 +0000 (13:51 +0200)
committerPetr Štetiar <ynezz@true.cz>
Mon, 3 Oct 2022 06:06:43 +0000 (08:06 +0200)
When testing the DSA changes with 5.15.60 kernel, I've noticed, that the
MAC addresses are not properly configured, there is single MAC being
used for LAN and WAN interfaces:

 eth0: 94:83:c4:XX:YY:4a (MAC on sticker)
 lan1@eth0: 94:83:c4:XX:YY:4a
 lan2@eth0: 94:83:c4:XX:YY:4a
 wan@eth0: 94:83:c4:XX:YY:4a
 wlan0: 94:83:c4:XX:YY:4a
 wlan1: 94:83:c4:XX:YY:4b

The same config, prior to the DSA conversion:

 lan/eth0: 94:83:c4:XX:YY:4a (MAC on sticker)
 wan/eth1: 94:83:c4:XX:YY:4b
 wlan0: 94:83:c4:XX:YY:4a
 wlan1: 94:83:c4:XX:YY:4b

Settings in ART partition:

 root@OpenWrt:/# hexdump -C /dev/mtd7 | grep '94 83'
 00000000  94 83 c4 XX YY 4a 94 83  c4 0e YY 4b ff ff ff ff  |.....J.....K....|
 00001000  20 2f 8d 8c 01 01 94 83  c4 XX YY 4a 00 00 20 00  | /.........J.. .|
 00005000  20 2f 5a 3a 01 01 94 83  c4 XX YY 4b 00 00 20 00  | /Z:.......K.. .|

So let's fix it by keeping same MAC address assigment as was done before
DSA conversion and while at it, define `label-mac-device` as well.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4029-gl-b1300.dts

index 9e465554809bd26df71d257636cccf4877ceb042..7e4519a746617db48962ec400642c57d3cb37688 100644 (file)
@@ -28,6 +28,7 @@
                led-failsafe = &power;
                led-running = &power;
                led-upgrade = &power;
+               label-mac-device = &swport4;
        };
 
        memory {
                                precal_art_5000: precal@5000 {
                                        reg = <0x5000 0x2f20>;
                                };
+
+                               macaddr_gmac0: macaddr@0 {
+                                       reg = <0x0 0x6>;
+                               };
+
+                               macaddr_gmac1: macaddr@6 {
+                                       reg = <0x6 0x6>;
+                               };
                        };
 
                        firmware@180000 {
        status = "okay";
 
        label = "lan2";
+       nvmem-cell-names = "mac-address";
+       nvmem-cells = <&macaddr_gmac0>;
+       mac-address-increment = <2>;
 };
 
 &swport4 {
        status = "okay";
 
        label = "lan1";
+       nvmem-cell-names = "mac-address";
+       nvmem-cells = <&macaddr_gmac0>;
 };
 
 &swport5 {
        status = "okay";
+
+       nvmem-cell-names = "mac-address";
+       nvmem-cells = <&macaddr_gmac1>;
 };
 
 &wifi0 {