sunxi: ensure NanoPi R1 has unique MAC address
[openwrt/openwrt.git] / target / linux / sunxi / base-files / etc / board.d / 02_network
index 46ace1f67c599befd21ef102efd87262a2661ec7..b295dc7daa426c66a519b41eb8faa582b3195abd 100644 (file)
@@ -29,6 +29,27 @@ sunxi_setup_interfaces()
        esac
 }
 
+nanopi_r1_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=$(macaddr_generate_from_mmc_cid mmcblk1)
+               if [ "$interface" = "lan" ]; then
+                       address=$(macaddr_add "$address" 1)
+               fi
+       fi
+
+       echo "$address"
+}
+
 sunxi_setup_macs()
 {
        local board="$1"
@@ -37,6 +58,10 @@ sunxi_setup_macs()
        local label_mac=""
 
        case "$board" in
+       friendlyarm,nanopi-r1)
+               wan_mac=$(nanopi_r1_get_mac wan)
+               lan_mac=$(nanopi_r1_get_mac lan)
+               ;;
        friendlyarm,nanopi-r1s-h5)
                lan_mac=$(get_mac_binary "/sys/bus/i2c/devices/0-0051/eeprom" 0xfa)
                ;;