mediatek: bpi-r4: store random MAC addresses for the BPi-R4
authorDaniel Golle <daniel@makrotopia.org>
Sun, 28 Apr 2024 02:03:43 +0000 (03:03 +0100)
committerDaniel Golle <daniel@makrotopia.org>
Sun, 28 Apr 2024 20:46:51 +0000 (21:46 +0100)
Despite coming with multiple I2C EEPROMs supposedly dedicated for that
purpose, the BPi-R4 does not seem to have factory assigned MAC addresses.
Hence, just like for all other BPi boards, store a randomly generated
MAC address on first boot and derive WAN and Wi-Fi MAC addresses from
that as well. Not perfect, but better than random on every boot.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
target/linux/mediatek/base-files/etc/uci-defaults/99_fwenv-store-ethaddr.sh
target/linux/mediatek/files-6.1/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts
target/linux/mediatek/filogic/base-files/etc/board.d/02_network
target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac

index f58f709e1c42bf6fba9abf908ae910dba3f99860..0afb434c97d7488177efafcb8438dbe2c30c6bda 100644 (file)
@@ -10,7 +10,8 @@ unielec,u7623-02)
                fw_setenv ethaddr "$(cat /sys/class/net/eth0/address)"
        ;;
 bananapi,bpi-r3|\
-bananapi,bpi-r3-mini)
+bananapi,bpi-r3-mini|\
+bananapi,bpi-4)
        [ -z "$(fw_printenv -n ethaddr 2>/dev/null)" ] &&
                fw_setenv ethaddr "$(cat /sys/class/net/eth0/address)"
        [ -z "$(fw_printenv -n eth1addr 2>/dev/null)" ] &&
index deae4378de035f5392181bdd3b392ab64c681029..74f480e0a12622096eb92a5eadd6e76161a18d27 100644 (file)
@@ -17,6 +17,8 @@
                     "mediatek,mt7988a";
 
        aliases {
+               ethernet0 = &gmac0;
+               ethernet1 = &gmac1;
                serial0 = &uart0;
                led-boot = &led_green;
                led-failsafe = &led_green;
index 597754da7bb8fbcbf056cca7f4467b63f03f44d8..c9fd8d96e69a1fc7af7762de3b229479935db9f0 100644 (file)
@@ -120,7 +120,8 @@ mediatek_setup_macs()
 
        case $board in
        bananapi,bpi-r3|\
-       bananapi,bpi-r3-mini)
+       bananapi,bpi-r3-mini|\
+       bananapi,bpi-r4)
                wan_mac=$(macaddr_add $(cat /sys/class/net/eth0/address) 1)
                ;;
        cmcc,rax3000m)
index 53c9b7f259e3fdaca80d465fda36f60634eecb0b..62860390ebb2e67cd4f8a74b6f808a5cd4293dd6 100644 (file)
@@ -42,6 +42,12 @@ case "$board" in
                [ "$PHYNBR" = "0" ] && macaddr_add $addr 2 > /sys${DEVPATH}/macaddress
                [ "$PHYNBR" = "1" ] && macaddr_add $addr 3 > /sys${DEVPATH}/macaddress
                ;;
+       bananapi,bpi-r4)
+               addr=$(cat /sys/class/net/eth0/address)
+               [ "$PHYNBR" = "0" ] && macaddr_add $addr 2 > /sys${DEVPATH}/macaddress
+               [ "$PHYNBR" = "1" ] && macaddr_add $addr 3 > /sys${DEVPATH}/macaddress
+               [ "$PHYNBR" = "2" ] && macaddr_add $addr 4 > /sys${DEVPATH}/macaddress
+               ;;
        cetron,ct3003)
                addr=$(mtd_get_mac_binary "art" 0)
                [ "$PHYNBR" = "0" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress