[PATCH 1/3] binman: fix passing loadables to mkimage on first run
Simon Glass
sjg at chromium.org
Wed Oct 9 03:50:57 CEST 2024
On Mon, 16 Sept 2024 at 02:25, <al.kochet at gmail.com> wrote:
>
> From: Alexander Kochetkov <al.kochet at gmail.com>
>
> FIT use mkimage from BuildSectionData() to build FIT entry contents.
> BuildSectionData() get called several times during building FIT image.
>
> Currently when fit inserts loadables, it use self._loadables property that
> contain loadables computed during previuos BuildSectionData() invocation.
> So for the first run it use empty list and pass no loadables to mkimage.
>
> That makes problem for adding signature to FIT image because mkimage
> fails to add signature and aborts building FIT if no loadables provided.
>
> The patch fixes described behaviour in a way that BuildSectionData() uses
> recently calculated loadables value, not previosly calculated.
>
> Signed-off-by: Alexander Kochetkov <al.kochet at gmail.com>
> ---
> tools/binman/etype/fit.py | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Simon Glass <sjg at chromium.org>
>
> diff --git a/tools/binman/etype/fit.py b/tools/binman/etype/fit.py
> index 2c14b15b03..e96222f4b6 100644
> --- a/tools/binman/etype/fit.py
> +++ b/tools/binman/etype/fit.py
> @@ -542,8 +542,8 @@ class Entry_fit(Entry_section):
> """
> val = fdt_util.GetStringList(node, 'fit,firmware')
> if val is None:
> - return None, self._loadables
> - valid_entries = list(self._loadables)
> + return None, loadables
> + valid_entries = list(loadables)
> for name, entry in self.GetEntries().items():
> missing = []
> entry.CheckMissing(missing)
> @@ -558,7 +558,7 @@ class Entry_fit(Entry_section):
> firmware = name
> elif name not in result:
> result.append(name)
> - for name in self._loadables:
> + for name in loadables:
> if name != firmware and name not in result:
> result.append(name)
> return firmware, result
> --
> 2.17.1
>
More information about the U-Boot
mailing list