diff mbox

[U-Boot,3/3] net: fec_mxc: specify the registered eth index by dev_id

Message ID 1491824675-29627-3-git-send-email-peng.fan@nxp.com
State Accepted
Commit 979a58936bc2b0108363501f9fd7e53ce2519bb0
Delegated to: Stefano Babic
Headers show

Commit Message

Peng Fan April 10, 2017, 11:44 a.m. UTC
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(-)

Comments

Stefano Babic April 12, 2017, 4:22 p.m. UTC | #1
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 mbox

Patch

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: