|
|
|
@ -312,21 +312,8 @@ static void fec_rbd_clean(int last, struct fec_bd *pRbd) |
|
|
|
|
|
|
|
|
|
static int fec_get_hwaddr(struct eth_device *dev, unsigned char *mac) |
|
|
|
|
{ |
|
|
|
|
/*
|
|
|
|
|
* The MX27 can store the mac address in internal eeprom |
|
|
|
|
* This mechanism is not supported now by MX51 or MX25 |
|
|
|
|
*/ |
|
|
|
|
#if defined(CONFIG_MX51) || defined(CONFIG_MX25) |
|
|
|
|
return -1; |
|
|
|
|
#else |
|
|
|
|
struct iim_regs *iim = (struct iim_regs *)IMX_IIM_BASE; |
|
|
|
|
int i; |
|
|
|
|
|
|
|
|
|
for (i = 0; i < 6; i++) |
|
|
|
|
mac[6-1-i] = readl(&iim->iim_bank_area0[IIM0_MAC + i]); |
|
|
|
|
|
|
|
|
|
imx_get_mac_from_fuse(mac); |
|
|
|
|
return !is_valid_ether_addr(mac); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int fec_set_hwaddr(struct eth_device *dev) |
|
|
|
@ -754,7 +741,7 @@ static int fec_probe(bd_t *bd) |
|
|
|
|
eth_register(edev); |
|
|
|
|
|
|
|
|
|
if (fec_get_hwaddr(edev, ethaddr) == 0) { |
|
|
|
|
printf("got MAC address from EEPROM: %pM\n", ethaddr); |
|
|
|
|
printf("got MAC address from fuse: %pM\n", ethaddr); |
|
|
|
|
memcpy(edev->enetaddr, ethaddr, 6); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|