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