From: Bo Shen <voice.shen@atmel.com>
Date: Wed, 22 Oct 2014 06:45:56 +0000 (+0800)
Subject: net: macb: write mac address when initialization
X-Git-Tag: v2025.01-rc5-pxa1908~14306
X-Git-Url: http://git.dujemihanovic.xyz/img/%22http:/www.sics.se/static/git-logo.png?a=commitdiff_plain;h=b2eff088699ac6b846b1ff34c2bb6549f358e6a0;p=u-boot.git

net: macb: write mac address when initialization

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@atmel.com>
Tested-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
---

diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index 375c8a4454..4616f369ca 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;