[PATCH 1/5] bloblist: add API to check the register conventions

Raymond Mao raymond.mao at linaro.org
Wed Dec 20 16:33:07 CET 2023


Hi Ilias,

The rzero refers to the boot argument that must be 0 according to the
register conventions of FW Handoff spec.
Yes, you are right. I should check this at the beginning of the function.

Thanks and regards,
Raymond

On Wed, 20 Dec 2023 at 07:54, Ilias Apalodimas <ilias.apalodimas at linaro.org>
wrote:

> Hi Raymond,
>
> On Tue, 19 Dec 2023 at 23:11, Raymond Mao <raymond.mao at linaro.org> wrote:
> >
> > Add bloblist_check_reg_conv() to check whether the bloblist is compliant
> > to the register conventions defined in Firmware Handoff specification.
> > This API can be used for all Arm platforms.
> >
> > Signed-off-by: Raymond Mao <raymond.mao at linaro.org>
> > ---
> >  common/bloblist.c  | 15 +++++++++++++++
> >  include/bloblist.h | 12 ++++++++++++
> >  2 files changed, 27 insertions(+)
> >
> > diff --git a/common/bloblist.c b/common/bloblist.c
> > index 625e480f6b..232ca4c6ce 100644
> > --- a/common/bloblist.c
> > +++ b/common/bloblist.c
> > @@ -542,3 +542,18 @@ int bloblist_maybe_init(void)
> >
> >         return 0;
> >  }
> > +
> > +int bloblist_check_reg_conv(ulong rfdt, ulong rzero)
> > +{
> > +       ulong fdt;
> > +
> > +       if (!IS_ENABLED(CONFIG_OF_BOARD))
> > +               return 0;
> > +
> > +       fdt = (ulong)bloblist_find(BLOBLISTT_CONTROL_FDT, 0);
> > +
> > +       if (rfdt != fdt || rzero != 0)
> > +               return -EIO;
>
> What is rzero supposed to be doing here? If its only valid value is !0
> why arent we checking it earlier?
>
> Thanks
> /Ilias
> > +
> > +       return 0;
> > +}
> > diff --git a/include/bloblist.h b/include/bloblist.h
> > index 84fc943819..b5d0f147f6 100644
> > --- a/include/bloblist.h
> > +++ b/include/bloblist.h
> > @@ -461,4 +461,16 @@ static inline int bloblist_maybe_init(void)
> >  }
> >  #endif /* BLOBLIST */
> >
> > +/**
> > + * bloblist_check_reg_conv() - Check whether the bloblist is compliant
> to
> > + *                            the register conventions according to the
> > + *                            Firmware Handoff spec.
> > + *
> > + * @rfdt:  Register that holds the FDT base address.
> > + * @rzero: Register that must be zero.
> > + * Return: 0 if OK, -EIO if the bloblist is not compliant to the
> register
> > + *        conventions.
> > + */
> > +int bloblist_check_reg_conv(ulong rfdt, ulong rzero);
> > +
> >  #endif /* __BLOBLIST_H */
> > --
> > 2.25.1
> >
>


More information about the U-Boot mailing list