[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