aboutsummaryrefslogtreecommitdiff
path: root/tools/binman/entry.py
diff options
context:
space:
mode:
authorSimon Glass2023-01-11 16:10:16 -0700
committerSimon Glass2023-01-18 14:55:41 -0700
commit9766f69c98c2aa056d0518a9545f9e89484e9172 (patch)
tree6b2150de16450fbef274b84167c05416153ede6b /tools/binman/entry.py
parent97fb8081ec0c8009ff5e70c054e8ece08e4465ed (diff)
binman: Support overlapping entries
In some cases it is useful to have an entry overlap with another in a section, either to update the contents within a blob, or to add an entry to the fdtmap that covers only part of the blob. Add support for this. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools/binman/entry.py')
-rw-r--r--tools/binman/entry.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/binman/entry.py b/tools/binman/entry.py
index e6ff026ddb8..0c94665f7a8 100644
--- a/tools/binman/entry.py
+++ b/tools/binman/entry.py
@@ -98,6 +98,7 @@ class Entry(object):
An absent entry is removed during processing so that it does not
appear in the map
optional (bool): True if this entry contains an optional external blob
+ overlap (bool): True if this entry overlaps with others
"""
fake_dir = None
@@ -142,6 +143,7 @@ class Entry(object):
self.auto_write_symbols = auto_write_symbols
self.absent = False
self.optional = False
+ self.overlap = False
@staticmethod
def FindEntryClass(etype, expanded):
@@ -294,6 +296,9 @@ class Entry(object):
self.extend_size = fdt_util.GetBool(self._node, 'extend-size')
self.missing_msg = fdt_util.GetString(self._node, 'missing-msg')
self.optional = fdt_util.GetBool(self._node, 'optional')
+ self.overlap = fdt_util.GetBool(self._node, 'overlap')
+ if self.overlap:
+ self.required_props += ['offset', 'size']
# This is only supported by blobs and sections at present
self.compress = fdt_util.GetString(self._node, 'compress', 'none')