[U-Boot] [PATCH] net: macb: write mac address when initialization

Boris Brezillon boris.brezillon at free-electrons.com
Wed Oct 22 09:19:06 CEST 2014


Hi Bo,

On Wed, 22 Oct 2014 14:45:56 +0800
Bo Shen <voice.shen at atmel.com> wrote:

> When boot up without mac address setting, it will give the warning
> message like: "Warning: failed to set MAC address", however when
> execute network related command, it still execute them without any
> warning information.
> 
> With this patch, it will exit directly with following information:
> "gmac0: mac address is not valid"
> 
> It also solve the problem after bootup then set mac address and the
> mac address won't set to net device issue.
> 
> Signed-off-by: Bo Shen <voice.shen at atmel.com>

Thanks for fixing this.

Tested-by Boris Brezillon <boris.brezillon at free-electrons.com>

> ---
> 
>  drivers/net/macb.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/net/macb.c b/drivers/net/macb.c
> index 375c8a4..4616f36 100644
> --- a/drivers/net/macb.c
> +++ b/drivers/net/macb.c
> @@ -525,6 +525,7 @@ static int macb_phy_init(struct macb_device *macb)
>  	return 1;
>  }
>  
> +static int macb_write_hwaddr(struct eth_device *dev);
>  static int macb_init(struct eth_device *netdev, bd_t *bd)
>  {
>  	struct macb_device *macb = to_macb(netdev);
> @@ -587,6 +588,14 @@ static int macb_init(struct eth_device *netdev, bd_t *bd)
>  #endif /* CONFIG_RMII */
>  	}
>  
> +	/* update the ethaddr */
> +	if (is_valid_ether_addr(netdev->enetaddr)) {
> +		macb_write_hwaddr(netdev);
> +	} else {
> +		printf("%s: mac address is not valid\n", netdev->name);
> +		return -1;
> +	}
> +
>  	if (!macb_phy_init(macb))
>  		return -1;
>  



-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com


More information about the U-Boot mailing list