[RFC 2/2] binman: catch RunException for mkimage runtime failure
Simon Glass
sjg at chromium.org
Fri Nov 5 17:12:21 CET 2021
Hi Heiko,
On Fri, 5 Nov 2021 at 01:50, Heiko Thiery <heiko.thiery at gmail.com> wrote:
>
> Hi Simon,
>
> Am Fr., 5. Nov. 2021 um 03:02 Uhr schrieb Simon Glass <sjg at chromium.org>:
> >
> > Hi Heiko,
> >
> > On Thu, 4 Nov 2021 at 12:53, Heiko Thiery <heiko.thiery at gmail.com> wrote:
> > >
> > > In case mkimage exits with a return code other than zero do not stop.
> > > Print an error message and go on.
> > >
> > > Signed-off-by: Heiko Thiery <heiko.thiery at gmail.com>
> > > ---
> > > tools/binman/etype/mkimage.py | 8 +++++++-
> > > 1 file changed, 7 insertions(+), 1 deletion(-)
> >
> > Somehow we need to record that it failed, at least.
>
> By record do you mean that it should not only be output as an error
> message (as already done), but should be remembered like e.g. the
> missing external blobs?
Yes that's right. If you say
self.missing = True
in there it should do the right thing.
Also, I wonder if we should have a separate return value from mkimage
so we know for sure that the cause was missing input files? We can
worry about that later, I suppose.
Regards,
Simon
>
> >
> > >
> > > diff --git a/tools/binman/etype/mkimage.py b/tools/binman/etype/mkimage.py
> > > index e49977522e..24fbe79172 100644
> > > --- a/tools/binman/etype/mkimage.py
> > > +++ b/tools/binman/etype/mkimage.py
> > > @@ -10,6 +10,7 @@ from collections import OrderedDict
> > > from binman.entry import Entry
> > > from dtoc import fdt_util
> > > from patman import tools
> > > +from patman import tout
> > >
> > > class Entry_mkimage(Entry):
> > > """Binary produced by mkimage
> > > @@ -51,7 +52,12 @@ class Entry_mkimage(Entry):
> > > input_fname = tools.GetOutputFilename('mkimage.%s' % uniq)
> > > tools.WriteFile(input_fname, data)
> > > output_fname = tools.GetOutputFilename('mkimage-out.%s' % uniq)
> > > - tools.Run('mkimage', '-d', input_fname, *self._args, output_fname)
> > > +
> > > + try:
> > > + tools.Run('mkimage', '-d', input_fname, *self._args, output_fname)
> > > + except Exception as e:
> > > + tout.Error("mkimage failed: %s" % e)
> > > +
> > > self.SetContents(tools.ReadFile(output_fname))
> > > return True
> > >
> > > --
> > > 2.30.2
> > >
> >
> > Regards,
> > SImon
>
> --
> Heiko
More information about the U-Boot
mailing list