mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
arm: mvebu: turris_mox: Better check for valid ethernet addresses in env
Currently we overwrite ethaddr and eth1addr only if these variables don't exist. Better overwrite them even if the env variable exists, but is invalid - eth_env_get_enetaddr_by_index() checks for validity. Refactor the code to use a for cycle. Signed-off-by: Marek Behún <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
f3c71e75b0
commit
0034d84a66
1 changed files with 9 additions and 7 deletions
|
@ -359,20 +359,22 @@ static int get_reset_gpio(struct gpio_desc *reset_gpio)
|
||||||
|
|
||||||
int misc_init_r(void)
|
int misc_init_r(void)
|
||||||
{
|
{
|
||||||
int ret;
|
u8 mac[2][6];
|
||||||
u8 mac1[6], mac2[6];
|
int i, ret;
|
||||||
|
|
||||||
ret = mbox_sp_get_board_info(NULL, mac1, mac2, NULL, NULL);
|
ret = mbox_sp_get_board_info(NULL, mac[0], mac[1], NULL, NULL);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
printf("Cannot read data from OTP!\n");
|
printf("Cannot read data from OTP!\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_valid_ethaddr(mac1) && !env_get("ethaddr"))
|
for (i = 0; i < 2; ++i) {
|
||||||
eth_env_set_enetaddr("ethaddr", mac1);
|
u8 oldmac[6];
|
||||||
|
|
||||||
if (is_valid_ethaddr(mac2) && !env_get("eth1addr"))
|
if (is_valid_ethaddr(mac[i]) &&
|
||||||
eth_env_set_enetaddr("eth1addr", mac2);
|
!eth_env_get_enetaddr_by_index("eth", i, oldmac))
|
||||||
|
eth_env_set_enetaddr_by_index("eth", i, mac[i]);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue