提交 1335e31e 编写于 作者: M Marek Behún 提交者: Stefan Roese

arm: mvebu: turris_omnia: Overwrite ethaddr only if invalid

Currently we always overwrite ethaddrs with those from EEPROM.

In order to allow user to use a cloned MAC address in U-Boot, change the
code so that it sets ethaddr variables only if they aren't set or are
invalid.
Signed-off-by: NMarek Behún <marek.behun@nic.cz>
Reviewed-by: NStefan Roese <sr@denx.de>
上级 0034d84a
......@@ -518,6 +518,15 @@ static void increment_mac(u8 *mac)
}
}
static void set_mac_if_invalid(int i, u8 *mac)
{
u8 oldmac[6];
if (is_valid_ethaddr(mac) &&
!eth_env_get_enetaddr_by_index("eth", i, oldmac))
eth_env_set_enetaddr_by_index("eth", i, mac);
}
int misc_init_r(void)
{
int err;
......@@ -550,18 +559,11 @@ int misc_init_r(void)
mac[4] = mac1[2];
mac[5] = mac1[3];
if (is_valid_ethaddr(mac))
eth_env_set_enetaddr("eth1addr", mac);
set_mac_if_invalid(1, mac);
increment_mac(mac);
if (is_valid_ethaddr(mac))
eth_env_set_enetaddr("eth2addr", mac);
set_mac_if_invalid(2, mac);
increment_mac(mac);
if (is_valid_ethaddr(mac))
eth_env_set_enetaddr("ethaddr", mac);
set_mac_if_invalid(0, mac);
out:
return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册