aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target/linux/rockchip/armv8/base-files/etc/board.d/02_network33
1 files changed, 28 insertions, 5 deletions
diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network
index 91bdb760d5..b0e6479947 100644
--- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network
+++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network
@@ -17,13 +17,36 @@ rockchip_setup_interfaces()
esac
}
-nanopi_r2s_generate_mac()
+generate_mac_from_mmc_cid()
{
- local sd_hash=$(sha256sum /sys/class/block/mmcblk0/device/cid)
+ local mmc_dev=$1
+
+ local sd_hash=$(sha256sum /sys/class/block/$mmc_dev/device/cid)
local mac_base=$(macaddr_canonicalize "$(echo "${sd_hash}" | dd bs=1 count=12 2>/dev/null)")
echo "$(macaddr_unsetbit_mc "$(macaddr_setbit_la "${mac_base}")")"
}
+nanopi_r4s_get_mac()
+{
+ local interface=$1
+ local eeprom_path="/sys/bus/i2c/devices/2-0051/eeprom"
+ local address
+
+ if [ -f "$eeprom_path" ]; then
+ address=$(get_mac_binary "$eeprom_path" 0xfa)
+ if [ "$interface" = "lan" ]; then
+ address=$(macaddr_setbit_la "$address")
+ fi
+ else
+ address=$(generate_mac_from_mmc_cid mmcblk1)
+ if [ "$interface" = "lan" ]; then
+ address=$(macaddr_add "$address" 1)
+ fi
+ fi
+
+ echo "$address"
+}
+
rockchip_setup_macs()
{
local board="$1"
@@ -33,12 +56,12 @@ rockchip_setup_macs()
case "$board" in
friendlyarm,nanopi-r2s)
- wan_mac=$(nanopi_r2s_generate_mac)
+ wan_mac=$(generate_mac_from_mmc_cid mmcblk0)
lan_mac=$(macaddr_add "$wan_mac" 1)
;;
friendlyarm,nanopi-r4s)
- wan_mac=$(get_mac_binary "/sys/bus/i2c/devices/2-0051/eeprom" 0xfa)
- lan_mac=$(macaddr_setbit_la "$wan_mac")
+ wan_mac=$(nanopi_r4s_get_mac wan)
+ lan_mac=$(nanopi_r4s_get_mac lan)
;;
esac