From c451713abf10db335cabe41099e8b28481a723b7 Mon Sep 17 00:00:00 2001
From: Lukasz Majewski <lukma@denx.de>
Date: Fri, 11 May 2018 16:51:14 +0200
Subject: [PATCH] display5: net: Add function to read ethaddr from iMX6 fuses

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---
 board/liebherr/display5/display5.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/board/liebherr/display5/display5.c b/board/liebherr/display5/display5.c
index 4bade476a5..a3deba216c 100644
--- a/board/liebherr/display5/display5.c
+++ b/board/liebherr/display5/display5.c
@@ -254,6 +254,25 @@ static void setup_iomux_enet(void)
 	gpio_direction_input(IMX_GPIO_NR(1, 28)); /*INT#_GBE*/
 }
 
+static int setup_mac_from_fuse(void)
+{
+	unsigned char enetaddr[6];
+	int ret;
+
+	ret = eth_env_get_enetaddr("ethaddr", enetaddr);
+	if (ret)	/* ethaddr is already set */
+		return 0;
+
+	imx_get_mac_from_fuse(0, enetaddr);
+
+	if (is_valid_ethaddr(enetaddr)) {
+		eth_env_set_enetaddr("ethaddr", enetaddr);
+		return 0;
+	}
+
+	return 0;
+}
+
 int board_eth_init(bd_t *bd)
 {
 	struct phy_device *phydev;
@@ -268,6 +287,8 @@ int board_eth_init(bd_t *bd)
 	if (ret)
 		return ret;
 
+	setup_mac_from_fuse();
+
 	bus = fec_get_miibus(IMX_FEC_BASE, -1);
 	if (!bus)
 		return -ENODEV;
-- 
2.39.5