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"
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