Message ID | 1491824675-29627-3-git-send-email-peng.fan@nxp.com |
---|---|
State | Accepted |
Commit | 979a58936bc2b0108363501f9fd7e53ce2519bb0 |
Delegated to: | Stefano Babic |
Headers | show |
On 10/04/2017 13:44, Peng Fan wrote: > From: Andy Duan <fugang.duan@nxp.com> > > Specify the registered eth index by dev_id. > > Signed-off-by: Fugang Duan <fugang.duan@nxp.com> > Signed-off-by: Peng Fan <peng.fan@nxp.com> > Cc: Joe Hershberger <joe.hershberger@ni.com> > --- > drivers/net/fec_mxc.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c > index d67a69b..08bea8b 100644 > --- a/drivers/net/fec_mxc.c > +++ b/drivers/net/fec_mxc.c > @@ -1023,6 +1023,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; > > @@ -1085,12 +1086,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: > Reviewed-by : Stefano Babic <sbabic@denx.de> Best regards, Stefano Babic
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c index d67a69b..08bea8b 100644 --- a/drivers/net/fec_mxc.c +++ b/drivers/net/fec_mxc.c @@ -1023,6 +1023,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; @@ -1085,12 +1086,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: