From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Glass Date: Tue, 7 Jul 2015 20:53:33 -0600 Subject: [U-Boot] [PATCH 01/20] dm: net: Support usbethaddr environment variable In-Reply-To: <1436324032-17931-1-git-send-email-sjg@chromium.org> References: <1436324032-17931-1-git-send-email-sjg@chromium.org> Message-ID: <1436324032-17931-2-git-send-email-sjg@chromium.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de For USB Ethernet devices we need to use the usbethaddr environment variable (instead of ethaddr) the Ethernet hardware address. Add this to the uclass so that it happens automatically. Signed-off-by: Simon Glass --- net/eth.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/net/eth.c b/net/eth.c index d3ec8d6..1f5e8ee 100644 --- a/net/eth.c +++ b/net/eth.c @@ -519,6 +519,7 @@ static int eth_post_probe(struct udevice *dev) struct eth_device_priv *priv = dev->uclass_priv; struct eth_pdata *pdata = dev->platdata; unsigned char env_enetaddr[6]; + const char *prefix; priv->state = ETH_STATE_INIT; @@ -526,7 +527,11 @@ static int eth_post_probe(struct udevice *dev) if (eth_get_ops(dev)->read_rom_hwaddr) eth_get_ops(dev)->read_rom_hwaddr(dev); - eth_getenv_enetaddr_by_index("eth", dev->seq, env_enetaddr); + prefix = device_get_uclass_id(dev->parent) == UCLASS_USB_HUB ? + "usbeth" : "eth"; + debug("prefix=%s, uclass=%d\n", prefix, + device_get_uclass_id(dev->parent)); + eth_getenv_enetaddr_by_index(prefix, dev->seq, env_enetaddr); if (!is_zero_ethaddr(env_enetaddr)) { if (!is_zero_ethaddr(pdata->enetaddr) && memcmp(pdata->enetaddr, env_enetaddr, 6)) { -- 2.4.3.573.g4eafbef