[PATCH u-boot-marvell 08/12] arm: mvebu: turris_mox: Better check for valid ethernet addresses in env
Stefan Roese
sr at denx.de
Thu Oct 21 07:33:21 CEST 2021
On 09.10.21 19:33, Marek Behún wrote:
> From: Marek Behún <marek.behun at nic.cz>
>
> 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 at nic.cz>
Reviewed-by: Stefan Roese <sr at denx.de>
Thanks,
Stefan
> ---
> board/CZ.NIC/turris_mox/turris_mox.c | 16 +++++++++-------
> 1 file changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/board/CZ.NIC/turris_mox/turris_mox.c b/board/CZ.NIC/turris_mox/turris_mox.c
> index 7c5acfd1d9..2202eb8cfb 100644
> --- a/board/CZ.NIC/turris_mox/turris_mox.c
> +++ b/board/CZ.NIC/turris_mox/turris_mox.c
> @@ -359,20 +359,22 @@ static int get_reset_gpio(struct gpio_desc *reset_gpio)
>
> int misc_init_r(void)
> {
> - int ret;
> - u8 mac1[6], mac2[6];
> + u8 mac[2][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) {
> printf("Cannot read data from OTP!\n");
> return 0;
> }
>
> - if (is_valid_ethaddr(mac1) && !env_get("ethaddr"))
> - eth_env_set_enetaddr("ethaddr", mac1);
> + for (i = 0; i < 2; ++i) {
> + u8 oldmac[6];
>
> - if (is_valid_ethaddr(mac2) && !env_get("eth1addr"))
> - eth_env_set_enetaddr("eth1addr", mac2);
> + if (is_valid_ethaddr(mac[i]) &&
> + !eth_env_get_enetaddr_by_index("eth", i, oldmac))
> + eth_env_set_enetaddr_by_index("eth", i, mac[i]);
> + }
>
> 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