[PATCH v6 12/22] core: fdtaddr: add devfdt_get_addr_size_index_ptr function

Simon Glass sjg at chromium.org
Sat Mar 11 02:37:54 CET 2023


Hi Johan,

On Mon, 6 Mar 2023 at 12:55, Johan Jonker <jbx6244 at gmail.com> wrote:
>
>
>
> On 3/6/23 18:53, Simon Glass wrote:
> > Hi Johan,
> >
> > On Thu, 2 Mar 2023 at 17:15, Johan Jonker <jbx6244 at gmail.com> wrote:
> >>
> >> Add devfdt_get_addr_size_index_ptr function with the same
> >> functionality as devfdt_get_addr_size_index, but instead
> >> a return pointer is given.
> >>
> >> Suggested-by: Michael Nazzareno Trimarchi <michael at amarulasolutions.com>
> >> Signed-off-by: Johan Jonker <jbx6244 at gmail.com>
> >> Reviewed-by: Michael Trimarchi <michael at amarulasolutions.com>
> >> ---
> >>
> >> Changed V5:
> >>   fix spelling
> >>   use tabs
> >> ---
> >>  drivers/core/fdtaddr.c |  8 ++++++++
> >>  include/dm/fdtaddr.h   | 17 ++++++++++++++++-
> >>  2 files changed, 24 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/core/fdtaddr.c b/drivers/core/fdtaddr.c
> >> index 91bcd1a2..f5906ff9 100644
> >> --- a/drivers/core/fdtaddr.c
> >> +++ b/drivers/core/fdtaddr.c
> >> @@ -122,6 +122,14 @@ fdt_addr_t devfdt_get_addr_size_index(const struct udevice *dev, int index,
> >>  #endif
> >>  }
> >>
> >> +void *devfdt_get_addr_size_index_ptr(const struct udevice *dev, int index,
> >> +                                    fdt_size_t *size)
> >> +{
> >> +       fdt_addr_t addr = devfdt_get_addr_size_index(dev, index, size);
> >> +
> >> +       return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)(uintptr_t)addr;
> >
> Just wondering, as a side question:
> Why is Uboot maintaining/exporting 2 sets of functions that do the do the more or less the same thing.
>
> For example:
> devfdt_get_addr_size_index_ptr vs. dev_read_addr_size_index_ptr
>
> Or should we standardize and replace all by dev_read_addr_size_index_ptr if possible?

Yes that is a bit wonky. The flat/live tree selection is supposed to
be in ofnode.c, so we could change it to call the ofnode version in
both cases, moving the logic into there. That is how other functions
work.

Regards,
Simon


More information about the U-Boot mailing list