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 56A02C433F5 for ; Wed, 1 Jun 2022 09:26:25 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7190484250; Wed, 1 Jun 2022 11:26:23 +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="Sbl0Lf9e"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 001558425A; Wed, 1 Jun 2022 11:26:21 +0200 (CEST) Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) (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 B6C2C840FD for ; Wed, 1 Jun 2022 11:26:17 +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 ams.source.kernel.org (Postfix) with ESMTPS id 61814B8182A; Wed, 1 Jun 2022 09:26:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B7940C385A5; Wed, 1 Jun 2022 09:26:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1654075575; bh=9glhzDa283qEJXT8wLIsqLpjnKsqbuGYo7RhcdOAHfM=; h=Date:Subject:To:References:Cc:From:In-Reply-To:From; b=Sbl0Lf9eV2QuzrO/C68voF+GOE2DnAMkZWZ1z5vZuOifNFQhuvsiH/a8NtrYBsCoK twvNr63oEqtylF1E8xpkacaE4CcixtC0fYB202a3o+jsBn1K6vIvAhgDXIt3XOnSnN nvDNMZYJ45VafHB9e0CFH3qSmY9nmf73h0mB0XEbKRGl9FIfAJcPy9PSM6sB5LdmL7 YySpegBSkoAENN7IHyDi/cxEspiP7oZU6PSXZ8acP4CSjQWGywFSNcIQ6zjFbrtkFD WJxlUpxStBwkLnCx77VPFlIu7w/ObbAy3c20QsJRBIQC6BlfAi98E93M3YsXHvO/7y 0DtN0uFx/KaDQ== Message-ID: Date: Wed, 1 Jun 2022 12:26:12 +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> <31dc2449-0c46-b602-c03d-bc95d7559479@kernel.org> <84b4607b-9b50-a8bf-fb9e-ea3735294ccb@ti.com> Cc: "Andrew F. Davis" , Alper Nebi Yasak From: Roger Quadros In-Reply-To: <84b4607b-9b50-a8bf-fb9e-ea3735294ccb@ti.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 01/06/2022 08:58, Neha Malcom Francis wrote: > Hi Roger, > > On 31/05/22 14:14, Roger Quadros wrote: >> >> >> 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? >> > This was suggested so that there is space for changes that will be required when scaling to High Security devices as well. How will these change for High Security devices? cheers, -roger > >>> 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"; >>> +        }; >>> +    }; >>> +}; >