[PATCH 6/9] net/eth-uclass: Add eth_get_ethaddr_from_dev

Heinrich Schuchardt xypron.glpk at gmx.de
Mon May 26 11:08:30 CEST 2025


On 16.05.25 10:18, Adriano Cordova wrote:
> Add eth_get_ethaddr_from_dev() to retrieve the MAC address
> of a specific eth udevice. The function eth_get_ethaddr()
> preserves its behavior of returning the MAC address of the
> current eth udevice.
> 
> Signed-off-by: Adriano Cordova <adriano.cordova at canonical.com>

Reviewed-by: Heinrich Schuchardt <xypron.glpk at gmx.de>

> ---
>   include/net-common.h |  1 +
>   net/eth-uclass.c     | 11 ++++++++---
>   2 files changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/include/net-common.h b/include/net-common.h
> index e536968a92b..c429d77d7c3 100644
> --- a/include/net-common.h
> +++ b/include/net-common.h
> @@ -292,6 +292,7 @@ struct eth_ops {
>   
>   struct udevice *eth_get_dev(void); /* get the current device */
>   void eth_set_dev(struct udevice *dev); /* set a device */
> +unsigned char *eth_get_ethaddr_from_dev(struct udevice *dev); /* get a device's MAC */
>   unsigned char *eth_get_ethaddr(void); /* get the current device MAC */
>   int eth_rx(void);                      /* Check for received packets */
>   void eth_halt(void);			/* stop SCC */
> diff --git a/net/eth-uclass.c b/net/eth-uclass.c
> index 5555f82f23e..984d888e2fc 100644
> --- a/net/eth-uclass.c
> +++ b/net/eth-uclass.c
> @@ -175,18 +175,23 @@ struct udevice *eth_get_dev_by_name(const char *devname)
>   	return NULL;
>   }
>   
> -unsigned char *eth_get_ethaddr(void)
> +unsigned char *eth_get_ethaddr_from_dev(struct udevice *dev)
>   {
>   	struct eth_pdata *pdata;
>   
> -	if (eth_get_dev()) {
> -		pdata = dev_get_plat(eth_get_dev());
> +	if (dev) {
> +		pdata = dev_get_plat(dev);
>   		return pdata->enetaddr;
>   	}
>   
>   	return NULL;
>   }
>   
> +unsigned char *eth_get_ethaddr(void)
> +{
> +	return eth_get_ethaddr_from_dev(eth_get_dev());
> +}
> +
>   /* Set active state without calling start on the driver */
>   int eth_init_state_only(void)
>   {



More information about the U-Boot mailing list