With many potential places where a MAC address can be read from, the user may not know where the MAC address originated from. Print the MAC source after initializing the Ethernet device.
Signed-off-by: Olliver Schinagl <oli...@schinagl.nl> --- include/net.h | 14 ++++++++++++++ net/eth-uclass.c | 18 +++++++++++++++--- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/include/net.h b/include/net.h index 7c66f3f06d..3eb5f81ea5 100644 --- a/include/net.h +++ b/include/net.h @@ -87,18 +87,32 @@ enum eth_state_t { ETH_STATE_ACTIVE }; +enum enetaddr_source { + ENETADDR_SRC_UNKNOWN = 0, + ENETADDR_SRC_ROM, + ENETADDR_SRC_EEPROM, + ENETADDR_SRC_DRIVER, + ENETADDR_SRC_BOARD, + ENETADDR_SRC_ENV, + ENETADDR_SRC_FDT, + ENETADDR_SRC_RANDOM, + ENETADDR_SRC_NONE, +}; + #ifdef CONFIG_DM_ETH /** * struct eth_pdata - Platform data for Ethernet MAC controllers * * @iobase: The base address of the hardware registers * @enetaddr: The Ethernet MAC address that is loaded from EEPROM or env + * @enetaddr_source: Indicator where the Ethernet MAC adress came from * @phy_interface: PHY interface to use - see PHY_INTERFACE_MODE_... * @max_speed: Maximum speed of Ethernet connection supported by MAC */ struct eth_pdata { phys_addr_t iobase; unsigned char enetaddr[ARP_HLEN]; + enum enetaddr_source enetaddr_src; int phy_interface; int max_speed; }; diff --git a/net/eth-uclass.c b/net/eth-uclass.c index 02ee926f74..c88b032868 100644 --- a/net/eth-uclass.c +++ b/net/eth-uclass.c @@ -416,9 +416,21 @@ int eth_initialize(void) putc('\n'); do { struct eth_pdata *pdata = dev->platdata; - - printf("eth%d: %s [%pM]\n", dev->seq, dev->name, - pdata->enetaddr); + const char *enetaddr_src[] = { + "unknown", + "ROM", + "EEPROM", + "driver", + "board", + "environment", + "flattened device tree", + "randomly generated", + "not set", + }; + + printf("eth%d: %s [%pM] (%s)\n", dev->seq, dev->name, + pdata->enetaddr, + enetaddr_src[pdata->enetaddr_src]); if (ethprime && dev == prime_dev) printf(" [PRIME]"); -- 2.11.0 -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.