[U-Boot] [PATCH 30/34] binman: Update IFWI entry to support updates
Simon Glass
sjg at chromium.org
Sat Aug 24 13:23:10 UTC 2019
Add support for the ProcessContents() method in this entry so that it is
possible to support entries which change after initial creation.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
tools/binman/etype/intel_ifwi.py | 46 +++++++++++++++++++-------------
1 file changed, 28 insertions(+), 18 deletions(-)
diff --git a/tools/binman/etype/intel_ifwi.py b/tools/binman/etype/intel_ifwi.py
index ef2b35706f..17792defe9 100644
--- a/tools/binman/etype/intel_ifwi.py
+++ b/tools/binman/etype/intel_ifwi.py
@@ -53,22 +53,8 @@ class Entry_intel_ifwi(Entry_blob):
self._ReadSubnodes()
Entry_blob.ReadNode(self)
- def ObtainContents(self):
- """Get the contects for the IFWI
-
- Unfortunately we cannot create anything from scratch here, as Intel has
- tools which create precursor binaries with lots of data and settings,
- and these are not incorporated into binman.
-
- The first step is to get a file in the IFWI format. This is either
- supplied directly or is extracted from a fitimage using the 'create'
- subcommand.
-
- After that we delete the OBBP sub-partition and add each of the files
- that we want in the IFWI file, one for each sub-entry of the IWFI node.
- """
- self._pathname = tools.GetInputFilename(self._filename)
-
+ def _BuildIfwi(self):
+ """Build the contents of the IFWI and write it to the 'data' property"""
# Create the IFWI file if needed
if self._convert_fit:
inname = self._pathname
@@ -85,8 +71,6 @@ class Entry_intel_ifwi(Entry_blob):
for entry in self._ifwi_entries.values():
# First get the input data and put it in a file
- if not entry.ObtainContents():
- return False
data = entry.GetData()
uniq = self.GetUniqueName()
input_fname = tools.GetOutputFilename('input.%s' % uniq)
@@ -99,6 +83,32 @@ class Entry_intel_ifwi(Entry_blob):
self.ReadBlobContents()
return True
+ def ObtainContents(self):
+ """Get the contects for the IFWI
+
+ Unfortunately we cannot create anything from scratch here, as Intel has
+ tools which create precursor binaries with lots of data and settings,
+ and these are not incorporated into binman.
+
+ The first step is to get a file in the IFWI format. This is either
+ supplied directly or is extracted from a fitimage using the 'create'
+ subcommand.
+
+ After that we delete the OBBP sub-partition and add each of the files
+ that we want in the IFWI file, one for each sub-entry of the IWFI node.
+ """
+ self._pathname = tools.GetInputFilename(self._filename)
+ for entry in self._ifwi_entries.values():
+ if not entry.ObtainContents():
+ return False
+ return self._BuildIfwi()
+
+ def ProcessContents(self):
+ orig_data = self.data
+ self._BuildIfwi()
+ same = orig_data == self.data
+ return same
+
def _ReadSubnodes(self):
"""Read the subnodes to find out what should go in this IFWI"""
for node in self._node.subnodes:
--
2.23.0.187.g17f5b7556c-goog
More information about the U-Boot
mailing list