54 lines
1.8 KiB
Diff
54 lines
1.8 KiB
Diff
From patchwork Tue Mar 27 17:18:25 2018
|
|
Content-Type: text/plain; charset="utf-8"
|
|
MIME-Version: 1.0
|
|
Content-Transfer-Encoding: 7bit
|
|
Subject: [U-Boot] net: mvneta: support setting hardware address
|
|
X-Patchwork-Submitter: Matt Pelland <mpelland@starry.com>
|
|
X-Patchwork-Id: 891783
|
|
Message-Id: <20180327171825.12742-1-mpelland@starry.com>
|
|
To: u-boot@lists.denx.de
|
|
Date: Tue, 27 Mar 2018 13:18:25 -0400
|
|
From: Matt Pelland <mpelland@starry.com>
|
|
List-Id: U-Boot discussion <u-boot.lists.denx.de>
|
|
|
|
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>
|
|
---
|
|
drivers/net/mvneta.c | 11 +++++++++++
|
|
1 file changed, 11 insertions(+)
|
|
|
|
diff --git a/drivers/net/mvneta.c b/drivers/net/mvneta.c
|
|
index 83e3153768..fdff772178 100644
|
|
--- a/drivers/net/mvneta.c
|
|
+++ b/drivers/net/mvneta.c
|
|
@@ -890,6 +890,16 @@ 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 +1763,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)
|