Hi Samuel, On Sat, 5 Sep 2020 at 17:19, Samuel Holland <sam...@sholland.org> wrote: > > On 9/5/20 5:41 PM, Samuel Holland 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 <s...@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. > > > >> + > >> +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. > > I see now that you added DEFAULT-SEQ in a later patch, even though it's > present > in the example above(?). The comment here and on the sunxi dtsi still apply, > whichever patch the change should go in.
OK. Well the existing has something that is documented in a later patch, unfortunately. > > >> + > >> +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