i.mx6:imx6q: allign MAC address with burned-in ordering
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@linaro.org> Cc: Stefano Babic <sbabic@denx.de>
This commit is contained in:
parent
29f75a5ce5
commit
bd2e27c043
|
@ -70,13 +70,15 @@ 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 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
|
||||
|
|
|
@ -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];
|
||||
|
|
Loading…
Reference in New Issue