aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Pelland2018-03-27 13:18:25 -0400
committerJoe Hershberger2018-04-13 15:47:31 -0500
commit0a85f024c5e84ccaf3b908f0b1d381f5ecf89602 (patch)
treef9ed8fc560dc75de2907adc39f680ca123df3042
parent93cb6142c1d349492d23bad3951b5a8f59eaafed (diff)
net: mvneta: support setting hardware address
mvneta already supports setting the MAC address but this was only done internally when some other part of U-Boot tries to actually use the interface. This commit exposes this functionality to the ethernet core code so that the MAC addresses of all interfaces are configured correctly even if they are not used before loading Linux. Signed-off-by: Matt Pelland <mpelland@starry.com> Reviewed-by: Stefan Roese <sr@denx.de> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
-rw-r--r--drivers/net/mvneta.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/mvneta.c b/drivers/net/mvneta.c
index 83e31537688..f2e9acfd1f3 100644
--- a/drivers/net/mvneta.c
+++ b/drivers/net/mvneta.c
@@ -890,6 +890,15 @@ static void mvneta_mac_addr_set(struct mvneta_port *pp, unsigned char *addr,
mvneta_set_ucast_addr(pp, addr[5], queue);
}
+static int mvneta_write_hwaddr(struct udevice *dev)
+{
+ mvneta_mac_addr_set(dev_get_priv(dev),
+ ((struct eth_pdata *)dev_get_platdata(dev))->enetaddr,
+ rxq_def);
+
+ return 0;
+}
+
/* Handle rx descriptor fill by setting buf_cookie and buf_phys_addr */
static void mvneta_rx_desc_fill(struct mvneta_rx_desc *rx_desc,
u32 phys_addr, u32 cookie)
@@ -1753,6 +1762,7 @@ static const struct eth_ops mvneta_ops = {
.send = mvneta_send,
.recv = mvneta_recv,
.stop = mvneta_stop,
+ .write_hwaddr = mvneta_write_hwaddr,
};
static int mvneta_ofdata_to_platdata(struct udevice *dev)