[PATCH 8/8] eQos: Implement the read_rom_hwaddr callback
Peng Fan
peng.fan at nxp.com
Tue Apr 28 05:02:28 CEST 2020
From: Ye Li <ye.li at nxp.com>
Implement the read_rom_hwaddr callback to load MAC address from fuse
for imx8m platforms.
Reviewed-by: Fugang Duan <fugang.duan at nxp.com>
Signed-off-by: Ye Li <ye.li at nxp.com>
Signed-off-by: Peng Fan <peng.fan at nxp.com>
---
drivers/net/dwc_eth_qos.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c
index 85afaf124c..37b279af35 100644
--- a/drivers/net/dwc_eth_qos.c
+++ b/drivers/net/dwc_eth_qos.c
@@ -43,6 +43,9 @@
#include <asm/gpio.h>
#include <asm/io.h>
#include <eth_phy.h>
+#ifdef CONFIG_ARCH_IMX8M
+#include <asm/mach-imx/sys_proto.h>
+#endif
/* Core registers */
@@ -1134,6 +1137,16 @@ static int eqos_write_hwaddr(struct udevice *dev)
return 0;
}
+static int eqos_read_rom_hwaddr(struct udevice *dev)
+{
+ struct eth_pdata *pdata = dev_get_platdata(dev);
+
+#ifdef CONFIG_ARCH_IMX8M
+ imx_get_mac_from_fuse(dev->req_seq, pdata->enetaddr);
+#endif
+ return !is_valid_ethaddr(pdata->enetaddr);
+}
+
static int eqos_start(struct udevice *dev)
{
struct eqos_priv *eqos = dev_get_priv(dev);
@@ -2047,6 +2060,7 @@ static const struct eth_ops eqos_ops = {
.recv = eqos_recv,
.free_pkt = eqos_free_pkt,
.write_hwaddr = eqos_write_hwaddr,
+ .read_rom_hwaddr = eqos_read_rom_hwaddr,
};
static struct eqos_ops eqos_tegra186_ops = {
--
2.16.4
More information about the U-Boot
mailing list