Hi Lev, On Thu, Jan 7, 2016 at 5:01 AM, Lev Iserovich <isero...@deshawresearch.com> wrote: > For multiple ethernet interfaces the FDT offset of '/aliases' will change as > we > are adding MAC addresses to the FDT.
Could you please elaborate more under what situation the offset of '/aliases' will change? > Therefore only the first interface ('ethernet0') will get properly updated in > the FDT, with the rest getting FDT errors when we try to set their MAC > address. > > Switch to using fdt_get_alias() which is the proper way to get the FDT path. > > Signed-off-by: Lev Iserovich <isero...@deshawresearch.com> > --- > > common/fdt_support.c | 8 ++------ > 1 file changed, 2 insertions(+), 6 deletions(-) > > diff --git a/common/fdt_support.c b/common/fdt_support.c > index 66464db..20e0e1c 100644 > --- a/common/fdt_support.c > +++ b/common/fdt_support.c > @@ -481,16 +481,12 @@ int fdt_fixup_memory(void *blob, u64 start, u64 size) > > void fdt_fixup_ethernet(void *fdt) > { > - int node, i, j; > + int i, j; > char enet[16], *tmp, *end; > char mac[16]; > const char *path; > unsigned char mac_addr[6]; > > - node = fdt_path_offset(fdt, "/aliases"); > - if (node < 0) > - return; > - > if (!getenv("ethaddr")) { > if (getenv("usbethaddr")) { > strcpy(mac, "usbethaddr"); > @@ -505,7 +501,7 @@ void fdt_fixup_ethernet(void *fdt) > i = 0; > while ((tmp = getenv(mac)) != NULL) { > sprintf(enet, "ethernet%d", i); > - path = fdt_getprop(fdt, node, enet, NULL); > + path = fdt_get_alias(fdt, enet); Can you please rebase your patch on top of the following two: http://patchwork.ozlabs.org/patch/539373/ http://patchwork.ozlabs.org/patch/539374/ > if (!path) { > debug("No alias for %s\n", enet); > sprintf(mac, "eth%daddr", ++i); > -- Regards, Bin _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot