[PATCH v4 20/27] Makefile: Warn against using CONFIG_SPL_FIT_GENERATOR

Simon Glass sjg at chromium.org
Sun Aug 16 05:39:46 CEST 2020


Hi Michal,

On Fri, 14 Aug 2020 at 07:28, Michal Simek <monstr at monstr.eu> wrote:
>
> Hi Simon,
>
> ne 19. 7. 2020 v 22:06 odesílatel Simon Glass <sjg at chromium.org> napsal:
> >
> > This option is used to run arch-specific shell scripts which produce .its
> > files which are used to produce FIT images. We already have binman which
> > is designed to produce firmware images. It is more powerful and has tests.
> >
> > So this option should be deprecated and not used. Existing uses should be
> > migrated.
> >
> > Mentions of this in code reviews over the last year or so do not seem to
> > have resulted in action, and things are getting worse.
> >
> > So let's add a warning.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> > Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
> > ---
> >
> > (no changes since v1)
> >
> >  Makefile | 9 +++++++++
> >  1 file changed, 9 insertions(+)
> >
> > diff --git a/Makefile b/Makefile
> > index f1b5be1882..d73c10a973 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -1148,6 +1148,13 @@ ifneq ($(CONFIG_DM_ETH),y)
> >         @echo >&2 "See doc/driver-model/migration.rst for more info."
> >         @echo >&2 "===================================================="
> >  endif
> > +endif
> > +ifneq ($(CONFIG_SPL_FIT_GENERATOR),)
> > +       @echo >&2 "===================== WARNING ======================"
> > +       @echo >&2 "This board uses CONFIG_SPL_FIT_GENERATOR. Please migrate"
> > +       @echo >&2 "to binman instead, to avoid the proliferation of"
> > +       @echo >&2 "arch-specific scripts with no tests."
> > +       @echo >&2 "===================================================="
> >  endif
> >         @# Check that this build does not use CONFIG options that we do not
> >         @# know about unless they are in Kconfig. All the existing CONFIG
> > @@ -1345,6 +1352,8 @@ endif
> >
> >  # Boards with more complex image requirements can provide an .its source file
> >  # or a generator script
> > +# NOTE: Please do not use this. We are migrating away from Makefile rules to use
> > +# binman instead.
> >  ifneq ($(CONFIG_SPL_FIT_SOURCE),"")
> >  U_BOOT_ITS := u-boot.its
> >  $(U_BOOT_ITS): $(subst ",,$(CONFIG_SPL_FIT_SOURCE))
> > --
> > 2.28.0.rc0.105.gf9edc3c819-goog
> >
>
> I just got to this conversion and I am curious how that transition
> should look like.
> I found how FIT image is created which is fine but I didn't find any
> reference on how to generate images based on CONFIG_OF_LIST.
> If you look at arch/arm/mach-zynqmp/mkimage_fit_atf.sh you will see
> that I loop over this entry and create multiple DT nodes and the same
> amount of configurations to cover it. Is this supported by binman?
> If yes, what's the syntax for it?

The easiest way is probably to create a new entry type, like zynq-fit.
Then you can generate the DT using the sequence writer functions. See
_ReadSubNodes() in fit.py for an example.

You can perhaps have a template subnode and use that in a for loop to
generate the nodes.

>
> I tried several configurations and we can use that for generating qspi
> images and also images with different configurations to have them
> ready
> but first I need to be able to handle the case above.

I was thinking of converting sunxi which has the same need, but it
sounds like you are on the case. Let me know if you need help.

Regards,
Simon


More information about the U-Boot mailing list