|
@@ -62,6 +62,15 @@ int eth_getenv_enetaddr_by_index(const char *base_name, int index,
|
|
return eth_getenv_enetaddr(enetvar, enetaddr);
|
|
return eth_getenv_enetaddr(enetvar, enetaddr);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+int eth_setenv_enetaddr_by_index(const char *base_name, int index,
|
|
|
|
+ uchar *enetaddr)
|
|
|
|
+{
|
|
|
|
+ char enetvar[32];
|
|
|
|
+ sprintf(enetvar, index ? "%s%daddr" : "%saddr", base_name, index);
|
|
|
|
+ return eth_setenv_enetaddr(enetvar, enetaddr);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
static int eth_mac_skip(int index)
|
|
static int eth_mac_skip(int index)
|
|
{
|
|
{
|
|
char enetvar[15];
|
|
char enetvar[15];
|
|
@@ -205,6 +214,11 @@ int eth_write_hwaddr(struct eth_device *dev, const char *base_name,
|
|
}
|
|
}
|
|
|
|
|
|
memcpy(dev->enetaddr, env_enetaddr, 6);
|
|
memcpy(dev->enetaddr, env_enetaddr, 6);
|
|
|
|
+ } else if (is_valid_ether_addr(dev->enetaddr)) {
|
|
|
|
+ eth_setenv_enetaddr_by_index(base_name, eth_number,
|
|
|
|
+ dev->enetaddr);
|
|
|
|
+ printf("\nWarning: %s using MAC address from net device\n",
|
|
|
|
+ dev->name);
|
|
}
|
|
}
|
|
|
|
|
|
if (dev->write_hwaddr &&
|
|
if (dev->write_hwaddr &&
|