summaryrefslogtreecommitdiff
path: root/tools/binman/entry.py
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2020-10-27 02:40:06 +0300
committerSimon Glass <sjg@chromium.org>2020-10-29 23:42:59 +0300
commit87c962943aec7aef8849c60f018a5e7756e5b7ba (patch)
treede355960330dbb712f69c0ad675c4bc0724699e6 /tools/binman/entry.py
parente6bed4f1812c1666eeab794694c4b3765f41c143 (diff)
downloadu-boot-87c962943aec7aef8849c60f018a5e7756e5b7ba.tar.xz
binman: Move CompressData() into Entry base class
At present this is only used by blobs. To allow it to be used by other entry types (such as sections), move it into the base class. Also read the compression type in the base class. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools/binman/entry.py')
-rw-r--r--tools/binman/entry.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tools/binman/entry.py b/tools/binman/entry.py
index f7adc3b1ab..173c9131cb 100644
--- a/tools/binman/entry.py
+++ b/tools/binman/entry.py
@@ -180,6 +180,9 @@ class Entry(object):
self.expand_size = fdt_util.GetBool(self._node, 'expand-size')
self.missing_msg = fdt_util.GetString(self._node, 'missing-msg')
+ # This is only supported by blobs and sections at present
+ self.compress = fdt_util.GetString(self._node, 'compress', 'none')
+
def GetDefaultFilename(self):
return None
@@ -836,3 +839,17 @@ features to produce new behaviours.
list of possible tags, most desirable first
"""
return list(filter(None, [self.missing_msg, self.name, self.etype]))
+
+ def CompressData(self, indata):
+ """Compress data according to the entry's compression method
+
+ Args:
+ indata: Data to compress
+
+ Returns:
+ Compressed data (first word is the compressed size)
+ """
+ if self.compress != 'none':
+ self.uncomp_size = len(indata)
+ data = tools.Compress(indata, self.compress)
+ return data