[RFC Patch v2] binman: add support for creating dummy files for external blobs

Heiko Thiery heiko.thiery at gmail.com
Wed Jan 5 15:09:22 CET 2022


Hi Simon,

Am Mi., 5. Jan. 2022 um 15:05 Uhr schrieb Simon Glass <sjg at chromium.org>:
>
> Hi Heiko,
>
> On Tue, 4 Jan 2022 at 07:22, Heiko Thiery <heiko.thiery at gmail.com> wrote:
> >
> > Hi Simon,
> >
> >
> > Am So., 2. Jan. 2022 um 18:15 Uhr schrieb Simon Glass <sjg at chromium.org>:
> > >
> > > Hi Heiko,
> > >
> > > On Thu, 2 Dec 2021 at 19:53, Simon Glass <sjg at chromium.org> wrote:
> > > >
> > > > Hi Heiko,
> > > >
> > > > On Mon, 29 Nov 2021 at 02:48, Heiko Thiery <heiko.thiery at gmail.com> wrote:
> > > > >
> > > > > While converting to binman for an imx8mq board, it has been found that
> > > > > building in the u-boot CI fails. This is because an imx8mq requires an
> > > > > external binary (signed_hdmi_imx8m.bin). If this file cannot be found
> > > > > mkimage fails.
> > > > > To be able to build this board in the u-boot CI a binman option
> > > > > (--fake-ext-blobs) is introduced that can be switched on via the u-boot
> > > > > makefile option BINMAN_FAKE_EXT_BLOBS. With that the needed dummy files are
> > > > > created.
> > > > >
> > > > > Signed-off-by: Heiko Thiery <heiko.thiery at gmail.com>
> > > > > ---
> > > > > v2:
> > > > >  - pass allow_fake_blobs to ProcessImage()
> > > > >  - set AllowAllowFakeBlob() to images/entries
> > > > >  - create fake blob in Entry_blot.ObtainContents() when file is missing and
> > > > >    creation is allowed
> > > > >
> > > > >  still missing:
> > > > >   - unittest
> > > > >   - option to set BINMAN_FAKE_EXT_BLOBS in Makefile via environment
> > > > >         variable. With that we could simply set this env variable in the CI
> > > > >         (gitlab-ci.yml) with adding support to buildman.
> > > > >
> > > > >  Makefile                       |  1 +
> > > > >  tools/binman/cmdline.py        |  2 ++
> > > > >  tools/binman/control.py        |  9 +++++++--
> > > > >  tools/binman/entry.py          | 11 +++++++++++
> > > > >  tools/binman/etype/blob.py     |  7 +++++++
> > > > >  tools/binman/etype/blob_ext.py |  8 ++++++++
> > > > >  tools/binman/etype/mkimage.py  |  9 +++++++++
> > > > >  tools/binman/etype/section.py  |  9 +++++++++
> > > > >  8 files changed, 54 insertions(+), 2 deletions(-)
> > > >
> > > > This looks good to me! The only thing is that instead of the warning
> > > > you should just print a single line at the end saying which blobs were
> > > > faked. See missing_list in ProcessImage() for how that could work. You
> > > > can set self.fake_blob in your blob.ObtainContents() and then have a
> > > > similar thing to CheckMissing() to actually collect the list of
> > > > entries which were faked.
> > > >
> > > > Also, for the real version can you please add a test (so 'binman test
> > > > -T' stays at 100% test coverage) and some docs in binman.rst ? You can
> > > > use testMissingBlob() as a template.
> > >
> > > Any word on this? I'd like to get this feature in and take a look at
> > > missing vendor tools, too.
> >
> > I have a new version available with your comments included. But the
> > tests are still missing. In the past days I had no motivation to work
> > on that. I will try to do this in the next days.
>
> OK thanks. If you need help with the test-coverage part, let me know.

I sent a new version about an hour ago with unittest included.

-- 
Heiko


More information about the U-Boot mailing list