mx7dsabresd: Retrieve the second MAC address from fuses
authorFabio Estevam <festevam@denx.de>
Tue, 11 Jul 2023 21:57:57 +0000 (18:57 -0300)
committerStefano Babic <sbabic@denx.de>
Thu, 13 Jul 2023 09:58:18 +0000 (11:58 +0200)
Currently, a random MAC address is assigned to eth1 in Linux.

Fix this behavor by retrieving the second MAC address from the fuses.

Signed-off-by: Fabio Estevam <festevam@denx.de>
board/freescale/mx7dsabresd/mx7dsabresd.c

index 2777ae1..cff2e6a 100644 (file)
@@ -292,6 +292,7 @@ int power_init_board(void)
 int board_late_init(void)
 {
        struct wdog_regs *wdog = (struct wdog_regs *)WDOG1_BASE_ADDR;
+       unsigned char eth1addr[6];
 
        imx_iomux_v3_setup_multiple_pads(wdog_pads, ARRAY_SIZE(wdog_pads));
 
@@ -303,6 +304,11 @@ int board_late_init(void)
         */
        clrsetbits_le16(&wdog->wcr, 0, 0x10);
 
+       /* Get the second MAC address */
+       imx_get_mac_from_fuse(1, eth1addr);
+       if (!env_get("eth1addr") && is_valid_ethaddr(eth1addr))
+               eth_env_set_enetaddr("eth1addr", eth1addr);
+
        return 0;
 }