From patchwork Fri Aug 19 14:00:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Herbrechtsmeier X-Patchwork-Id: 1668130 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=weidmueller.onmicrosoft.com header.i=@weidmueller.onmicrosoft.com header.a=rsa-sha256 header.s=selector1-weidmueller-onmicrosoft-com header.b=aPf93kUc; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4M8Nky4599z1ygd for ; Sat, 20 Aug 2022 00:03:22 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 27DBB84B9F; Fri, 19 Aug 2022 16:01:43 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=weidmueller.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=weidmueller.onmicrosoft.com header.i=@weidmueller.onmicrosoft.com header.b="aPf93kUc"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 607E284B67; Fri, 19 Aug 2022 16:01:14 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2068.outbound.protection.outlook.com [40.107.22.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 9189F84B5C for ; Fri, 19 Aug 2022 16:01:00 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=weidmueller.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=stefan.herbrechtsmeier-oss@weidmueller.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I7sp0k7Opi2IystmgSGxKdBC4yQWYCxBCFzEqbFllRtjOBhk8J8g/vh30IWFbhSgNXPFaDQN5m0r3Zt9HQ6djmjNG9RzYmWCGF8D6uQ8wuxOdqsT50QzPg/pyMB/uFRFCdXx3GZXDXpNOkyj4b0GW9isjbzYfNP2FiRGNtBc+2qDB5zUJV5lmG8Iixk4bsfZ2WMBSLLRWzETzec2wQtKf64Jm4bwHcOjr2kXLjvzjhYE9TH6t3OHUYPFW8AKe8KZhNzn5FEFt733XE10dzARxxljOrHxMKDQZO5n1BtBQVmDoWG4aFXaD4eIbzzjodGnCe6iNu9fYqBZZoX5GDsrGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jXd+FOhQLU1L8Wmi99snDbnb8jOnqncx1XkwUmw/XM8=; b=AE+YU81/P+kFoSd0PT82MSuyn5bQpG+Bof4lIGUS9HHvpJP7QGHHBx3i4BVBS6qMmYUsclE9+CfgOchjqyHC13X1BZtJmO/xvA2B621jy3p3Tu8XuHgXE2d8WqwlXFP47Rbcr8amEwg89hsmqCHFv85ETf8hLEjzSTOeOqnB0aAbDWd9LLbN3J0lEcsllo/RnREtkXA1hlj70ATeuNz3mTFAaRYbx+LEeiBXRNk+6qcA8qOiA3w7ZycHITrXv13tB5vRq0PdVyzhULR/ZfPWDWUtiTnwdtrxbx1l+/OMhUFTwYGAokAbz0dtTx1q/87AX7sxo26+8XEk505wStCAAQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=weidmueller.com; dmarc=pass action=none header.from=weidmueller.com; dkim=pass header.d=weidmueller.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=weidmueller.onmicrosoft.com; s=selector1-weidmueller-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jXd+FOhQLU1L8Wmi99snDbnb8jOnqncx1XkwUmw/XM8=; b=aPf93kUcBNQQzuN6A3OkqIkPAjKP3cTkiEy6/d2+3tIWEAIpclEQ9H8wje7lq/w2pq+NPIp0AUtNRrlS77KQW9/mtrQCgk1LR5BOBWZ23KHnyK7+qj8XvtXCSfH4r2CO7AkyRUiPRQDLlINNHcvQAI6W7UeIz5BxdCnhL8DhHRI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=weidmueller.com; Received: from PAXPR08MB6969.eurprd08.prod.outlook.com (2603:10a6:102:1d8::23) by DU2PR08MB7373.eurprd08.prod.outlook.com (2603:10a6:10:2f1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5546.16; Fri, 19 Aug 2022 14:00:59 +0000 Received: from PAXPR08MB6969.eurprd08.prod.outlook.com ([fe80::f95b:2e64:9ee6:4d44]) by PAXPR08MB6969.eurprd08.prod.outlook.com ([fe80::f95b:2e64:9ee6:4d44%3]) with mapi id 15.20.5546.018; Fri, 19 Aug 2022 14:00:59 +0000 From: Stefan Herbrechtsmeier To: u-boot@lists.denx.de Cc: Stefan Herbrechtsmeier , Alper Nebi Yasak , Simon Glass Subject: [PATCH v5 12/21] binman: Select compression bintools in cbfs_util class Date: Fri, 19 Aug 2022 16:00:26 +0200 Message-Id: <20220819140035.32760-13-stefan.herbrechtsmeier-oss@weidmueller.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220819140035.32760-1-stefan.herbrechtsmeier-oss@weidmueller.com> References: <20220819140035.32760-1-stefan.herbrechtsmeier-oss@weidmueller.com> X-ClientProxiedBy: AS4P251CA0011.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:5d2::7) To PAXPR08MB6969.eurprd08.prod.outlook.com (2603:10a6:102:1d8::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 377243c1-0997-4610-2d2c-08da81eb3ec1 X-MS-TrafficTypeDiagnostic: DU2PR08MB7373:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: IgEGkDHqf6jbV2En4A164haMzc888orO8VYfk6ZkUOUWOkWm2XmY6yg4K7yNPflQlz3KmuU/d0SN8zOx72h/Ub+WEVgl65Y3zyS28+fOCeKscdPwO88IZXiY5bXo0ZcykPROYwGRoUMdLWujI8/puo1i+nUn6GJosjK1YX6TgFHc8UJbFdp88w66f0OToXyQq2SSgudw0wHaourI26dmi3mw/vno0yw2iNaCp+6bhrD0y04mWFnLGeuEiAVsCXezCpAH5uiSaTkvRKJ0OTm3qk6Fc5+dsnrWCNjt08hYr7RBQzSU87M6yR9QynLB12AuPodo6PYnXRIUYWJVxeJBnGfuPOTwe9VnlMYa04ni8s95SRkomiUbIQ/1lwYlk6psFpP5/Jt1M8grhaAhRYKNErFJDvbPD/zMkxJqBsG6nRBlcJyATUDFWe87L4iyOBfOz3xYsW9OCNZuZXVKQEhA8X0hpTkxDx/xeqJFqnzGUvKKjTn8BOaIckMZ5qeGYCc9OsHAL+QydOLEVPkXNlAyF+NZ/9YU3GSJLbFHhOanV8WsJMJehtTOccf14zcBThr6w/jpxhJFhPwRJ7MMqG6NN+yz8jxG2bcfB61CtxWC6ywDWufAH33VUGDjWvL06OgJgDZ/aJC709kz4qBIXqkmzHHIehu53F0PezqUQLygB8rr5nDWyKVe2Pfjb+rX+iU29TL8SUR4Dfyv5SheAYKjRXYtr+CN6/3oDc3NwlCkq/3M6hwzerSj6gcfYUTacBTyv7i7xOD0SzP0Psz2HYYJEA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR08MB6969.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(39860400002)(346002)(366004)(136003)(396003)(376002)(4326008)(41300700001)(52116002)(6506007)(6666004)(186003)(38100700002)(36756003)(54906003)(6916009)(5660300002)(38350700002)(8936002)(316002)(2906002)(26005)(1076003)(83380400001)(8676002)(6486002)(86362001)(478600001)(6512007)(66946007)(66556008)(66476007)(2616005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Z9CsX5eRT4h3kpPLzHzfJECfLdWO3gNC+7Ki8lpTJ+FPmEca7YsTTUwc53D3KpiDhVygfHpmKY/5LFba/9YqQCBA9TgAAanLT9uxVbyBA7U2kRfB63rOTR8mDgWCtS/9kD7yEfvr/MK44WblFstklXc+QY1U8SQNERJoWT6ot1li7XTx17qp46akDTJ4UxpLMkVaECw67gk3iGwsJ8cvzmQlQZhPh+xnbk8z1HTXvSj2dO/SAFuSCTkFdgsK/osOU1KAkVZ3wGNMQ6lbn2dej0QP5qAk2aJdbGZWxQe+4cV0K5TJ9IPgZQU20IW28ccCBwERTqS76Q4zRoFZnBurunxd16or5U33UxfiA78vZHq+OtsWB7Wcce7nKA6Np4D5vChR3pKMf4oH/fnwSjxP1QmTLkKCcM2oWEBpPiqdcf9bdmSkxQLyXf5yJqYkYBT+/JeWzjoatfW2yBUslrTrRmhLTWSYIp6r1vRGmJKWdrwiitTNPKUtAe2qZVD+HjpxC4ZVC4ryAKmsf/8xC+oR1mVj2r3jSZG2YHAuIORNLhb8F9REq+HP26/voQmDM+BsdKFPyf2KyDvWEzeHN1Sdl3t0utncdkmLhcFKznjibH19NYP9kCrdGAkEVu7niaA/Myjhvk7H1MhMJJwrYM7jKqQve+TdPDhgAjALt5xvY1uqZVDO3uQvbPjhDrNRP/sGzJQTfpbE5xG5ofJDy3F9a60OaGyFJBXuEhurfpNMMdYEHtdjEvUqml/7vdevWh37XClRFSSab4fjKtFu1RxJsPzVfSdH2bXCnr6bIlC+B2l3XD/vq18/ynYElgGFCQTDe00QyaNs0fIlLlftgW4RzYoy8HRMwzTD5lkUhDVjxsFUT6bcbZdc6w5jEswrOV+6f4kC0BoqXieFRBOITTDYHtR0t8mCGTDybFBaVJE8LJ72i+ch1d7rLkpvIRGAIAGHa3rbAAZ4hCJ3muN2xGbetHEpAsrr6mv8gvGKjqumXY1sGn5+P1vpC1K+Tblm1nnPL82sIBSfCT5p3K4F1D/hxq56YdMVsBb49tpesI+PZvn3qGYm2xDB6mvZBxeDcVbOdk+hRn4D3yIs345BXrYApCnw7vqHqLdlCrbOx5/rHBHoxXWbiYYvYutBjQx3HLfbpwhmmw6v875hZn8G5En673zTS8NQsrccoqJJsNCCNzaG+7a5khaxsFB0Ir+C5EzhEEEsvTIfxA7JA5oymRYiKVf/z/kLnsoRiPNx9WojCgYBdcBUnih97snLY0n/wxUTKpOGh4JDShlZzMOkiJBZQ94LVaPPfia0fd+5oPXzdYtApVIiBavJNlJNplkv7XMepPX40M9sFKDVB6xPc7i2+jYRh8Yv5ARsJLWaMMstRFjV8K+oE20eK8+qAD1aDlWspeZJ69dqztGFEZChWAxLCmFiKbXaPo3L/IhxKR3TU01dLRutzjp59QfPub7rV/fhi/DGDQvzmvv6zVEnLPV2iu4YyXrWBKht3aB3v/E4mP/13DwXDJr9qwSfiV6UqJtRH4QXt67hVEhEsBrDehTJpMNsmRdNsCMeLafyY7oMVL1LgNlVBGO6mRhXxKziGw8JvICtJDlLjxZEzlWC8S0edA== X-OriginatorOrg: weidmueller.com X-MS-Exchange-CrossTenant-Network-Message-Id: 377243c1-0997-4610-2d2c-08da81eb3ec1 X-MS-Exchange-CrossTenant-AuthSource: PAXPR08MB6969.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2022 14:00:59.7585 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e4289438-1c5f-4c95-a51a-ee553b8b18ec X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: StR9ywnncABK/BoxKxI226/cMjkCRhMgmOWGznFMgrvJPgjhmhu8rOriUdrkmB56T1XlPr/Y+WIZwSV3KXvmzw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB7373 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean From: Stefan Herbrechtsmeier 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 --- Changes in v5: - Add commit to select compression bintools in cbfs_util class tools/binman/cbfs_util.py | 20 +++++++++++--------- tools/binman/cbfs_util_test.py | 4 ++-- 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):