From patchwork Fri Aug 19 14:25:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Herbrechtsmeier X-Patchwork-Id: 1668170 X-Patchwork-Delegate: sjg@chromium.org 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=85.214.62.61; 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=FndkBYS8; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (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 4M8PHr6zYxz1yg7 for ; Sat, 20 Aug 2022 00:28:24 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 218FB84BE3; Fri, 19 Aug 2022 16:26:41 +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="FndkBYS8"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id DB4B984B89; Fri, 19 Aug 2022 16:26:15 +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=-0.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FORGED_SPF_HELO,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, T_SCC_BODY_TEXT_LINE,T_SPF_TEMPERROR autolearn=no autolearn_force=no version=3.4.2 Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150088.outbound.protection.outlook.com [40.107.15.88]) (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 C843E84B8F for ; Fri, 19 Aug 2022 16:26:03 +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=Honcw4FBH91cWn3psI/tPBZ8Hv6fTVnDZ+BrK4u1mZ+JdF4R2hRTlPwrJWwqNnrtkz/VjvprFmtDGjgPR44SELUJcfoLJCPr4NQV2MhdN5vlu1thnjRGJS4gFgf2CYWXjUqBzjoZtBtKWaSCk8x4nenxs2apUnj9k0KrP/u0Px0gczzD344qAgIXmjTbLk9unn/P8rGqMzHqIXBeoSVeN4nU6CvZuZMB7S/+FiRnlalAV6bJDUELzXpN5tOZu5tooBQzYTMCahi5sNIiaA0ElDaERewhB/R9GQwLFKAbqUyZQ8SkCb9AGWQwVSeEfM8xlaPC/kZkk3AfYD7J8D8piw== 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=PPAuZEco+4tlLffGrkbeOzkVqzuO0OjAIA+loXw0u+0=; b=bGOXNqiaa0ooa4OjAPwTpI4ds949oXed1S1WEKsY/Un1Nd3P3RZjEPaQ1WgcnMHmpO8x4/Gyg9leAQUXDqMUDifb/ao6oagRxbKIDiv+icV/+faCpEuE4IaJY+uefydl2w7gPxfr9ystFt/fvwcaUxxuPQnZw+Rfh6hZRsgPpSufhxA2xgeHIDnlNe0fc/UUtUZ+UrxO0SeD6VhFiGuc6EXw6y2MOeecdWaorffyXd3UBtwpWURiZ6PX95EbseJuBn0WQ1ugEMSaEo0AlU7nYiNmSSGevjo5GBFfeo283Mo+pkNnPxGwRpxWne/gN6xmufNVnk7CAOf6wau1h6z5Ww== 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=PPAuZEco+4tlLffGrkbeOzkVqzuO0OjAIA+loXw0u+0=; b=FndkBYS8M/3ZEBGWRxvtlhYERNvd5BY7iBO+PAGwNUz6XtcwdDXhK5Tb9hD3yJ6MmbsPTQ5U+GfKV95LDGjntQwX8aFDkOo03dRzRqBkRDKfMLiF+PPr11rzQ5bJyWzsC2MsFQ/GTwLxndmZULqo8GH0FKqO/G0c9Fo16sa5FOg= 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 PR3PR08MB5739.eurprd08.prod.outlook.com (2603:10a6:102:8e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5546.18; Fri, 19 Aug 2022 14:26:02 +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:26:02 +0000 From: Stefan Herbrechtsmeier To: u-boot@lists.denx.de Cc: Stefan Herbrechtsmeier , Alper Nebi Yasak , Simon Glass Subject: [PATCH v6 12/21] binman: Select compression bintools in cbfs_util class Date: Fri, 19 Aug 2022 16:25:29 +0200 Message-Id: <20220819142538.24847-13-stefan.herbrechtsmeier-oss@weidmueller.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220819142538.24847-1-stefan.herbrechtsmeier-oss@weidmueller.com> References: <20220819142538.24847-1-stefan.herbrechtsmeier-oss@weidmueller.com> X-ClientProxiedBy: AS4PR10CA0015.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5dc::11) 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: 21f6b2cd-976c-45af-d3fc-08da81eebe7c X-MS-TrafficTypeDiagnostic: PR3PR08MB5739:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ed/nhTU6xVcHrbcMUL5gk2d8sLYvwBHr/3Ch3okFpHoEgCfZ5jhcwaQv3sZ84sEEBJPAkrVvmRTO/MqIFPeCNfrsu2x/VFBsonoCGt7s8Uzszg6CnqqYUEb5ZUZXZZVcRLDhn2vcH1CNY7dgynkKsCmEQVv2FGaxPqtGZ6kSZJU+q+KUrT/RclovC1DIi6legcwcZCYHqUtuGRbfonJesoIULMawmzodXoDP1ezHnNkN7sXmfRwtQwmdvWtlN21Qz02Z+Ke7/Io5TZt+G5tq5UGSlWpbYLDRAzF63WXAAozx8UjnGqC5TAOltQjzw/0b9pXpNSQGWVxZtpFzWLdJnIpB0ulh0byzeuldxLiblXPx1CxxZO1EtGzwh1Q9sc/6QUkSi/Mn+0eWOKxjSbgxhRgYOdeLCqOS2tbh6Xb3vFscPgn/jkghY7beJfiGEPrffEHN4XlFFKvgKeHvLfTJzgcKjlpkxLGGIJLCPFoLlHKeNmtZbASmEoF/zA4ACXCPCpy7hoivfVuxAAiH7oba47veb2Igu1Y9qpxql5XqUPBJvj/Bl4avV9JGO7GH3V4cGFAO7r0wyqLnDWxRJWGz4t1eWwKOHKio5wE+FMVhBohebFZOEN6TKnOaKDRMtZ8/wsmZmvIdkYluTei4Oi1roV3pZ6JE/QV4TQ3NWV0tGvph8ZuBJi/lg+6z77zItKqhGR4XW9IpD8JA5FC8WkotTMRU1XqHL7YMroejg9olaxHxCny8OpULcDgum5Y/kgtd 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)(396003)(366004)(376002)(136003)(346002)(39860400002)(4326008)(8676002)(66476007)(66946007)(66556008)(54906003)(316002)(6916009)(36756003)(5660300002)(8936002)(2906002)(478600001)(6486002)(41300700001)(6506007)(6666004)(6512007)(26005)(52116002)(2616005)(86362001)(1076003)(38350700002)(38100700002)(83380400001)(186003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LHifDb9AxP6c4RFXs6fZbKvi5Qa9kBI0HsPFkLe40dzXrIq0hh2IMNIrB+fByUp82izAB+/BON6Bz/QFyLigWmvxdT59/dGML5FKcuItHQnwQx+Fzes5ckxj4yuyigbJRl0hEi7QAYo++v6cueTxpufSX1VZ4y+EQvYn6bfvwufvOUL1AssxAX/h0rcXOfl641ymlQ37xJ70qIj0og25ShkmYx7cyulctxMNDDFtn8Nco6CZDeXY1gfub/BGSJiwBhs8yivJd53gsBt1RtLNF24uvtzmuB047wGa+/0txids6GQVXfdzyHJyAo0jmjGG6QE3yTOeM7yE/hpjMIWmccgDkpn3d8i3AdXICzWrKU6qwNWNudeGMwVohrlLAM1M2CfKqM9NGuWBg3o11PDg5hiFrQOLDlKw93KdXSdiYqeNjbb9FjG9K56BzMgWff/29PrEe6u43ay/npJcNuTYTLqMw6nP5JDWIJRlhmijaCZp6YKmMzo/yxPVaynHjaTPJoLGVgB0w3rG4cr8nrXJegHeVsKEpo327wrJf0gb7Dw4zoOPiiFuG7AOp5fEamWxOlbEfiERq05EXnKy/shj8rvLWbZBImCwTy/KCj1+/215MJ1/iJ1p/UXqYeSwYS3kCXRue97jw3794OAEAH6ciuhSN81QirdjdgsNyVxsn0s5+SRAwgYK8zsaIk2NyM7gbzn7gnzXg/S55iei7VVUe1aHJU0TLypdZTYsM3Z6315/XOwa5CJBnLNK7HlUUgcO6490NNUGfDMVnvYtICc/U3FJp9Go6B0CmrGQkRYjirqe8wBmrAS+WPi07kuTGKwcG5iwqDOHsQfb0reGBveBM+eQjupImzml+/HBmoYtybIIRHeSKrqPhjFcF/xKlnWMhD6mEi7BwSdMsZMErkJP4cpH15YysYPKjBBKa8T9VNb1oC1qvdFE/AYSsUaWVhGbfrz0s5lnKTsCpBp6ufxILyeqF8ZFKmDOq4arWVsrw6YBt3G1Y7sR68PINZ8knJJGL2OQZfrpgAcs241et/4+gwlMXRAWaQvcfgXkGbkWYocMTmxnhn/H0sh5mQqvnUV+hdzhB8qESL+SmwQAbNe8LZXlKDGEHS/8ZtUOMpQ8zDu86C7/q19EMUKcQvTxGacqntjnrUJEHAs5Q6OAgku6A0vmHPNUhb2ZQcirvlfsC/zreLFyOmO7vH8LqZI+VdRmgg4F16j0VVvgm9P6XJe9iFGUaB84/N8WiXHL/XwzvgO+W9uxTeXeqBdc66HP3DJTiqEkfZMJD/IhjoL+nPyBT6zp+tNa5nLmsQsfWY1rFB9EGNpSTq3eqkWazqheSm5euMpBjrX6/HBWBYNnYEBad3QwkZlC6UxL04Ceqwy4iEfXvymK2/gk2U8itYy+YEM+TACyu6EtFmoNC9K3wnqeGJo7eQ1Ad49AvdPdjVSQ4wdqddaKZP8/8H4NqiEYsMnPW62JqXwPDlJlgBc5XURVRLD1uVdWYZqUAvsMzQTElJV6wU2fXvDxTX+Pji48Io2fC55Li5P63QaoYYlQ5pKkO5kc31M+M7rwn8JIK+TnuKRBz6mNOWRZJVxe24E8o8e3YX2fXMCD8q+YMzas50ENgg== X-OriginatorOrg: weidmueller.com X-MS-Exchange-CrossTenant-Network-Message-Id: 21f6b2cd-976c-45af-d3fc-08da81eebe7c 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:26:02.5334 (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: sDSVXMRWpRO+h6TCo4jH6vjNIlHPWWXi5IjWIvvFncCG0f+i/ZwFsG6V7tmydyXhsr6D5A9Ww9UdVr8VMp+PKw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5739 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 Reviewed-by: Simon Glass Reviewed-by: Simon Glass --- (no changes since v5) 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):