[PATCH u-boot-marvell 09/12] arm: mvebu: turris_omnia: Overwrite ethaddr only if invalid
Stefan Roese
sr at denx.de
Thu Oct 21 07:33:47 CEST 2021
On 09.10.21 19:33, Marek Behún wrote:
> From: Marek Behún <marek.behun at nic.cz>
>
> 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 at nic.cz>
Reviewed-by: Stefan Roese <sr at denx.de>
Thanks,
Stefan
> ---
> board/CZ.NIC/turris_omnia/turris_omnia.c | 22 ++++++++++++----------
> 1 file changed, 12 insertions(+), 10 deletions(-)
>
> diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c b/board/CZ.NIC/turris_omnia/turris_omnia.c
> index a48e1f5c30..7a86111890 100644
> --- a/board/CZ.NIC/turris_omnia/turris_omnia.c
> +++ b/board/CZ.NIC/turris_omnia/turris_omnia.c
> @@ -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;
>
Viele Grüße,
Stefan
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de
More information about the U-Boot
mailing list