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

Simon Glass sjg at chromium.org
Fri May 30 13:18:39 CEST 2025


Hi Yannic,

On Tue, 27 May 2025 at 14:24, Yannic Moog <y.moog at phytec.de> wrote:
>
> 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

s/will stay/stays/

We should use present / imperative tense.

> 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.

Again I'm still not sure why we need to change the default, but once
we have a bisectable series I will probably understand it better.

Please also rebase on -next

>
> ---
> 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>
>

Regards,
Simon


More information about the U-Boot mailing list