ARM: AM335x: add support for reading cpsw 2nd mac address from efuse
authorMugunthan V N <mugunthanvnm@ti.com>
Tue, 18 Feb 2014 12:31:55 +0000 (07:31 -0500)
committerTom Rini <trini@ti.com>
Tue, 4 Mar 2014 14:42:06 +0000 (09:42 -0500)
Adding support for reading cpsw 2nd mac address from efuse and pass it
to kernel via dtb which will be used in dual emac mode of cpsw.
Also adding mii command support to am335x common config.

Acked-by: Tom Rini <trini@ti.com>
Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
board/ti/am335x/board.c
include/configs/ti_am335x_common.h

index 862f966e7cfaa722c14202cdccc1876fa418dec3..7609a183684b72686e67f77ce78a32b739e2bffd 100644 (file)
@@ -602,6 +602,21 @@ int board_eth_init(bd_t *bis)
        }
 
 #ifdef CONFIG_DRIVER_TI_CPSW
+
+       mac_lo = readl(&cdev->macid1l);
+       mac_hi = readl(&cdev->macid1h);
+       mac_addr[0] = mac_hi & 0xFF;
+       mac_addr[1] = (mac_hi & 0xFF00) >> 8;
+       mac_addr[2] = (mac_hi & 0xFF0000) >> 16;
+       mac_addr[3] = (mac_hi & 0xFF000000) >> 24;
+       mac_addr[4] = mac_lo & 0xFF;
+       mac_addr[5] = (mac_lo & 0xFF00) >> 8;
+
+       if (!getenv("eth1addr")) {
+               if (is_valid_ether_addr(mac_addr))
+                       eth_setenv_enetaddr("eth1addr", mac_addr);
+       }
+
        if (read_eeprom(&header) < 0)
                puts("Could not get board ID.\n");
 
index 7e9ca01cd5a4d766dafe786110f85ffdc1e55d09..50c32037ffb8705371553f60464ceb39e644e602 100644 (file)
@@ -30,6 +30,7 @@
 /* Network defines. */
 #define CONFIG_CMD_NET                 /* 'bootp' and 'tftp' */
 #define CONFIG_CMD_DHCP
+#define CONFIG_CMD_MII
 #define CONFIG_BOOTP_DNS               /* Configurable parts of CMD_DHCP */
 #define CONFIG_BOOTP_DNS2
 #define CONFIG_BOOTP_SEND_HOSTNAME