From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 75BF7C433EF for ; Tue, 31 May 2022 08:44:29 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5618C84297; Tue, 31 May 2022 10:44:27 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=kernel.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="ETQ6OWLG"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A8DEE842B6; Tue, 31 May 2022 10:44:25 +0200 (CEST) Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) (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 AD7E884269 for ; Tue, 31 May 2022 10:44:21 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=kernel.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=rogerq@kernel.org Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 80AC16119C; Tue, 31 May 2022 08:44:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4FFA2C385A9; Tue, 31 May 2022 08:44:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1653986659; bh=HevzYGdncaqahELRV+tIMynq03MUEIs2ltV2NEvI1vc=; h=Date:Subject:To:References:From:In-Reply-To:From; b=ETQ6OWLGWz4bmye9a3n4GVPeonKw0ZAwG1MJCjvJmAj0om7E0WBgxpdot30TlLiGz 6DBlkF3nUxpEAcc0Wm82iTIH/XTC/tYg2kbTgD7xcz6e7Oos316w3uM75Kwo7gOMC3 CZqoooFbtRxbxdRO+pJI3UFo+HXIahwJLlN29Ky4J2pS2ChlLbNkXDFfkKr4w2Qxwq wLasw6cjJx0qENATqZPudqW4TmZ+3HGrueDMgAna+dyKOq6hwiy/9Gb5sdCsnrZruh CS/5m/5rAp2f35tPq4TrnEu+bSTLjjSN3XWJp8vHNcNrVQO9m1YjvO3k2w0P7LcUqv xewPUYRWERveQ== Message-ID: <31dc2449-0c46-b602-c03d-bc95d7559479@kernel.org> Date: Tue, 31 May 2022 11:44:16 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [PATCH RFC v2 03/11] ti: etype: sysfw: Add entry type for sysfw Content-Language: en-US To: Neha Malcom Francis , u-boot@lists.denx.de References: <20220506043759.8193-1-n-francis@ti.com> <20220506043759.8193-4-n-francis@ti.com> From: Roger Quadros In-Reply-To: <20220506043759.8193-4-n-francis@ti.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit 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.5 at phobos.denx.de X-Virus-Status: Clean On 06/05/2022 07:37, Neha Malcom Francis wrote: > For K3 devices that require a sysfw image, add entry for SYSFW. It can 'can' or 'should'? For binman, 'sysfw' and 'dm' (added in patch 4) are just binary blobs. correct? Why can't you just use blob entry type? > contain system firmware image that can be packaged into sysfw.itb by > binman. > > Signed-off-by: Tarun Sahu > [n-francis@ti.com: added tests for addition of etype] > Signed-off-by: Neha Malcom Francis cheers, -roger > --- > Makefile | 1 + > tools/binman/entries.rst | 11 +++++++++++ > tools/binman/etype/ti_sysfw.py | 28 ++++++++++++++++++++++++++++ > tools/binman/ftest.py | 7 +++++++ > tools/binman/test/232_ti_sysfw.dts | 13 +++++++++++++ > 5 files changed, 60 insertions(+) > create mode 100644 tools/binman/etype/ti_sysfw.py > create mode 100644 tools/binman/test/232_ti_sysfw.dts > > diff --git a/Makefile b/Makefile > index 4b347d3603..581fbba4c3 100644 > --- a/Makefile > +++ b/Makefile > @@ -1338,6 +1338,7 @@ cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \ > -a opensbi-path=${OPENSBI} \ > -a default-dt=$(default_dt) \ > -a scp-path=$(SCP) \ > + -a ti-sysfw-path=$(SYSFW) \ > -a spl-bss-pad=$(if $(CONFIG_SPL_SEPARATE_BSS),,1) \ > -a tpl-bss-pad=$(if $(CONFIG_TPL_SEPARATE_BSS),,1) \ > -a spl-dtb=$(CONFIG_SPL_OF_REAL) \ > diff --git a/tools/binman/entries.rst b/tools/binman/entries.rst > index ae4305c99e..6c0f03b34f 100644 > --- a/tools/binman/entries.rst > +++ b/tools/binman/entries.rst > @@ -1203,6 +1203,17 @@ This entry holds firmware for an external platform-specific coprocessor. > > > > +Entry: sysfw: Texas Instruments System Firmware (SYSFW) blob > +------------------------------------------------------------ > + > +Properties / Entry arguments: > + - ti-sysfw-path: Filename of file to read into the entry, typically sysfw.bin > + > +This entry contains system firmware necessary for booting of K3 architecture > +devices. > + > + > + > Entry: section: Entry that contains other entries > ------------------------------------------------- > > diff --git a/tools/binman/etype/ti_sysfw.py b/tools/binman/etype/ti_sysfw.py > new file mode 100644 > index 0000000000..5b5b307030 > --- /dev/null > +++ b/tools/binman/etype/ti_sysfw.py > @@ -0,0 +1,28 @@ > +# SPDX-License-Identifier: GPL-2.0+ > +# Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/ > +# > +# Entry type module for TI SYSFW binary blob > +# > + > +import os > +import struct > +import sys > +import zlib > + > +from binman.etype.blob_named_by_arg import Entry_blob_named_by_arg > +from dtoc import fdt_util > +from patman import tools > + > + > +class Entry_ti_sysfw(Entry_blob_named_by_arg): > + """Entry containing Texas Instruments System Firmware (SYSFW) blob > + > + Properties / Entry arguments: > + - ti-sysfw-path: Filename of file to read into the entry, typically sysfw.bin > + > + This entry contains system firmware necessary for booting of K3 architecture devices. > + """ > + > + def __init__(self, section, etype, node): > + super().__init__(section, etype, node, 'ti-sysfw') > + self.external = True > diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py > index 4ce181a066..ec408de334 100644 > --- a/tools/binman/ftest.py > +++ b/tools/binman/ftest.py > @@ -87,6 +87,7 @@ ATF_BL31_DATA = b'bl31' > TEE_OS_DATA = b'this is some tee OS data' > ATF_BL2U_DATA = b'bl2u' > OPENSBI_DATA = b'opensbi' > +TI_SYSFW_DATA = b'sysfw' > SCP_DATA = b'scp' > TEST_FDT1_DATA = b'fdt1' > TEST_FDT2_DATA = b'test-fdt2' > @@ -195,6 +196,7 @@ class TestFunctional(unittest.TestCase): > TestFunctional._MakeInputFile('tee-pager.bin', TEE_OS_DATA) > TestFunctional._MakeInputFile('bl2u.bin', ATF_BL2U_DATA) > TestFunctional._MakeInputFile('fw_dynamic.bin', OPENSBI_DATA) > + TestFunctional._MakeInputFile('sysfw.bin', TI_SYSFW_DATA) > TestFunctional._MakeInputFile('scp.bin', SCP_DATA) > > # Add a few .dtb files for testing > @@ -5522,6 +5524,11 @@ fdt fdtmap Extract the devicetree blob from the fdtmap > """Test an image with a pre-load header with an invalid key""" > with self.assertRaises(ValueError) as e: > data = self._DoReadFile('231_pre_load_invalid_key.dts') > + > + def testPackTiSysfw(self): > + """Test that an image with a SYSFW binary can be created""" > + data = self._DoReadFile('232_ti_sysfw.dts') > + self.assertEqual(TI_SYSFW_DATA, data[:len(TI_SYSFW_DATA)]) > > if __name__ == "__main__": > unittest.main() > diff --git a/tools/binman/test/232_ti_sysfw.dts b/tools/binman/test/232_ti_sysfw.dts > new file mode 100644 > index 0000000000..9e66cbe77b > --- /dev/null > +++ b/tools/binman/test/232_ti_sysfw.dts > @@ -0,0 +1,13 @@ > +// SPDX-License-Identifier: GPL-2.0+ > + > +/dts-v1/; > + > +/ { > + #address-cells = <1>; > + #size-cells = <1>; > + binman { > + ti-sysfw { > + filename = "sysfw.bin"; > + }; > + }; > +};