ARM: dra7_evm: read mac address properly from e-fuse
authorMugunthan V N <mugunthanvnm@ti.com>
Tue, 7 Jan 2014 14:27:38 +0000 (19:57 +0530)
committerTom Rini <trini@ti.com>
Tue, 7 Jan 2014 21:41:12 +0000 (16:41 -0500)
Byte offset of Ethernet mac address read from e-fuse are wrong so DHCP is
not working on some boards, modifying the offset to read properly.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
board/ti/dra7xx/evm.c

index 9ae88c57a41a717fd0d58b709b836791505593ab..1b60b8f672eaa4ca7116365730996acad389d51c 100644 (file)
@@ -202,12 +202,12 @@ int board_eth_init(bd_t *bis)
        /* try reading mac address from efuse */
        mac_lo = readl((*ctrl)->control_core_mac_id_0_lo);
        mac_hi = readl((*ctrl)->control_core_mac_id_0_hi);
-       mac_addr[0] = mac_hi & 0xFF;
+       mac_addr[0] = (mac_hi & 0xFF0000) >> 16;
        mac_addr[1] = (mac_hi & 0xFF00) >> 8;
-       mac_addr[2] = (mac_hi & 0xFF0000) >> 16;
-       mac_addr[3] = mac_lo & 0xFF;
+       mac_addr[2] = mac_hi & 0xFF;
+       mac_addr[3] = (mac_lo & 0xFF0000) >> 16;
        mac_addr[4] = (mac_lo & 0xFF00) >> 8;
-       mac_addr[5] = (mac_lo & 0xFF0000) >> 16;
+       mac_addr[5] = mac_lo & 0xFF;
 
        if (!getenv("ethaddr")) {
                printf("<ethaddr> not set. Validating first E-fuse MAC\n");