[PATCH] net/eth: read default mac-address default from dts

Trent Piepho trent.piepho at igorinstitute.com
Tue Jun 15 13:32:26 PDT 2021


Once upon a time, it was common for kernel dts files to be booted with
u-boot to include an all zero mac address property, since u-boot could
not unpack/pack the fdt.  It could only find an existing property and
change bytes already present, thus adding a blank mac address to be
patched.  Barebox has a much better fdt fixup system and does not need
this.

But maybe these blank mac address properties are still there in some
of the dts files, which mostly come from the kernel dts sources?
Might be worth ignoring an all zero address rather than calling it
found.

Unless of_get_mac_address() already includes such logic in a way that works ok?

On Tue, Jun 15, 2021 at 12:49 PM Michael Grzeschik
<m.grzeschik at pengutronix.de> wrote:
>
> Since we have the functino of_get_mac_address we can
> use it to set the default mac address vom the dts.
>
> Signed-off-by: Michael Grzeschik <m.grzeschik at pengutronix.de>
> ---
>  net/eth.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/net/eth.c b/net/eth.c
> index 84f99d3aa8..baebf89d89 100644
> --- a/net/eth.c
> +++ b/net/eth.c
> @@ -11,6 +11,7 @@
>  #include <net.h>
>  #include <dma.h>
>  #include <of.h>
> +#include <of_net.h>
>  #include <linux/phy.h>
>  #include <errno.h>
>  #include <malloc.h>
> @@ -431,6 +432,14 @@ int eth_register(struct eth_device *edev)
>         if (!ret)
>                 found = 1;
>
> +       if (!found && edev->parent) {
> +               const u8 *maddr = of_get_mac_address(edev->parent->device_node);
> +               if (maddr) {
> +                       memcpy(ethaddr, maddr, ETH_ALEN);
> +                       found = 1;
> +               }
> +       }
> +
>         if (!found) {
>                 ret = edev->get_ethaddr(edev, ethaddr);
>                 if (!ret)
> --
> 2.29.2
>
>
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox



More information about the barebox mailing list