Message ID | 444d2606c18ae9ba904e8ba59e515154e1d10289.1584965507.git.michal.simek@xilinx.com |
---|---|
State | Accepted |
Commit | d4172c940680c1c8aa370898a8d9e8ec0dceaeaf |
Delegated to: | Joe Hershberger |
Headers | show |
Series | [v2] net: eth-uclass: Fix message if mac is coming from DT or ROM | expand |
po 23. 3. 2020 v 13:11 odesÃlatel Michal Simek <michal.simek@xilinx.com> napsal: > > When local-mac-address DT property is specified it is reported the same way > as address read from eeprom/ROM. Show properly if mac address is coming > from DT or ROM. > > Signed-off-by: Michal Simek <michal.simek@xilinx.com> > --- > > Changes in v2: > - Also update source when mac addresses from variable and ROM/DT failed > to make clear what u-boot used as source. > > net/eth-uclass.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/net/eth-uclass.c b/net/eth-uclass.c > index ed81cbd53746..8bf2eabe9026 100644 > --- a/net/eth-uclass.c > +++ b/net/eth-uclass.c > @@ -490,6 +490,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[ARP_HLEN]; > + char *source = "DT"; > > #if defined(CONFIG_NEEDS_MANUAL_RELOC) > struct eth_ops *ops = eth_get_ops(dev); > @@ -522,6 +523,7 @@ static int eth_post_probe(struct udevice *dev) > /* Check if the device has a valid MAC address in device tree */ > if (!eth_dev_get_mac_address(dev, pdata->enetaddr) || > !is_valid_ethaddr(pdata->enetaddr)) { > + source = "ROM"; > /* Check if the device has a MAC address in ROM */ > if (eth_get_ops(dev)->read_rom_hwaddr) > eth_get_ops(dev)->read_rom_hwaddr(dev); > @@ -533,9 +535,9 @@ static int eth_post_probe(struct udevice *dev) > memcmp(pdata->enetaddr, env_enetaddr, ARP_HLEN)) { > printf("\nWarning: %s MAC addresses don't match:\n", > dev->name); > - printf("Address in ROM is %pM\n", > - pdata->enetaddr); > - printf("Address in environment is %pM\n", > + printf("Address in %s is\t\t%pM\n", > + source, pdata->enetaddr); > + printf("Address in environment is\t%pM\n", > env_enetaddr); > } > > @@ -543,8 +545,8 @@ static int eth_post_probe(struct udevice *dev) > memcpy(pdata->enetaddr, env_enetaddr, ARP_HLEN); > } else if (is_valid_ethaddr(pdata->enetaddr)) { > eth_env_set_enetaddr_by_index("eth", dev->seq, pdata->enetaddr); > - printf("\nWarning: %s using MAC address from ROM\n", > - dev->name); > + printf("\nWarning: %s using MAC address from %s\n", > + dev->name, source); > } else if (is_zero_ethaddr(pdata->enetaddr) || > !is_valid_ethaddr(pdata->enetaddr)) { > #ifdef CONFIG_NET_RANDOM_ETHADDR > -- > 2.25.1 > Applied. M
diff --git a/net/eth-uclass.c b/net/eth-uclass.c index ed81cbd53746..8bf2eabe9026 100644 --- a/net/eth-uclass.c +++ b/net/eth-uclass.c @@ -490,6 +490,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[ARP_HLEN]; + char *source = "DT"; #if defined(CONFIG_NEEDS_MANUAL_RELOC) struct eth_ops *ops = eth_get_ops(dev); @@ -522,6 +523,7 @@ static int eth_post_probe(struct udevice *dev) /* Check if the device has a valid MAC address in device tree */ if (!eth_dev_get_mac_address(dev, pdata->enetaddr) || !is_valid_ethaddr(pdata->enetaddr)) { + source = "ROM"; /* Check if the device has a MAC address in ROM */ if (eth_get_ops(dev)->read_rom_hwaddr) eth_get_ops(dev)->read_rom_hwaddr(dev); @@ -533,9 +535,9 @@ static int eth_post_probe(struct udevice *dev) memcmp(pdata->enetaddr, env_enetaddr, ARP_HLEN)) { printf("\nWarning: %s MAC addresses don't match:\n", dev->name); - printf("Address in ROM is %pM\n", - pdata->enetaddr); - printf("Address in environment is %pM\n", + printf("Address in %s is\t\t%pM\n", + source, pdata->enetaddr); + printf("Address in environment is\t%pM\n", env_enetaddr); } @@ -543,8 +545,8 @@ static int eth_post_probe(struct udevice *dev) memcpy(pdata->enetaddr, env_enetaddr, ARP_HLEN); } else if (is_valid_ethaddr(pdata->enetaddr)) { eth_env_set_enetaddr_by_index("eth", dev->seq, pdata->enetaddr); - printf("\nWarning: %s using MAC address from ROM\n", - dev->name); + printf("\nWarning: %s using MAC address from %s\n", + dev->name, source); } else if (is_zero_ethaddr(pdata->enetaddr) || !is_valid_ethaddr(pdata->enetaddr)) { #ifdef CONFIG_NET_RANDOM_ETHADDR
When local-mac-address DT property is specified it is reported the same way as address read from eeprom/ROM. Show properly if mac address is coming from DT or ROM. Signed-off-by: Michal Simek <michal.simek@xilinx.com> --- Changes in v2: - Also update source when mac addresses from variable and ROM/DT failed to make clear what u-boot used as source. net/eth-uclass.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)