diff options
| author | Paul HENRYS <[email protected]> | 2026-04-17 10:30:48 +0200 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2026-05-05 10:37:09 -0600 |
| commit | 5006121b44a2d147e7e426c74537b3566407e853 (patch) | |
| tree | e88bf85045a0b1f88993e7a30bf962d9d312d3ef | |
| parent | 56905deb20d38cac8425626f62b4fca018bae458 (diff) | |
binman: Generate preload header and sign data only once
To optimize preload generation, generate the header and signatures only
after all data has been collected in ProcessContentsUpdate(). This
avoids signing the data multiple times.
Since header_size is known upfront (from __init__), create a placeholder
in `ObtainContents()` to avoid an extra packing pass when
ProcessContentsUpdate() detects a size change.
This reduces unnecessary repacking and signing operations.
Signed-off-by: Paul HENRYS <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
| -rw-r--r-- | tools/binman/etype/pre_load.py | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/tools/binman/etype/pre_load.py b/tools/binman/etype/pre_load.py index 00f1a896767..0d953cb258e 100644 --- a/tools/binman/etype/pre_load.py +++ b/tools/binman/etype/pre_load.py @@ -152,14 +152,11 @@ class Entry_pre_load(Entry_collection): return data + pad def ObtainContents(self): - """Obtain a placeholder for the header contents""" - # wait that the image is available - self.image = self.GetContents(False) - if self.image is None: - return False - self.SetContents(self._CreateHeader()) + """Create a placeholder for the header""" + self.SetContents(tools.get_bytes(0, self.header_size)) return True def ProcessContents(self): + self.image = self.GetContents(True) data = self._CreateHeader() return self.ProcessContentsUpdate(data) |
