summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorStefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>2022-08-19 16:25:29 +0200
committerSimon Glass <sjg@chromium.org>2022-08-20 18:07:33 -0600
commitedafeb8da6b92957fdbb00d709a55ac62ec6d0d7 (patch)
treef4af4583cc969a29535c28cbb892d238d0f72c27 /tools
parentcbe2e75d00a1effcd2bc3bcbab0f58bf5c3d23c7 (diff)
binman: Select compression bintools in cbfs_util class
Select the lz4 and lzma_alone bintools in cbfs_util class to centralize the supported compression algorithm evaluation inside the class and over multiple classes. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools')
-rw-r--r--tools/binman/cbfs_util.py20
-rwxr-xr-xtools/binman/cbfs_util_test.py4
2 files changed, 13 insertions, 11 deletions
diff --git a/tools/binman/cbfs_util.py b/tools/binman/cbfs_util.py
index a1836f4ad3..7bd3d89798 100644
--- a/tools/binman/cbfs_util.py
+++ b/tools/binman/cbfs_util.py
@@ -20,7 +20,7 @@ import io
import struct
import sys
-from binman import comp_util
+from binman import bintool
from binman import elf
from patman import command
from patman import tools
@@ -236,14 +236,18 @@ class CbfsFile(object):
self.data_len = len(data)
self.erase_byte = None
self.size = None
+ if self.compress == COMPRESS_LZ4:
+ self.comp_bintool = bintool.Bintool.create('lz4')
+ elif self.compress == COMPRESS_LZMA:
+ self.comp_bintool = bintool.Bintool.create('lzma_alone')
+ else:
+ self.comp_bintool = None
def decompress(self):
"""Handle decompressing data if necessary"""
indata = self.data
- if self.compress == COMPRESS_LZ4:
- data = comp_util.decompress(indata, 'lz4')
- elif self.compress == COMPRESS_LZMA:
- data = comp_util.decompress(indata, 'lzma')
+ if self.comp_bintool:
+ data = self.comp_bintool.decompress(indata)
else:
data = indata
self.memlen = len(data)
@@ -361,10 +365,8 @@ class CbfsFile(object):
data = elf_data.data
elif self.ftype == TYPE_RAW:
orig_data = data
- if self.compress == COMPRESS_LZ4:
- data = comp_util.compress(orig_data, 'lz4')
- elif self.compress == COMPRESS_LZMA:
- data = comp_util.compress(orig_data, 'lzma')
+ if self.comp_bintool:
+ data = self.comp_bintool.compress(orig_data)
self.memlen = len(orig_data)
self.data_len = len(data)
attr = struct.pack(ATTR_COMPRESSION_FORMAT,
diff --git a/tools/binman/cbfs_util_test.py b/tools/binman/cbfs_util_test.py
index f86b295149..e0f792fd34 100755
--- a/tools/binman/cbfs_util_test.py
+++ b/tools/binman/cbfs_util_test.py
@@ -19,7 +19,6 @@ import unittest
from binman import bintool
from binman import cbfs_util
from binman.cbfs_util import CbfsWriter
-from binman import comp_util
from binman import elf
from patman import test_util
from patman import tools
@@ -50,7 +49,8 @@ class TestCbfs(unittest.TestCase):
cls.cbfstool = bintool.Bintool.create('cbfstool')
cls.have_cbfstool = cls.cbfstool.is_present()
- cls.have_lz4 = comp_util.HAVE_LZ4
+ lz4 = bintool.Bintool.create('lz4')
+ cls.have_lz4 = lz4.is_present()
@classmethod
def tearDownClass(cls):