[U-Boot] [PATCH v2 1/4] sunxi: board: Use eth_env_set_enetaddr_by_index()

Ondřej Jirman megous at megous.com
Tue Nov 26 10:22:41 UTC 2019


Hello,

On Tue, Nov 26, 2019 at 09:15:59AM +0100, Andre Heider wrote:
> That helper takes care of assembling the correct name and doesn't allow
> overwriting existing env vars, so drop the checks here.
> 
> Signed-off-by: Andre Heider <a.heider at gmail.com>
> ---
>  board/sunxi/board.c | 10 +---------
>  1 file changed, 1 insertion(+), 9 deletions(-)
> 
> diff --git a/board/sunxi/board.c b/board/sunxi/board.c
> index e3b2d13892..bb35d6b66e 100644
> --- a/board/sunxi/board.c
> +++ b/board/sunxi/board.c
> @@ -807,14 +807,6 @@ static void setup_environment(const void *fdt)
>  			if (!fdt_get_alias(fdt, ethaddr))
>  				continue;
>  
> -			if (i == 0)
> -				strcpy(ethaddr, "ethaddr");
> -			else
> -				sprintf(ethaddr, "eth%daddr", i);
> -
> -			if (env_get(ethaddr))
> -				continue;
> -
>  			/* Non OUI / registered MAC address */
>  			mac_addr[0] = (i << 4) | 0x02;
>  			mac_addr[1] = (sid[0] >>  0) & 0xff;
> @@ -823,7 +815,7 @@ static void setup_environment(const void *fdt)
>  			mac_addr[4] = (sid[3] >>  8) & 0xff;
>  			mac_addr[5] = (sid[3] >>  0) & 0xff;
>  
> -			eth_env_set_enetaddr(ethaddr, mac_addr);
> +			eth_env_set_enetaddr_by_index("eth", i, mac_addr);

This breaks the build with CONFIG_NET disabled in u-boot, since 
eth_env_set_enetaddr_by_index is only available in net/.

arm-linux-musleabihf-ld.bfd: board/sunxi/built-in.o: in function `setup_environment':
board/sunxi/board.c:835: undefined reference to `eth_env_set_enetaddr_by_index'

See this thread for more info:
  https://www.mail-archive.com/u-boot@lists.denx.de/msg340785.html
 
Use of eth_env_set_enetaddr is temporarily broken on master too, because this
is still waiting to be merged:

  https://www.mail-archive.com/u-boot@lists.denx.de/msg340882.html

regards,
	o.

>  		}
>  
>  		if (!env_get("serial#")) {
> -- 
> 2.24.0
> 


More information about the U-Boot mailing list