This series solves a contradiction regarding ext blobs packaged in binman. When they are marked as optional, by default they are faked, two messages are emitted. One says the image is not functional the other says the image is still functional. Both concern the same binman entry/blob.
Binman is set up to have fake external blobs in case they are missing. This is regardless on whether they are optional or not. The implementation does not allow different types of entries to override the faking decision; at least there wouldn't be much sense in doing so. Here is an example build output of a phycore-imx8mp: BINMAN .binman_stamp Image 'image' is missing optional external blobs but is still functional: tee-os /binman/section/fit/images/tee/tee-os (tee.bin): See the documentation for your board. You may need to build Open Portable Trusted Execution Environment (OP-TEE) and build with TEE=/path/to/tee.bin Image 'image' has faked optional external blobs and is still functional: tee.bin OFCHK .config The output will stay to inform/warn the user, but in this case the tee-os entry will not be present in the final image. The first patch makes binman test with --fake_ext_blobs by default to be consistent with the default make target when building U-Boot. This exposes an error as one test is failing where it should not (loadables). Then, fix some tests that must not fake ext blobs and thus failed due to the change. --- Changes in v2: - mark as RFC due to failing tests. In current state, series is more of a concept - Link to v1: https://lore.kernel.org/r/20250129-binman_faked_optional-v1-0-a4534bc67...@phytec.de --- Yannic Moog (8): tools: binman: ftest: pass allow_fake_blob to _DoReadFileDtb tools: binman: drop "faked" return value from check_fake_fname tools: binman: mark optional missing blobs as absent binman: replace _entries with GetEntries() binman: rework dropping absent entries from packaged image tools: binman: add faked optional entry case in CheckForProblems tools: binman: ftest: fix tests that require non-faked ext blobs binman: test: assert optional blobs don't cause non-functionality tools/binman/binman.rst | 7 ++++ tools/binman/control.py | 27 +++++++++++---- tools/binman/entry.py | 17 ++++++---- tools/binman/etype/atf_fip.py | 4 +-- tools/binman/etype/blob.py | 9 ++--- tools/binman/etype/blob_ext_list.py | 4 +-- tools/binman/etype/blob_phase.py | 4 +-- tools/binman/etype/cbfs.py | 15 +++++---- tools/binman/etype/efi_capsule.py | 2 +- tools/binman/etype/fit.py | 4 +-- tools/binman/etype/mkimage.py | 6 ++-- tools/binman/etype/nxp_imx8mcst.py | 2 +- tools/binman/etype/nxp_imx8mimage.py | 2 +- tools/binman/etype/section.py | 62 ++++++++++++++++++++--------------- tools/binman/etype/ti_board_config.py | 8 ++--- tools/binman/ftest.py | 43 +++++++++++++++++------- tools/binman/image.py | 4 ++- 17 files changed, 138 insertions(+), 82 deletions(-) --- base-commit: eeb5ff1a468b2303efa9deb2483b5edbebb568c6 change-id: 20250122-binman_faked_optional-5025f7046e25 Best regards, -- Yannic Moog <y.m...@phytec.de>