[PATCH RFC v2 0/8] Fix handling of optional blobs in binman

Yannic Moog y.moog at phytec.de
Tue May 27 15:24:08 CEST 2025


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-a4534bc67cbb@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.moog at phytec.de>



More information about the U-Boot mailing list