summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul HENRYS <[email protected]>2026-04-17 10:30:48 +0200
committerTom Rini <[email protected]>2026-05-05 10:37:09 -0600
commit5006121b44a2d147e7e426c74537b3566407e853 (patch)
treee88bf85045a0b1f88993e7a30bf962d9d312d3ef
parent56905deb20d38cac8425626f62b4fca018bae458 (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.py9
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)