[PATCH v2 2/3] binman: Generate preload header and sign data only once
yan wang
yan.wang at softathome.com
Thu Apr 2 21:24:30 CEST 2026
From: Paul HENRYS <paul.henrys_ext at softathome.com>
To optimize preload generation, generate the header and signatures only
after all data has been collected. This avoids signing the data multiple
times.
Since header_size is known upfront (from __init__), set the preload
header size in `ObtainContents()` to avoid an extra packing pass when
ProcessContentsUpdate() detects the size changed from 0 to header_size.
This reduces unnecessary repacking and signing operations.
Signed-off-by: Paul HENRYS <paul.henrys_ext at softathome.com>
---
Changes for v2:
- Set contents_size knowing header_size in ObtainContents()
tools/binman/etype/pre_load.py | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tools/binman/etype/pre_load.py b/tools/binman/etype/pre_load.py
index 00f1a896767..34a7bc1b985 100644
--- a/tools/binman/etype/pre_load.py
+++ b/tools/binman/etype/pre_load.py
@@ -152,14 +152,14 @@ 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())
+ """Only set the known size of the preload header. The data will be
+ generated later on in ProcessContents() when the data from every entries
+ can be retrieved.
+ """
+ self.contents_size = self.header_size
return True
def ProcessContents(self):
+ self.image = self.GetContents(True)
data = self._CreateHeader()
return self.ProcessContentsUpdate(data)
--
2.43.0
More information about the U-Boot
mailing list