[U-Boot] [PATCH 1/2] mx6: soc: Add ENET2 mac address support

Peng Fan van.freenix at gmail.com
Wed Jan 20 02:17:39 CET 2016


On Tue, Jan 19, 2016 at 09:16:35PM +0800, Ye Li wrote:
>The i.MX6SX and i.MX6UL has two ENET controllers, add support for reading
>MAC address from fuse for ENET2.
>
>Signed-off-by: Ye Li <ye.li at nxp.com>

Reviewed-by: Peng Fan <peng.fan at nxp.com>

>---
> arch/arm/cpu/armv7/mx6/soc.c             |   32 +++++++++++++++++++++--------
> arch/arm/include/asm/arch-mx6/imx-regs.h |   19 +----------------
> 2 files changed, 24 insertions(+), 27 deletions(-)
>
>diff --git a/arch/arm/cpu/armv7/mx6/soc.c b/arch/arm/cpu/armv7/mx6/soc.c
>index bf5ae8c..e521bf2 100644
>--- a/arch/arm/cpu/armv7/mx6/soc.c
>+++ b/arch/arm/cpu/armv7/mx6/soc.c
>@@ -364,15 +364,29 @@ void imx_get_mac_from_fuse(int dev_id, unsigned char *mac)
> 	struct fuse_bank4_regs *fuse =
> 			(struct fuse_bank4_regs *)bank->fuse_regs;
> 
>-	u32 value = readl(&fuse->mac_addr_high);
>-	mac[0] = (value >> 8);
>-	mac[1] = value ;
>-
>-	value = readl(&fuse->mac_addr_low);
>-	mac[2] = value >> 24 ;
>-	mac[3] = value >> 16 ;
>-	mac[4] = value >> 8 ;
>-	mac[5] = value ;
>+	if ((is_cpu_type(MXC_CPU_MX6SX) || is_cpu_type(MXC_CPU_MX6UL)) && 
>+		1 == dev_id) {
>+		u32 value = readl(&fuse->mac_addr2);
>+		mac[0] = value >> 24 ;
>+		mac[1] = value >> 16 ;
>+		mac[2] = value >> 8 ;
>+		mac[3] = value ;
>+
>+		value = readl(&fuse->mac_addr_high);
>+		mac[4] = value >> 24 ;
>+		mac[5] = value >> 16 ;
>+		
>+	} else {
>+		u32 value = readl(&fuse->mac_addr_high);
>+		mac[0] = (value >> 8);
>+		mac[1] = value ;
>+
>+		value = readl(&fuse->mac_addr_low);
>+		mac[2] = value >> 24 ;
>+		mac[3] = value >> 16 ;
>+		mac[4] = value >> 8 ;
>+		mac[5] = value ;
>+	}
> 
> }
> #endif
>diff --git a/arch/arm/include/asm/arch-mx6/imx-regs.h b/arch/arm/include/asm/arch-mx6/imx-regs.h
>index f24525e..d0324a0 100644
>--- a/arch/arm/include/asm/arch-mx6/imx-regs.h
>+++ b/arch/arm/include/asm/arch-mx6/imx-regs.h
>@@ -715,7 +715,6 @@ struct fuse_bank1_regs {
> 	u32	rsvd7[3];
> };
> 
>-#if (defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL))
> struct fuse_bank4_regs {
> 	u32 sjc_resp_low;
> 	u32 rsvd0[3];
>@@ -725,29 +724,13 @@ struct fuse_bank4_regs {
> 	u32 rsvd2[3];
> 	u32 mac_addr_high;
> 	u32 rsvd3[3];
>-	u32 mac_addr2;
>+	u32 mac_addr2; /*For i.MX6SX and i.MX6UL*/
> 	u32 rsvd4[7];
> 	u32 gp1;
> 	u32 rsvd5[3];
> 	u32 gp2;
> 	u32 rsvd6[3];
> };
>-#else
>-struct fuse_bank4_regs {
>-	u32	sjc_resp_low;
>-	u32     rsvd0[3];
>-	u32     sjc_resp_high;
>-	u32     rsvd1[3];
>-	u32	mac_addr_low;
>-	u32     rsvd2[3];
>-	u32     mac_addr_high;
>-	u32	rsvd3[0xb];
>-	u32	gp1;
>-	u32	rsvd4[3];
>-	u32	gp2;
>-	u32	rsvd5[3];
>-};
>-#endif
> 
> struct aipstz_regs {
> 	u32	mprot0;
>-- 
>1.7.4.1
>
>_______________________________________________
>U-Boot mailing list
>U-Boot at lists.denx.de
>http://lists.denx.de/mailman/listinfo/u-boot


More information about the U-Boot mailing list