[PATCH v3 06/12] binman: Support generating FITs with multiple dtbs
Simon Glass
sjg at chromium.org
Sun Sep 6 02:18:11 CEST 2020
Hi Samuel,
On Sat, 5 Sep 2020 at 16:41, Samuel Holland <samuel at sholland.org> wrote:
>
> On 9/1/20 6:13 AM, Simon Glass wrote:
> > In some cases it is useful to generate a FIT which has a number of DTB
> > images, selectable by configuration. Add support for this in binman,
> > using a simple iterator and string substitution.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> > ---
> >
> > Changes in v3:
> > - Rebase on top of earlier binman series
> >
> > Changes in v2:
> > - Add a check for a missing fit,fdt-list property
> > - Add a check for a missing of-list property
> > - Add a check for an empty of-list
> >
> > tools/binman/README.entries | 48 +++++++-
> > tools/binman/etype/fit.py | 94 +++++++++++++++-
> > tools/binman/ftest.py | 106 +++++++++++++++++-
> > tools/binman/test/170_fit_fdt.dts | 55 +++++++++
> > .../binman/test/171_fit_fdt_missing_prop.dts | 54 +++++++++
> > 5 files changed, 346 insertions(+), 11 deletions(-)
> > create mode 100644 tools/binman/test/170_fit_fdt.dts
> > create mode 100644 tools/binman/test/171_fit_fdt_missing_prop.dts
>
> [snip]
>
> > @@ -357,7 +358,52 @@ For example, this creates an image containing a FIT with U-Boot SPL:
> > };
> > };
> >
> > -Properties:
> > +U-Boot supports creating fdt and config nodes automatically. To do this,
> > +pass an of-list property (e.g. -a of-list=file1 file2). This tells binman
> > +that you want to generates nodes for two files: file1.dtb and file2.dtb
> > +The fit,fdt-list property (see above) indicates that of-list should be used.
> > +If the property is missing you will get an error.
> > +
> > +Then add a 'generator node', a node with a name starting with '@':
> > +
> > + images {
> > + @fdt-SEQ {
> > + description = "fdt-NAME";
> > + type = "flat_dt";
> > + compression = "none";
> > + };
> > + };
> > +
> > +This tells binman to create nodes fdt-1 and fdt-2 for each of your two
> > +files. All the properties you specify will be included in the node. This
> > +node acts like a template to generate the nodes. The generator node itself
> > +does not appear in the output - it is replaced with what binman generates.
>
> Is this output written anywhere? The compiled DTB has the unprocessed template
> in it, and the final image created by binman requires some dissection to get to
> the FIT ITS.
Yes both the input to mkimage and the output are written out. See the
build directory for these files, which are named after the node names.
>
> > +
> > +You can create config nodes in a similar way:
> > +
> > + configurations {
> > + default = "@config-DEFAULT-SEQ";
> > + @config-SEQ {
> > + description = "NAME";
> > + firmware = "uboot";
> > + loadables = "atf";
> > + fdt = "fdt-SEQ";
> > + };
> > + };
> > +
> > +This tells binman to create nodes config-1 and config-2, i.e. a config for
> > +each of your two files.
> > +
> > +Available substitutions for '@' nodes are:
> > +
> > + SEQ Sequence number of the generated fdt (1, 2, ...)
> > + NAME Name of the dtb as provided (i.e. without adding '.dtb')
>
> There is no mention of DEFAULT-SEQ here.
That feature is added in a later patch. I will make sure it is documented here.
>
> > +
> > +Note that if no devicetree files are provided (with '-a of-list' as above)
> > +then no nodes will be generated.
> > +
> > +
> > +Properties (in the 'fit' node itself):
> > fit,external-offset: Indicates that the contents of the FIT are external
> > and provides the external offset. This is passsed to mkimage via
> > the -E and -p flags.
>
> [snip]
Regards,
Simon
More information about the U-Boot
mailing list