From patchwork Mon May 9 07:29:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roger Quadros X-Patchwork-Id: 1628364 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=drHbfXjT; dkim-atps=neutral Authentication-Results: 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=) 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 RSA-PSS (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KxXrJ5NrDz9sGY for ; Mon, 9 May 2022 17:30:08 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B9A5183F27; Mon, 9 May 2022 09:29:55 +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="drHbfXjT"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E8FBF83F40; Mon, 9 May 2022 09:29:53 +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=-2.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 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 E27D5839A8 for ; Mon, 9 May 2022 09:29:48 +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 18DB3612C6; Mon, 9 May 2022 07:29:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AF37BC385B0; Mon, 9 May 2022 07:29:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1652081386; bh=WXRi3ZpKDF9kMcSTGoy5ccGLpdMXkFJXmh2G/O8lt3w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=drHbfXjTsSD3vQHsKpSCGNseGLEMsRjL6Lbc7rT38Z652jC6PdDF9z/jXBvI5wv3f U+vyXNSJRs/HlOYWpPI07Vswvvq3sqmHzT/r78dzUIjjuaD/892+OWGcZrc1QQgkdR judy0Gm+aJk/8xl4LH5s5DupMtBTN63g8mZODAKc52/ce6Hu0SwO+saBizaySbvtgr O5blAUGHQm8QQ0K1NLheUvPepJfzW4HYvTkAs+A3JxeMeVcpxI458bKR4U6zaHLIhj tloxSdo1uatnp6nn4VCb+iqYLCqZ/fP2rd6ISf2ZRQzdCffDvN/gc3gPags1tTn4vl SMMIhzOjKoQ8w== From: Roger Quadros To: sjg@chromium.org, vigneshr@ti.com, nm@ti.com Cc: trini@konsulko.com, praneeth@ti.com, u-boot@lists.denx.de, Roger Quadros Subject: [u-boot PATCH 1/3] tools: binman: add ti-secure entry type Date: Mon, 9 May 2022 10:29:34 +0300 Message-Id: <20220509072936.12899-2-rogerq@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220509072936.12899-1-rogerq@kernel.org> References: <20220509072936.12899-1-rogerq@kernel.org> 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 This entry type is used to create a secured binary for use with K3 High Security (HS) devices. This allows us to no longer depend on k3_fit_atf.sh for A53 SPL and u-boot image generation for HS devices. We still depend on the availability of an external tool provided by the TI_SECURE_DEV_PKG environment variable to secure the binaries. Signed-off-by: Roger Quadros --- Makefile | 1 + tools/binman/entries.rst | 15 ++++++++ tools/binman/etype/ti_secure.py | 59 +++++++++++++++++++++++++++++ tools/binman/ftest.py | 7 ++++ tools/binman/test/225_ti_secure.dts | 14 +++++++ 5 files changed, 96 insertions(+) create mode 100644 tools/binman/etype/ti_secure.py create mode 100644 tools/binman/test/225_ti_secure.dts diff --git a/Makefile b/Makefile index ad83d60dc3..d9aac41d60 100644 --- a/Makefile +++ b/Makefile @@ -1328,6 +1328,7 @@ cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \ $(foreach f,$(BINMAN_INDIRS),-I $(f)) \ -a atf-bl31-path=${BL31} \ -a tee-os-path=${TEE} \ + -a ti-secure-dev-pkg-path=${TI_SECURE_DEV_PKG} \ -a opensbi-path=${OPENSBI} \ -a default-dt=$(default_dt) \ -a scp-path=$(SCP) \ diff --git a/tools/binman/entries.rst b/tools/binman/entries.rst index 484cde5c80..c9faad51b6 100644 --- a/tools/binman/entries.rst +++ b/tools/binman/entries.rst @@ -1788,3 +1788,18 @@ may be used instead. +Entry: ti-secure: Entry containing a Secured binary blob +-------------------------------------------------------- + +Properties / Entry arguments: + - filename: Filename of file to sign and read into entry + +Texas Instruments High-Security (HS) devices need secure binaries to be +provided. This entry uses an external tool to append a x509 certificate +to the file provided in the filename property and places it in the entry. + +The path for the external tool is fetched from TI_SECURE_DEV_PKG +environment variable. + + + diff --git a/tools/binman/etype/ti_secure.py b/tools/binman/etype/ti_secure.py new file mode 100644 index 0000000000..86772994bc --- /dev/null +++ b/tools/binman/etype/ti_secure.py @@ -0,0 +1,59 @@ +# SPDX-License-Identifier: GPL-2.0+ +# Copyright (c) 2022 Texas Instruments Incorporated - https://www.ti.com/ +# + +# Support for secure binaries for TI K3 platform + +from collections import OrderedDict +import os + +from binman.entry import Entry, EntryArg + +from dtoc import fdt_util +from patman import tools + +class Entry_ti_secure(Entry): + """An entry which contains a secure binary for High-Security (HS) device use. + + Properties / Entry arguments: + - filename: filename of binary file to be secured + + Output files: + - filename_HS - output file generated by secure uility (which is + used as the entry contents) + + """ + def __init__(self, section, etype, node): + super().__init__(section, etype, node) + self.filename = fdt_util.GetString(self._node, 'filename') + self.toolpresent = False + if not self.filename: + self.Raise("ti_secure must have a 'filename' property") + self.toolspath, = self.GetEntryArgsOrProps( + [EntryArg('ti-secure-dev-pkg-path', str)]) + if not self.toolspath: + print("WARNING: TI_SECURE_DEV_PKG environment " \ + "variable must be defined for TI secure devices. " + + self.filename + " was NOT secured!") + return + + self.tool = self.toolspath + "/scripts/secure-binary-image.sh" + self.toolpresent = os.path.exists(self.tool) + if not self.toolpresent: + print(self.tool + " not found. " + + self.filename + " was NOT secured!") + + def ObtainContents(self): + input_fname = self.filename + output_fname = input_fname + "_HS" + args = [ + input_fname, output_fname, + ] + if self.toolpresent: + stdout = tools.Run(self.tool, *args) + else: + stdout = tools.Run('cp', *args) + print(output_fname + ' not secured!') + + self.SetContents(tools.ReadFile(output_fname)) + return True diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py index 8f00db6945..996e4d9aa6 100644 --- a/tools/binman/ftest.py +++ b/tools/binman/ftest.py @@ -91,6 +91,7 @@ SCP_DATA = b'scp' TEST_FDT1_DATA = b'fdt1' TEST_FDT2_DATA = b'test-fdt2' ENV_DATA = b'var1=1\nvar2="2"' +TI_UNSECURE_DATA = b'this is some unsecure data' # Subdirectory of the input dir to use to put test FDTs TEST_FDT_SUBDIR = 'fdts' @@ -201,6 +202,7 @@ class TestFunctional(unittest.TestCase): TEST_FDT2_DATA) TestFunctional._MakeInputFile('env.txt', ENV_DATA) + TestFunctional._MakeInputFile('ti_unsecure.bin', TI_UNSECURE_DATA) cls.have_lz4 = comp_util.HAVE_LZ4 @@ -5321,6 +5323,11 @@ fdt fdtmap Extract the devicetree blob from the fdtmap self.assertIn("Node '/binman/fit': Unknown operation 'unknown'", str(exc.exception)) + def testPackTisecure(self): + """Test that an image with a TI secured binary can be created""" + data = self._DoReadFile('225_ti_secure.dts') + securedata = tools.ReadFile('ti_unsecure.bin_HS') + self.assertGreater(len(securedata), len(data)) if __name__ == "__main__": unittest.main() diff --git a/tools/binman/test/225_ti_secure.dts b/tools/binman/test/225_ti_secure.dts new file mode 100644 index 0000000000..1a9f4374f9 --- /dev/null +++ b/tools/binman/test/225_ti_secure.dts @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: GPL-2.0+ + +/dts-v1/; + +/ { + #address-cells = <1>; + #size-cells = <1>; + + binman { + ti-secure { + filename = "ti_unsecure.bin"; + }; + }; +}; From patchwork Mon May 9 07:29:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roger Quadros X-Patchwork-Id: 1628365 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=uJXfFfkq; dkim-atps=neutral Authentication-Results: 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=) 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 RSA-PSS (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KxXrV4GjKz9sGY for ; Mon, 9 May 2022 17:30:18 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D24A284181; Mon, 9 May 2022 09:29:58 +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="uJXfFfkq"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 1BFBD83DB0; Mon, 9 May 2022 09:29:55 +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=-2.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 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 9D20483DA6 for ; Mon, 9 May 2022 09:29:50 +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 66015612B4; Mon, 9 May 2022 07:29:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 001ECC385AB; Mon, 9 May 2022 07:29:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1652081388; bh=CeffT5XM6lcpAxrFrvhRiPOxuUY+FQnwWjXxsiUB2M8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uJXfFfkqiMNPy1hdmq9RzdfyapX6yIvsZqB0w7nlT9yognsCKMqpB7lMi+zOSa3eQ eoRV+FuEzQkVz5bNNVWq2BGEKWHaDXOCC1fseQOX3drvdhtGIS9TVOSy3n5TsTsm/R 38JXnV+GS6x/0I1e/lqkwclYmExpDr6zV5pVMm2MKX+uzSe96UL5XUOXZc3eFZNHLj l+3+rpZZ32r5Hg8RxNTp0BjEOEmx5f+7sS/j8K2mR0GlIFT0DRQOsLBDsj6QSQexqa nUHlHYQp2G8xp5r2npF7kSlSXuNmEluyPfH6CZM9B25JqGcLlSORQvVqKZvWNmoCaU obHZB8XJ/9WuQ== From: Roger Quadros To: sjg@chromium.org, vigneshr@ti.com, nm@ti.com Cc: trini@konsulko.com, praneeth@ti.com, u-boot@lists.denx.de, Roger Quadros Subject: [u-boot PATCH 2/3] tools/fdtgrep: Include __symbols__ table Date: Mon, 9 May 2022 10:29:35 +0300 Message-Id: <20220509072936.12899-3-rogerq@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220509072936.12899-1-rogerq@kernel.org> References: <20220509072936.12899-1-rogerq@kernel.org> 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 This is required for overlays to work at SPL. Signed-off-by: Roger Quadros --- tools/fdtgrep.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/fdtgrep.c b/tools/fdtgrep.c index 641d6a2e3e..d904f679ae 100644 --- a/tools/fdtgrep.c +++ b/tools/fdtgrep.c @@ -1230,6 +1230,10 @@ int main(int argc, char *argv[]) disp.fout = stdout; } + /* include symbol table */ + if (value_add(&disp, &disp.value_head, FDT_IS_NODE, 1, "/__symbols__")) + usage("Cannot add __symbols__ value"); + /* Run the grep and output the results */ ret = do_fdtgrep(&disp, filename); if (disp.output_fname) From patchwork Mon May 9 07:29:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roger Quadros X-Patchwork-Id: 1628366 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=nocyVJtQ; dkim-atps=neutral Authentication-Results: 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=) 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 RSA-PSS (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KxXrj2wftz9sGY for ; Mon, 9 May 2022 17:30:29 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6BCD784128; Mon, 9 May 2022 09:30:07 +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="nocyVJtQ"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id EE45B83F75; Mon, 9 May 2022 09:29:57 +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=-2.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 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 E1C7983F57 for ; Mon, 9 May 2022 09:29:52 +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 A505B612C6; Mon, 9 May 2022 07:29:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4AA65C385B0; Mon, 9 May 2022 07:29:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1652081391; bh=X4phzifdr+t+3yM6Vg+6GJau4xSq88TjLhxY6R5g9Ic=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nocyVJtQlwQLO1ttXo44b5oqiO6rcLF3FjIbpAOoD3wdYioBjKM2eSQwrP6rAedKg n2tuGosQmJSSVWBxmHHtd0KYtC4Nih1JaKFt1h4C4vzrWZlyK4S5TkNZ1jzUBisTCC yYVGrJ9O1+JfZOqKbHD6KSwRZzj0j91JJalmi2fdbyuGfUx6/KVrRGJ9cE0rJgGYaZ QhxZXJ0l2liLLFSDdNYzZ2vHIgex3BrxUrOuRt8xOZAcYT/7lVvc6UvkFaeJmyOg8/ hob+XkhhF9iClFwtczSVNRsoD+8iECvtqxSsKxB9sVoXx3LD0I7LpuFBl//fz6nbrH IolkOl5np7OAw== From: Roger Quadros To: sjg@chromium.org, vigneshr@ti.com, nm@ti.com Cc: trini@konsulko.com, praneeth@ti.com, u-boot@lists.denx.de, Roger Quadros Subject: [u-boot PATCH 3/3] k3-am642-evm-u-boot: Use binman to generate u-boot.img and tispl.bin Date: Mon, 9 May 2022 10:29:36 +0300 Message-Id: <20220509072936.12899-4-rogerq@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220509072936.12899-1-rogerq@kernel.org> References: <20220509072936.12899-1-rogerq@kernel.org> 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 Introduce k3-am642-evm-binman.dtsi to provide binman configuration. R5 build is still not converted to use binman so restrict binman.dtsi to A53 builds only. This patch also take care of building Secure (HS) images using binman instead of tools/k3_fit_atf.sh if CONFIG_BINMAN is set. Signed-off-by: Roger Quadros --- arch/arm/dts/k3-am642-evm-binman.dtsi | 230 ++++++++++++++++++++++++++ arch/arm/dts/k3-am642-evm-u-boot.dtsi | 3 + arch/arm/mach-k3/Kconfig | 1 + arch/arm/mach-k3/config.mk | 7 + 4 files changed, 241 insertions(+) create mode 100644 arch/arm/dts/k3-am642-evm-binman.dtsi diff --git a/arch/arm/dts/k3-am642-evm-binman.dtsi b/arch/arm/dts/k3-am642-evm-binman.dtsi new file mode 100644 index 0000000000..9e85ef41b0 --- /dev/null +++ b/arch/arm/dts/k3-am642-evm-binman.dtsi @@ -0,0 +1,230 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/ + */ + +/ { + binman: binman { + multiple-images; + }; +}; + +#ifdef CONFIG_TARGET_AM642_A53_EVM + +#ifdef CONFIG_TI_SECURE_DEVICE +#define TISPL "tispl.bin_HS" +#define UBOOT_IMG "u-boot.img_HS" +#else +#define TISPL "tispl.bin" +#define UBOOT_IMG "u-boot.img" +#endif + +#define SPL_NODTB "spl/u-boot-spl-nodtb.bin" +#define SPL_AM642_EVM_DTB "spl/dts/k3-am642-evm.dtb" +#define SPL_AM642_SK_DTB "spl/dts/k3-am642-sk.dtb" + +#define UBOOT_NODTB "u-boot-nodtb.bin" +#define AM642_EVM_DTB "arch/arm/dts/k3-am642-evm.dtb" +#define AM642_SK_DTB "arch/arm/dts/k3-am642-sk.dtb" + +&binman { + ti-spl { + filename = TISPL; + pad-byte = <0xff>; + + fit { + description = "Configuration to load ATF and SPL"; + #address-cells = <1>; + + images { + + atf { + description = "ARM Trusted Firmware"; + type = "firmware"; + arch = "arm64"; + compression = "none"; + os = "arm-trusted-firmware"; + load = ; + entry = ; + atf-bl31 { + filename = "bl31.bin"; + }; + }; + + tee { + description = "OPTEE"; + type = "tee"; + arch = "arm64"; + compression = "none"; + os = "tee"; + load = <0x9e800000>; + entry = <0x9e800000>; + tee-os { + filename = "tee-pager_v2.bin"; + }; + }; + + dm { + description = "DM binary"; + type = "firmware"; + arch = "arm32"; + compression = "none"; + os = "DM"; + load = <0x89000000>; + entry = <0x89000000>; + blob-ext { + filename = "/dev/null"; + }; + }; + + spl { + description = "SPL (64-bit)"; + type = "standalone"; + os = "U-Boot"; + arch = "arm64"; + compression = "none"; + load = <0x80080000>; + entry = <0x80080000>; +#ifdef CONFIG_TI_SECURE_DEVICE + ti-secure { +#else + blob { +#endif + filename = SPL_NODTB; + }; + }; + + fdt-1 { + description = "k3-am642-evm"; + type = "flat_dt"; + arch = "arm"; + compression = "none"; +#ifdef CONFIG_TI_SECURE_DEVICE + ti-secure { +#else + blob { +#endif + filename = SPL_AM642_EVM_DTB; + }; + }; + + fdt-2 { + description = "k3-am642-sk"; + type = "flat_dt"; + arch = "arm"; + compression = "none"; +#ifdef CONFIG_TI_SECURE_DEVICE + ti-secure { +#else + blob { +#endif + filename = SPL_AM642_SK_DTB; + }; + }; + }; + + configurations { + default = "conf-1"; + + conf-1 { + description = "k3-am642-evm"; + firmware = "atf"; + loadables = "tee", "dm", "spl"; + fdt = "fdt-1"; + }; + + conf-2 { + description = "k3-am642-sk"; + firmware = "atf"; + loadables = "tee", "dm", "spl"; + fdt = "fdt-2"; + }; + }; + }; + }; +}; + +&binman { + u-boot { + filename = UBOOT_IMG; + pad-byte = <0xff>; + + fit { + description = "FIT image with multiple configurations"; + + images { + uboot { + description = "U-Boot for am64x board"; + type = "firmware"; + os = "u-boot"; + arch = "arm"; + compression = "none"; + load = ; +#ifdef CONFIG_TI_SECURE_DEVICE + ti-secure { +#else + blob { +#endif + filename = UBOOT_NODTB; + }; + hash { + algo = "crc32"; + }; + }; + + fdt-1 { + description = "k3-am642-evm"; + type = "flat_dt"; + arch = "arm"; + compression = "none"; +#ifdef CONFIG_TI_SECURE_DEVICE + ti-secure { +#else + blob { +#endif + filename = AM642_EVM_DTB; + }; + hash { + algo = "crc32"; + }; + }; + + fdt-2 { + description = "k3-am642-sk"; + type = "flat_dt"; + arch = "arm"; + compression = "none"; +#ifdef CONFIG_TI_SECURE_DEVICE + ti-secure { +#else + blob { +#endif + filename = AM642_SK_DTB; + }; + hash { + algo = "crc32"; + }; + }; + }; + + configurations { + default = "conf-1"; + + conf-1 { + description = "k3-am642-evm"; + firmware = "uboot"; + loadables = "uboot"; + fdt = "fdt-1"; + }; + + conf-2 { + description = "k3-am642-sk"; + firmware = "uboot"; + loadables = "uboot"; + fdt = "fdt-2"; + }; + }; + }; + }; +}; +#endif diff --git a/arch/arm/dts/k3-am642-evm-u-boot.dtsi b/arch/arm/dts/k3-am642-evm-u-boot.dtsi index 03688a51a3..db0a529f0f 100644 --- a/arch/arm/dts/k3-am642-evm-u-boot.dtsi +++ b/arch/arm/dts/k3-am642-evm-u-boot.dtsi @@ -2,6 +2,9 @@ /* * Copyright (C) 2020-2021 Texas Instruments Incorporated - https://www.ti.com/ */ +#include + +#include "k3-am642-evm-binman.dtsi" / { chosen { diff --git a/arch/arm/mach-k3/Kconfig b/arch/arm/mach-k3/Kconfig index a01bf23514..a4c561254d 100644 --- a/arch/arm/mach-k3/Kconfig +++ b/arch/arm/mach-k3/Kconfig @@ -15,6 +15,7 @@ config SOC_K3_J721S2 config SOC_K3_AM642 bool "TI's K3 based AM642 SoC Family Support" + select BINMAN if TARGET_AM642_A53_EVM endchoice diff --git a/arch/arm/mach-k3/config.mk b/arch/arm/mach-k3/config.mk index da458bcfb2..d2c490818a 100644 --- a/arch/arm/mach-k3/config.mk +++ b/arch/arm/mach-k3/config.mk @@ -47,6 +47,7 @@ tiboot3.bin: image_check FORCE INPUTS-y += tiboot3.bin endif +ifndef CONFIG_BINMAN ifdef CONFIG_ARM64 ifeq ($(CONFIG_SOC_K3_J721E),) @@ -77,9 +78,11 @@ cmd_k3_mkits = \ $(SPL_ITS): FORCE $(call cmd,k3_mkits) endif +endif else +ifndef CONFIG_BINMAN ifeq ($(CONFIG_TI_SECURE_DEVICE),y) INPUTS-y += u-boot.img_HS else @@ -87,4 +90,8 @@ INPUTS-y += u-boot.img endif endif +endif + +ifndef CONFIG_BINMAN include $(srctree)/arch/arm/mach-k3/config_secure.mk +endif