Skip to content

Commit

Permalink
binman: Update IFWI entry to support updates
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
sjg20 committed Oct 15, 2019
1 parent afc68a8 commit 51f2072
Showing 1 changed file with 28 additions and 18 deletions.
46 changes: 28 additions & 18 deletions tools/binman/etype/intel_ifwi.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,22 +53,8 @@ def ReadNode(self):
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
Expand All @@ -85,8 +71,6 @@ def ObtainContents(self):

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)
Expand All @@ -99,6 +83,32 @@ def ObtainContents(self):
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:
Expand Down

0 comments on commit 51f2072

Please sign in to comment.