From 5709254690cb4181c2c9aed7c0569b7bafea6118 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Sun, 28 Apr 2024 03:03:43 +0100 Subject: [PATCH] mediatek: bpi-r4: store random MAC addresses for the BPi-R4 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 --- .../base-files/etc/uci-defaults/99_fwenv-store-ethaddr.sh | 3 ++- .../arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts | 2 ++ .../mediatek/filogic/base-files/etc/board.d/02_network | 3 ++- .../base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac | 6 ++++++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/target/linux/mediatek/base-files/etc/uci-defaults/99_fwenv-store-ethaddr.sh b/target/linux/mediatek/base-files/etc/uci-defaults/99_fwenv-store-ethaddr.sh index f58f709e1c..0afb434c97 100644 --- a/target/linux/mediatek/base-files/etc/uci-defaults/99_fwenv-store-ethaddr.sh +++ b/target/linux/mediatek/base-files/etc/uci-defaults/99_fwenv-store-ethaddr.sh @@ -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)" ] && diff --git a/target/linux/mediatek/files-6.1/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts b/target/linux/mediatek/files-6.1/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts index deae4378de..74f480e0a1 100644 --- a/target/linux/mediatek/files-6.1/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts +++ b/target/linux/mediatek/files-6.1/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dts @@ -17,6 +17,8 @@ "mediatek,mt7988a"; aliases { + ethernet0 = &gmac0; + ethernet1 = &gmac1; serial0 = &uart0; led-boot = &led_green; led-failsafe = &led_green; diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network index 597754da7b..c9fd8d96e6 100644 --- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network +++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network @@ -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) diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac index 53c9b7f259..62860390eb 100644 --- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac +++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac @@ -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 -- 2.30.2