diff options
author | Ye Li <ye.li@nxp.com> | 2016-02-01 10:41:31 +0800 |
---|---|---|
committer | Stefano Babic <sbabic@denx.de> | 2016-02-02 21:03:59 +0100 |
commit | d4d1dd674977fc7be30bd1f113b564247236ed60 (patch) | |
tree | a45453d861bddadc78dae655b757ce638fca09fb /arch/arm/cpu/armv7 | |
parent | 276d3ebb883024d753cd9c69ab2fd243ffa1262e (diff) | |
download | u-boot-imx-d4d1dd674977fc7be30bd1f113b564247236ed60.zip u-boot-imx-d4d1dd674977fc7be30bd1f113b564247236ed60.tar.gz u-boot-imx-d4d1dd674977fc7be30bd1f113b564247236ed60.tar.bz2 |
mx6: soc: Add ENET2 mac address support
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@nxp.com>
Diffstat (limited to 'arch/arm/cpu/armv7')
-rw-r--r-- | arch/arm/cpu/armv7/mx6/soc.c | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/arch/arm/cpu/armv7/mx6/soc.c b/arch/arm/cpu/armv7/mx6/soc.c index bf5ae8c..ebe42b8 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)) && + dev_id == 1) { + 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_addr1); + mac[4] = value >> 24 ; + mac[5] = value >> 16 ; + + } else { + u32 value = readl(&fuse->mac_addr1); + mac[0] = (value >> 8); + mac[1] = value ; + + value = readl(&fuse->mac_addr0); + mac[2] = value >> 24 ; + mac[3] = value >> 16 ; + mac[4] = value >> 8 ; + mac[5] = value ; + } } #endif |