Hi Marek, On Sat, Sep 22, 2018 at 6:59 AM Marek Vasut <marek.va...@gmail.com> wrote: > > Of CONFIG_OF_TRANSLATE is enabled, this function still returns > untranslated bogus results. Add the missing translation. > > Signed-off-by: Marek Vasut <marek.vasut+rene...@gmail.com> > Cc: Simon Glass <s...@chromium.org> > Cc: Tom Rini <tr...@konsulko.com> > --- > drivers/core/ofnode.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c > index a7e1927723..035023ca91 100644 > --- a/drivers/core/ofnode.c > +++ b/drivers/core/ofnode.c > @@ -542,8 +542,15 @@ fdt_addr_t ofnode_get_addr_size(ofnode node, const char > *property, > return FDT_ADDR_T_NONE; > na = of_n_addr_cells(np); > ns = of_n_addr_cells(np);
There is an unrelated bug. It should be: ns = of_n_size_cells(np); > + > *sizep = of_read_number(prop + na, ns); > - return of_read_number(prop, na); > + > + if (IS_ENABLED(CONFIG_OF_TRANSLATE) && ns > 0) { > + return of_translate_address(ofnode_to_np(node), prop); Just use np instead of ofnode_to_np(node) > + } else { > + na = of_n_addr_cells(ofnode_to_np(node)); This line is unnecessary. > + return of_read_number(prop, na); > + } > } else { > return fdtdec_get_addr_size(gd->fdt_blob, > ofnode_to_offset(node), property, > -- However, I have to point out that this patch (along with the unrelated bug I pointed out above) is not related to "support parsing PCI controller DT subnodes". Both of_translate_address() and of_read_number() are not designed to handle PCI-specific address formats. See my comments in patch 3 and 5. Regards, Bin _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot