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>
Sat, 14 Mar 2020 12:20:18 +0000 (13:20 +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>
(cherry picked from commit 14eb54938b525d4c2d2847a6fad7670ed944650c)

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 718fd75..8fb5be6 100644 (file)
@@ -182,7 +182,7 @@ case "$FIRMWARE" in
                ath10kcal_extract "art" 20480 12064
                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" 20480 12064
index 88f4f08..a0839e6 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;