[U-Boot] [PATCH] i.mx6:imx6q: allign MAC address with burned-in ordering

Jason Liu liu.h.jason at gmail.com
Thu Dec 29 09:38:30 CET 2011


Stefano,

2011/12/19 Jason Liu <jason.hui at linaro.org>:
> For the i.mx6q, the burned-in MAC address will be the following odering,
>
> fuse: 0x620[7:0]   MAC_ADDR[7:0]     ---> mac[5]
> fuse: 0x620[15:8]  MAC_ADDR[15:8]    ---> mac[4]
> fuse: 0x620[23:16] MAC_ADDR[23:16]   ---> mac[3]
> fuse: 0x620[31:24] MAC_ADDR[31:24]   ---> mac[2]
> fuse: 0x630[7:0]   MAC_ADDR[39:32]   ---> mac[1]
> fuse: 0x630[15:8]  MAC_ADDR[47:40]   ---> mac[0]
>
> This patch also fix the error caculation for the fuse bank[0] address
>
> Signed-off-by: Jason Liu <jason.hui at linaro.org>
> Cc: Stefano Babic <sbabic at denx.de>
> ---
>  arch/arm/cpu/armv7/mx6/soc.c             |   14 ++++++++------
>  arch/arm/include/asm/arch-mx6/imx-regs.h |    2 +-
>  2 files changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/mx6/soc.c b/arch/arm/cpu/armv7/mx6/soc.c
> index dff5e4e..bd59cf5 100644
> --- a/arch/arm/cpu/armv7/mx6/soc.c
> +++ b/arch/arm/cpu/armv7/mx6/soc.c
> @@ -70,13 +70,15 @@ void imx_get_mac_from_fuse(unsigned char *mac)
>        struct fuse_bank4_regs *fuse =
>                        (struct fuse_bank4_regs *)bank->fuse_regs;
>
> -       u32 mac_lo = readl(&fuse->mac_addr_low);
> -       u32 mac_hi = readl(&fuse->mac_addr_high);
> +       u32 value = readl(&fuse->mac_addr_high);
> +       mac[0] = (value >> 8);
> +       mac[1] = value ;
>
> -       *(u32 *)mac = mac_lo;
> -
> -       mac[4] = mac_hi & 0xff;
> -       mac[5] = (mac_hi >> 8) & 0xff;
> +       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 85d55b7..5fe9748 100644
> --- a/arch/arm/include/asm/arch-mx6/imx-regs.h
> +++ b/arch/arm/include/asm/arch-mx6/imx-regs.h
> @@ -214,7 +214,7 @@ struct iim_regs {
>        u32     crc_value;
>        u32     rsvd6[3];
>        u32     version;
> -       u32     rsvd7[0xd8];
> +       u32     rsvd7[0xdb];
>
>        struct fuse_bank {
>                u32     fuse_regs[0x20];

Ping. Any comments?

> --
> 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