ar71xx: fix swapped LAN/WAN MAC address for Archer C60 v1/v2
authorAdrian Schmutzler <freifunk@adrianschmutzler.de>
Wed, 11 Mar 2020 14:46:00 +0000 (15:46 +0100)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Wed, 11 Mar 2020 15:09:16 +0000 (16:09 +0100)
The MAC addresses for lan/wan are swapped compared to the vendor
firmware. This adjusts to vendor configuration, which is:

lan   *:7b   label
wan   *:7c   label+1
2.4g  *:7b   label
5g    *:7a   label-1

Only one address is stored in <&mac 0x8>, corresponding to the label.

This has been checked on revisions v1, v2 and v3.

Since ar71xx calculates the ath10k MAC address based on the ethernet
addresses, the number there is adjusted, too.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
target/linux/ar71xx/files/arch/mips/ath79/mach-archer-c60-v1.c

index 5170fa518fc78b09ec608bb4dd2a8810a67b8c05..03eeb2ef9c3cf430510afe6ee9b7a06f9d1a3b5d 100644 (file)
@@ -182,7 +182,7 @@ case "$FIRMWARE" in
                ath10kcal_extract "art" 0x5000 0x2f20
                ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
                        /lib/firmware/ath10k/QCA9888/hw2.0/board.bin
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -1)
+               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -1)
                ;;
        cf-e385ac)
                ath10kcal_extract "art" 0x5000 0x2f20
index 88f4f081a34db9b289d393d9c7ad4693ddb9b01d..a0839e6bcadd39b826d657141c5ba94fc5b2a729 100644 (file)
@@ -157,8 +157,8 @@ static void __init archer_c60_v1_setup(void)
        ath79_register_mdio(0, 0x0);
        ath79_register_mdio(1, 0x0);
 
-       ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
-       ath79_init_mac(ath79_eth1_data.mac_addr, mac, 1);
+       ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0);
+       ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1);
 
        /* WAN port */
        ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
@@ -199,8 +199,8 @@ static void __init archer_c60_v2_setup(void)
        ath79_register_mdio(0, 0x0);
        ath79_register_mdio(1, 0x0);
 
-       ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
-       ath79_init_mac(ath79_eth1_data.mac_addr, mac, 1);
+       ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0);
+       ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1);
 
        /* WAN port */
        ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;