So far Binman's FIT support is designed for booting the OS. But FIT is also used to hold firmware images.
One missing feature is the ability to produce the smaller FDTs used by SPL builds. This series adds this, running fdtgrep on each devicetree to create the correct one for each model, for a particular boot phase. This allows, for example, a particular SPL image + devicetree combination to be selected during boot. Simon Glass (20): fixdep: Support VPL binman: Correct an error in the FIT-template example binman: Tidy up bintool docs binman: Tidy up comment for Bintoolfdt_add_pubkey.run() binman: Move problem-checking code into a function binman: elf: Add more debugging to LookupAndWriteSymbols() binman: Write the compressed output to a file binman: Correct comment in blob_dtb GetFdtEtype() binman: Mention expanded entries in u-boot-vpl binman: Fix a comment typo in _DoReadFileDtb() binman: Correct indentation in testSplPubkeyDtb binman: Add a bintool for fdtgrep binman: Remove dependency on pylibfdt for entry-docs binman: Allow entry types to override FDT contents binman: Add support for alternative FDTs binman: fit: Allow providing FDT filenames in a directory binman: fit: Write the compatible string to configuration binman: fit: Allow running fdtgrep on devicetree blobs Makefile: Provide VPL devicetree and padding to binman Makefile: Pass OF_SPL_REMOVE_PROPS to binman Makefile | 3 + doc/develop/spl.rst | 2 + scripts/basic/fixdep.c | 2 + tools/binman/binman.rst | 4 +- tools/binman/bintools.rst | 69 +++-- tools/binman/btool/fdt_add_pubkey.py | 4 + tools/binman/btool/fdtgrep.py | 137 ++++++++++ tools/binman/control.py | 77 +++--- tools/binman/elf.py | 2 +- tools/binman/entries.rst | 94 ++++++- tools/binman/entry.py | 17 ++ tools/binman/etype/alternates_fdt.py | 132 ++++++++++ tools/binman/etype/blob_dtb.py | 8 +- tools/binman/etype/fit.py | 93 ++++++- tools/binman/etype/u_boot_spl_nodtb.py | 2 - tools/binman/etype/u_boot_tpl_nodtb.py | 2 - tools/binman/etype/u_boot_vpl.py | 3 + tools/binman/etype/u_boot_vpl_nodtb.py | 4 +- tools/binman/ftest.py | 255 +++++++++++++++++-- tools/binman/image.py | 24 ++ tools/binman/main.py | 2 + tools/binman/test/328_alternates_fdt.dts | 28 ++ tools/binman/test/329_alternates_fdtgrep.dts | 29 +++ tools/binman/test/330_alternates_vpl.dts | 29 +++ tools/binman/test/331_alternates_spl.dts | 29 +++ tools/binman/test/332_alternates_inval.dts | 29 +++ tools/binman/test/333_fit_fdt_dir.dts | 58 +++++ tools/binman/test/334_fit_fdt_compat.dts | 60 +++++ tools/binman/test/335_fit_fdt_phase.dts | 61 +++++ tools/binman/test/alt_dts/model1.dts | 24 ++ tools/binman/test/alt_dts/model2.dts | 24 ++ 31 files changed, 1208 insertions(+), 99 deletions(-) create mode 100644 tools/binman/btool/fdtgrep.py create mode 100644 tools/binman/etype/alternates_fdt.py create mode 100644 tools/binman/test/328_alternates_fdt.dts create mode 100644 tools/binman/test/329_alternates_fdtgrep.dts create mode 100644 tools/binman/test/330_alternates_vpl.dts create mode 100644 tools/binman/test/331_alternates_spl.dts create mode 100644 tools/binman/test/332_alternates_inval.dts create mode 100644 tools/binman/test/333_fit_fdt_dir.dts create mode 100644 tools/binman/test/334_fit_fdt_compat.dts create mode 100644 tools/binman/test/335_fit_fdt_phase.dts create mode 100644 tools/binman/test/alt_dts/model1.dts create mode 100644 tools/binman/test/alt_dts/model2.dts -- 2.34.1