summaryrefslogtreecommitdiff
path: root/tools/binman
diff options
context:
space:
mode:
Diffstat (limited to 'tools/binman')
-rw-r--r--tools/binman/README.entries2
-rw-r--r--tools/binman/entry.py9
-rw-r--r--tools/binman/etype/intel_descriptor.py10
-rw-r--r--tools/binman/etype/intel_me.py2
4 files changed, 20 insertions, 3 deletions
diff --git a/tools/binman/README.entries b/tools/binman/README.entries
index 357946d630..702fc9fda0 100644
--- a/tools/binman/README.entries
+++ b/tools/binman/README.entries
@@ -206,6 +206,8 @@ does not directly execute code in the ME binary.
A typical filename is 'me.bin'.
+The position of this entry is generally set by the intel-descriptor entry.
+
See README.x86 for information about x86 binary blobs.
diff --git a/tools/binman/entry.py b/tools/binman/entry.py
index e8d0adec1e..7ead997e0f 100644
--- a/tools/binman/entry.py
+++ b/tools/binman/entry.py
@@ -544,3 +544,12 @@ features to produce new behaviours.
# the data grows. This should not fail, but check it to be sure.
if not self.ObtainContents():
self.Raise('Cannot obtain contents when expanding entry')
+
+ def HasSibling(self, name):
+ """Check if there is a sibling of a given name
+
+ Returns:
+ True if there is an entry with this name in the the same section,
+ else False
+ """
+ return name in self.section.GetEntries()
diff --git a/tools/binman/etype/intel_descriptor.py b/tools/binman/etype/intel_descriptor.py
index 661063457e..65ba2391e6 100644
--- a/tools/binman/etype/intel_descriptor.py
+++ b/tools/binman/etype/intel_descriptor.py
@@ -60,6 +60,10 @@ class Entry_intel_descriptor(Entry_blob):
for i in range(MAX_REGIONS):
self._regions.append(Region(self.data, frba, i))
- # Set the offset for ME only, for now, since the others are not used
- return {'intel-me': [self._regions[REGION_ME].base,
- self._regions[REGION_ME].size]}
+ # Set the offset for ME (Management Engine) only, for now, since the
+ # others are not used
+ info = {}
+ if self.HasSibling('intel-me'):
+ info['intel-me'] = [self._regions[REGION_ME].base,
+ self._regions[REGION_ME].size]
+ return info
diff --git a/tools/binman/etype/intel_me.py b/tools/binman/etype/intel_me.py
index 247c5b3386..c932ec5222 100644
--- a/tools/binman/etype/intel_me.py
+++ b/tools/binman/etype/intel_me.py
@@ -22,6 +22,8 @@ class Entry_intel_me(Entry_blob):
A typical filename is 'me.bin'.
+ The position of this entry is generally set by the intel-descriptor entry.
+
See README.x86 for information about x86 binary blobs.
"""
def __init__(self, section, etype, node):