summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAndy Duan <fugang.duan@nxp.com>2017-01-19 14:22:29 +0800
committerYe Li <ye.li@nxp.com>2017-04-05 14:04:37 +0800
commitb524c433d3bf9d98c60a79528adb7ab4c0605862 (patch)
tree1c8ebb393c0891a88f287e37130352879b8bbe82 /drivers
parent34e343d7ebd5b7c8f53dc9e38c0a6eec04d05f8e (diff)
downloadu-boot-imx-b524c433d3bf9d98c60a79528adb7ab4c0605862.zip
u-boot-imx-b524c433d3bf9d98c60a79528adb7ab4c0605862.tar.gz
u-boot-imx-b524c433d3bf9d98c60a79528adb7ab4c0605862.tar.bz2
MLK-13782 net: fec_mxc: specify the registered eth index by dev_id
Specify the registered eth index by dev_id. Signed-off-by: Fugang Duan <fugang.duan@nxp.com> (cherry picked from commit df42b7b0c5e6847f32419075eb25f274ed039d6f)
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/fec_mxc.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index 93c0993..2430f09 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -1025,6 +1025,7 @@ static int fec_probe(bd_t *bd, int dev_id, uint32_t base_addr,
struct eth_device *edev;
struct fec_priv *fec;
unsigned char ethaddr[6];
+ char mac[16];
uint32_t start;
int ret = 0;
@@ -1087,12 +1088,18 @@ static int fec_probe(bd_t *bd, int dev_id, uint32_t base_addr,
fec->phy_id = phy_id;
#endif
eth_register(edev);
+ /* only support one eth device, the index number pointed by dev_id */
+ edev->index = fec->dev_id;
if (fec_get_hwaddr(fec->dev_id, ethaddr) == 0) {
debug("got MAC%d address from fuse: %pM\n", fec->dev_id, ethaddr);
memcpy(edev->enetaddr, ethaddr, 6);
- if (!getenv("ethaddr"))
- eth_setenv_enetaddr("ethaddr", ethaddr);
+ if (fec->dev_id)
+ sprintf(mac, "eth%daddr", fec->dev_id);
+ else
+ strcpy(mac, "ethaddr");
+ if (!getenv(mac))
+ eth_setenv_enetaddr(mac, ethaddr);
}
return ret;
err4: