[U-Boot] [PATCH 07/14] net: core: Inform the user of the device MAC address

Olliver Schinagl oliver at schinagl.nl
Fri Dec 2 11:08:31 CET 2016


Hey Joe,


On 30-11-16 20:29, Joe Hershberger wrote:
> On Fri, Nov 25, 2016 at 9:30 AM, Olliver Schinagl <oliver at schinagl.nl> wrote:
>> In certain conditions we currently print the MAC address. For example a
>> warning when a random mac address is in use or a missmatch between HW
>> and ENV.
>>
>> If all things went well however (but even if there is a miss-match) we
>> do not inform the user what the final MAC address of the device is.
>>
>> Lets print the final MAC address of the device with which it has been
>> setup.
>>
>> Signed-off-by: Olliver Schinagl <oliver at schinagl.nl>
>> ---
>>   net/eth-uclass.c | 9 ++++++---
>>   net/eth_legacy.c | 3 +++
>>   2 files changed, 9 insertions(+), 3 deletions(-)
>>
>> diff --git a/net/eth-uclass.c b/net/eth-uclass.c
>> index aca3f6d..5c888b8 100644
>> --- a/net/eth-uclass.c
>> +++ b/net/eth-uclass.c
>> @@ -413,11 +413,12 @@ int eth_initialize(void)
>>                  }
>>
>>                  bootstage_mark(BOOTSTAGE_ID_NET_ETH_INIT);
>> +               putc('\n');
>>                  do {
>> -                       if (num_devices)
>> -                               printf(", ");
>> +                       struct eth_pdata *pdata = dev->platdata;
>>
>> -                       printf("eth%d: %s", dev->seq, dev->name);
>> +                       printf("eth%d:  %s [%pM]\n", dev->seq, dev->name,
>> +                                                    pdata->enetaddr);
>>
>>                          if (ethprime && dev == prime_dev)
>>                                  printf(" [PRIME]");
>> @@ -522,6 +523,8 @@ static int eth_post_probe(struct udevice *dev)
>>   #endif
>>          }
>>
>> +       printf("%s ", dev->name);
>> +
> Why this?
>
> Can you send to the list what an example output looks like?

Absolutly. Right now I have this, with the v2 work I'm doing to print 
the mac source.

Net:   ethernet at 01c50000 <other etnernet devices>
eth0:  ethernet at 01c50000 [cc:bd:d3:00:01:c6] (EEPROM)
eth1: <other_ethernet_device1> [<other_mac>] (<other_source>)


If there is an error or warning from the net layer (during probe, during 
init etc)
we get something like

Net:   CRC error on MAC address from EEPROM on device: ethernet at 01c50000 
<other warning> on device: <other_device>
eth0:  ethernet at 01c50000 [02:4b:04:42:12:31] (driver)

(where driver is the read_rom_hwaddr hook a driver supplies).

I did not go over all error messages to print it as pretty. So in that 
case it will be
Net:   Some error. ethernet at 01c50000

Olliver
>
> Thanks,
> -Joe
>
>>          return 0;
>>   }
>>
>> diff --git a/net/eth_legacy.c b/net/eth_legacy.c
>> index 2b2c2de..bf4de37 100644
>> --- a/net/eth_legacy.c
>> +++ b/net/eth_legacy.c
>> @@ -178,6 +178,9 @@ int eth_write_hwaddr(struct eth_device *dev, const char *base_name,
>>                                 dev->name);
>>          }
>>
>> +       printf("%s (eth%d) has MAC address: %pM\n",
>> +              dev->name, eth_number, dev->enetaddr);
>> +
>>          return ret;
>>   }
>>
>> --
>> 2.10.2
>>
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot



More information about the U-Boot mailing list