As evidenced here[1] the device MAC address can be stored at a random
offset in the hard_config partition. Rely on sysfs to update the MAC
address correctly.

Note: this will trigger a harmless kernel message during boot:
ag71xx 19000000.eth: invalid MAC address, using random address

There is no clean workaround to prevent this message from being emitted.

[1] https://github.com/openwrt/openwrt/pull/2850#issuecomment-610809021

Signed-off-by: Thibaut VARÈNE <ha...@slashdirt.org>
---
 .../ath79/dts/qca9556_mikrotik_routerboard-wap-g-5hact2hnd.dts     | 3 ---
 .../ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts      | 2 --
 target/linux/ath79/mikrotik/base-files/etc/board.d/02_network      | 7 +++++++
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git 
a/target/linux/ath79/dts/qca9556_mikrotik_routerboard-wap-g-5hact2hnd.dts 
b/target/linux/ath79/dts/qca9556_mikrotik_routerboard-wap-g-5hact2hnd.dts
index 529ac1cf3b..3c0dc84a37 100644
--- a/target/linux/ath79/dts/qca9556_mikrotik_routerboard-wap-g-5hact2hnd.dts
+++ b/target/linux/ath79/dts/qca9556_mikrotik_routerboard-wap-g-5hact2hnd.dts
@@ -11,7 +11,6 @@
        model = "MikroTik RouterBOARD wAP G-5HacT2HnD";
 
        aliases {
-               label-mac-device = &eth1;
                mdio-gpio1 = &mdio2;
                serial0 = &uart;
        };
@@ -53,8 +52,6 @@
 &eth1 {
        status = "okay";
 
-       mtd-mac-address = <&hard_config 0x10>;
-
        pll-data = <0x03000101 0x80000101 0x80001313>;
        phy-handle = <&phy0>;
 
diff --git 
a/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts 
b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts
index 3f2a1a51a6..ff806ff88d 100644
--- a/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts
+++ b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts
@@ -11,7 +11,6 @@
        model = "MikroTik RouterBOARD 922UAGS-5HPacD";
 
        aliases {
-               label-mac-device = &eth0;
                led-boot = &led_user;
                led-failsafe = &led_user;
                led-upgrade = &led_user;
@@ -80,7 +79,6 @@
 &eth0 {
        status = "okay";
 
-       mtd-mac-address = <&hard_config 0x10>;
        phy-handle = <&phy4>;
        pll-data = <0x8f000000 0xa0000101 0xa0001313>;
 
diff --git a/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network 
b/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
index ee795c7496..20c670f702 100755
--- a/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
@@ -21,8 +21,15 @@ ath79_setup_interfaces()
 ath79_setup_macs()
 {
        local board="$1"
+       local lan_mac=""
+       local wan_mac=""
+       local mac_base="/sys/firmware/mikrotik/hard_config/mac_base"
 
        case "$board" in
+       *)
+               lan_mac="$(cat $mac_base)"
+               wan_mac="$(cat $mac_base)"
+               ;;
        esac
 
        [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
-- 
2.11.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to