mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-03-16 23:07:00 +00:00
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: Marek Behún <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
0034d84a66
commit
1335e31ecc
1 changed files with 12 additions and 10 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue