All of lore.kernel.org
 help / color / mirror / Atom feed
From: Neha Malcom Francis <n-francis@ti.com>
To: <u-boot@lists.denx.de>, <trini@konsulko.com>, <sjg@chromium.org>,
	<afd@ti.com>, <vigneshr@ti.com>, <rogerq@kernel.org>
Cc: <n-francis@ti.com>, <alpernebiyasak@gmail.com>, <nm@ti.com>, <bb@ti.com>
Subject: [PATCH 17/21] am625: dts: binman: Package tiboot3.bin, tispl.bin and u-boot.img
Date: Fri, 20 Jan 2023 15:48:59 +0530	[thread overview]
Message-ID: <20230120101903.179959-18-n-francis@ti.com> (raw)
In-Reply-To: <20230120101903.179959-1-n-francis@ti.com>

Support added for HS and GP boot binaries for AM62

tiboot3.bin, tispl.bin and u-boot.img: For HS devices
tiboot3.bin_unsigned, tispl.bin_unsigned, u-boot.img_unsigned: For GP
devices

It is to be noted that the bootflow followed by AM62 requires:

tiboot3.bin:
	* R5 SPL
	* R5 SPL dtbs
	* TIFS
	* board-cfg
	* pm-cfg
	* sec-cfg
	* rm-cfg

tispl.bin:
	* DM
	* ATF
	* OPTEE
	* A72 SPL
	* A72 SPL dtbs

u-boot.img:
	* A72 U-Boot
	* A72 U-Boot dtbs

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
---
 arch/arm/dts/k3-am625-r5-sk.dts      |   1 +
 arch/arm/dts/k3-am625-sk-binman.dtsi | 377 +++++++++++++++++++++++++++
 arch/arm/dts/k3-am625-sk-u-boot.dtsi |   2 +
 board/ti/am62x/Kconfig               |   2 +
 include/binman_sym.h                 |   2 +
 5 files changed, 384 insertions(+)
 create mode 100644 arch/arm/dts/k3-am625-sk-binman.dtsi

diff --git a/arch/arm/dts/k3-am625-r5-sk.dts b/arch/arm/dts/k3-am625-r5-sk.dts
index d39b334ed0..a63d1b25dd 100644
--- a/arch/arm/dts/k3-am625-r5-sk.dts
+++ b/arch/arm/dts/k3-am625-r5-sk.dts
@@ -9,6 +9,7 @@
 #include "k3-am62-ddr.dtsi"
 
 #include "k3-am625-sk-u-boot.dtsi"
+#include "k3-am625-sk-binman.dtsi"
 
 / {
 	aliases {
diff --git a/arch/arm/dts/k3-am625-sk-binman.dtsi b/arch/arm/dts/k3-am625-sk-binman.dtsi
new file mode 100644
index 0000000000..ef8bfde042
--- /dev/null
+++ b/arch/arm/dts/k3-am625-sk-binman.dtsi
@@ -0,0 +1,377 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/ {
+	binman: binman {
+		multiple-images;
+	};
+};
+
+#ifdef CONFIG_TARGET_AM625_R5_EVM
+
+&binman {
+	ti-fs-cert {
+		filename = "ti-fs-cert.bin";
+		ti-fs-firmware-am625-hs-cert.bin {
+			filename = "ti-fs-firmware-am62x-hs-cert.bin";
+			type = "blob-ext";
+			optional;
+		};
+	};
+	ti-fs-enc {
+		filename = "ti-fs-enc.bin";
+		ti-fs-firmware-am625-hs-enc.bin {
+			filename = "ti-fs-firmware-am62x-hs-enc.bin";
+			type = "blob-ext";
+			optional;
+		};
+	};
+	tiboot3 {
+		filename = "tiboot3.bin";
+		ti-secure {
+			combined;
+			split-dm;
+			filename = "spl/u-boot-spl.bin";
+			load = <0x43c00000>;
+			sysfw-filename = "ti-fs-enc.bin";
+			sysfw-load = <0x40000>;
+			sysfw-inner-cert = "ti-fs-cert.bin";
+			sysfw-data-filename = "combined-tifs-cfg.bin";
+			sysfw-data-load = <0x67000>;
+			dm-data-filename = "combined-dm-cfg.bin";
+			dm-data-load = <0x43c3a800>;
+			key = "/keys/custMpk.pem";
+			sw-rev = <1>;
+		};
+	};
+};
+
+&binman {
+	ti-fs-gp {
+		filename = "ti-fs-gp.bin";
+		ti-fs-firmware-am625-gp.bin {
+			filename = "ti-fs-firmware-am62x-gp.bin";
+			type = "blob-ext";
+			optional;
+		};
+	};
+	tiboot3_unsigned {
+		filename = "tiboot3.bin_unsigned";
+		ti-secure {
+			combined;
+			split-dm;
+			filename = "spl/u-boot-spl.bin";
+			load = <0x43c00000>;
+			sysfw-filename = "ti-fs-gp.bin";
+			sysfw-load = <0x40000>;
+			sysfw-data-filename = "combined-tifs-cfg.bin";
+			sysfw-data-load = <0x67000>;
+			dm-data-filename = "combined-dm-cfg.bin";
+			dm-data-load = <0x43c3a800>;
+			sw-rev = <CONFIG_K3_X509_SWRV>;
+		};
+	};
+};
+
+#endif
+
+#ifdef CONFIG_TARGET_AM625_A53_EVM
+
+#define SPL_NODTB "spl/u-boot-spl-nodtb.bin"
+#define SPL_AM625_EVM_DTB "spl/dts/k3-am625-sk.dtb"
+
+#define UBOOT_NODTB "u-boot-nodtb.bin"
+#define AM625_EVM_DTB "arch/arm/dts/k3-am625-sk.dtb"
+
+&binman {
+	ti-dm {
+		filename = "ti-dm.bin";
+		blob-ext {
+			filename = "ipc_echo_testb_mcu1_0_release_strip.xer5f";
+		};
+	};
+	ti-spl {
+		filename = "tispl.bin";
+		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 = <CONFIG_K3_ATF_LOAD_ADDR>;
+					entry = <CONFIG_K3_ATF_LOAD_ADDR>;
+					atf-bl31 {
+					};
+				};
+
+				tee {
+					description = "OPTEE";
+					type = "tee";
+					arch = "arm64";
+					compression = "none";
+					os = "tee";
+					load = <0x9e800000>;
+					entry = <0x9e800000>;
+					tee-os {
+					};
+				};
+
+				dm {
+					description = "DM binary";
+					type = "firmware";
+					arch = "arm32";
+					compression = "none";
+					os = "DM";
+					load = <0x89000000>;
+					entry = <0x89000000>;
+					blob-ext {
+						filename = "ti-dm.bin";
+					};
+				};
+
+				spl {
+					description = "SPL (64-bit)";
+					type = "standalone";
+					os = "U-Boot";
+					arch = "arm64";
+					compression = "none";
+					load = <CONFIG_SPL_TEXT_BASE>;
+					entry = <CONFIG_SPL_TEXT_BASE>;
+					ti-secure {
+						filename = SPL_NODTB;
+						secure;
+					};
+				};
+
+				fdt-0 {
+					description = "k3-am625-sk";
+					type = "flat_dt";
+					arch = "arm";
+					compression = "none";
+					ti-secure {
+						filename = SPL_AM625_EVM_DTB;
+						secure;
+					};
+				};
+
+			};
+
+			configurations {
+				default = "conf-0";
+
+				conf-0 {
+					description = "k3-am625-sk";
+					firmware = "atf";
+					loadables = "tee", "dm", "spl";
+					fdt = "fdt-0";
+				};
+			};
+		};
+	};
+};
+
+&binman {
+	u-boot {
+		filename = "u-boot.img";
+		pad-byte = <0xff>;
+
+		fit {
+			description = "FIT image with multiple configurations";
+
+			images {
+				uboot {
+					description = "U-Boot for AM625 board";
+					type = "firmware";
+					os = "u-boot";
+					arch = "arm";
+					compression = "none";
+					load = <CONFIG_TEXT_BASE>;
+					ti-secure {
+						filename = UBOOT_NODTB;
+						secure;
+					};
+					hash {
+						algo = "crc32";
+					};
+				};
+
+				fdt-0 {
+					description = "k3-am625-sk";
+					type = "flat_dt";
+					arch = "arm";
+					compression = "none";
+					ti-secure {
+						filename = AM625_EVM_DTB;
+						secure;
+					};
+					hash {
+						algo = "crc32";
+					};
+				};
+			};
+
+			configurations {
+				default = "conf-0";
+
+				conf-0 {
+					description = "k3-am625-sk";
+					firmware = "uboot";
+					loadables = "uboot";
+					fdt = "fdt-0";
+				};
+
+			};
+		};
+	};
+};
+
+&binman {
+	ti-spl_unsigned {
+		filename = "tispl.bin_unsigned";
+		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 = <CONFIG_K3_ATF_LOAD_ADDR>;
+					entry = <CONFIG_K3_ATF_LOAD_ADDR>;
+					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 = "ti-dm.bin";
+					};
+				};
+
+				spl {
+					description = "SPL (64-bit)";
+					type = "standalone";
+					os = "U-Boot";
+					arch = "arm64";
+					compression = "none";
+					load = <CONFIG_SPL_TEXT_BASE>;
+					entry = <CONFIG_SPL_TEXT_BASE>;
+					blob {
+						filename = "spl/u-boot-spl-nodtb.bin";
+					};
+				};
+
+				fdt-1 {
+					description = "k3-am625-sk";
+					type = "flat_dt";
+					arch = "arm";
+					compression = "none";
+					blob {
+						filename = SPL_AM625_EVM_DTB;
+					};
+				};
+			};
+
+			configurations {
+				default = "conf-1";
+
+				conf-1 {
+					description = "k3-am625-sk";
+					firmware = "atf";
+					loadables = "tee", "dm", "spl";
+					fdt = "fdt-1";
+				};
+			};
+		};
+	};
+};
+
+&binman {
+	u-boot_unsigned {
+		filename = "u-boot.img_unsigned";
+		pad-byte = <0xff>;
+
+		fit {
+			description = "FIT image with multiple configurations";
+
+			images {
+				uboot {
+					description = "U-Boot for AM625 board";
+					type = "firmware";
+					os = "u-boot";
+					arch = "arm";
+					compression = "none";
+					load = <CONFIG_TEXT_BASE>;
+					blob {
+						filename = UBOOT_NODTB;
+					};
+					hash {
+						algo = "crc32";
+					};
+				};
+
+				fdt-1 {
+					description = "k3-am625-sk";
+					type = "flat_dt";
+					arch = "arm";
+					compression = "none";
+					blob {
+						filename = AM625_EVM_DTB;
+					};
+					hash {
+						algo = "crc32";
+					};
+				};
+			};
+
+			configurations {
+				default = "conf-1";
+
+				conf-1 {
+					description = "k3-am625-sk";
+					firmware = "uboot";
+					loadables = "uboot";
+					fdt = "fdt-1";
+				};
+			};
+		};
+	};
+};
+#endif
diff --git a/arch/arm/dts/k3-am625-sk-u-boot.dtsi b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
index f275e3b46c..12fc3a5c75 100644
--- a/arch/arm/dts/k3-am625-sk-u-boot.dtsi
+++ b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
@@ -4,6 +4,8 @@
  * Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/
  */
 
+#include "k3-am625-sk-binman.dtsi"
+
 / {
 	chosen {
 		stdout-path = "serial2:115200n8";
diff --git a/board/ti/am62x/Kconfig b/board/ti/am62x/Kconfig
index 87fed44df1..8063d74d6d 100644
--- a/board/ti/am62x/Kconfig
+++ b/board/ti/am62x/Kconfig
@@ -11,6 +11,7 @@ config TARGET_AM625_A53_EVM
 	bool "TI K3 based AM625 EVM running on A53"
 	select ARM64
 	select SOC_K3_AM625
+	select BINMAN
 
 config TARGET_AM625_R5_EVM
 	bool "TI K3 based AM625 EVM running on R5"
@@ -21,6 +22,7 @@ config TARGET_AM625_R5_EVM
 	select RAM
 	select SPL_RAM
 	select K3_DDRSS
+	select BINMAN
 	imply SYS_K3_SPL_ATF
 
 endchoice
diff --git a/include/binman_sym.h b/include/binman_sym.h
index 528d7e4e90..f274bf6a3d 100644
--- a/include/binman_sym.h
+++ b/include/binman_sym.h
@@ -11,6 +11,8 @@
 #ifndef __BINMAN_SYM_H
 #define __BINMAN_SYM_H
 
+#include <linux/types.h>
+
 /* BSYM in little endian, keep in sync with tools/binman/elf.py */
 #define BINMAN_SYM_MAGIC_VALUE	(0x4d595342UL)
 #define BINMAN_SYM_MISSING	(-1UL)
-- 
2.34.1


  parent reply	other threads:[~2023-01-20 10:22 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-20 10:18 [PATCH 00/21] Migration to using binman to generate bootloader Neha Malcom Francis
2023-01-20 10:18 ` [PATCH 01/21] ti: tools: config: Add board config class to generate config binaries Neha Malcom Francis
2023-01-20 19:46   ` Simon Glass
2023-01-20 10:18 ` [PATCH 02/21] tools: sysfw: Add script for generating configuration blobs Neha Malcom Francis
2023-01-23 14:19   ` Neha Malcom Francis
2023-01-23 18:42     ` Simon Glass
2023-01-24 10:04       ` Neha Malcom Francis
2023-01-20 10:18 ` [PATCH 03/21] tools: binman: add ti-secure entry type Neha Malcom Francis
2023-01-20 19:46   ` Simon Glass
2023-01-20 10:18 ` [PATCH 04/21] ti: sysfw: tiboot3: Add support for packaging sysfw.itb and tiboot3.bin Neha Malcom Francis
2023-01-20 10:18 ` [PATCH 05/21] j721e: schema: yaml: Add general schema and J721E board config files Neha Malcom Francis
2023-01-20 10:18 ` [PATCH 06/21] j721e: dts: binman: Package tiboot3.bin, sysfw.itb, tispl.bin, u-boot.img Neha Malcom Francis
2023-01-20 10:18 ` [PATCH 07/21] j7200: yaml: Add J7200 board config files Neha Malcom Francis
2023-01-20 10:18 ` [PATCH 08/21] j7200: dts: binman: Package tiboot3.bin, tispl.bin, u-boot.img Neha Malcom Francis
2023-01-20 10:18 ` [PATCH 09/21] am65x: yaml: Add AM65x board config files Neha Malcom Francis
2023-01-20 10:18 ` [PATCH 10/21] am65: dts: binman: Package tiboot3.bin, sysfw.itb, tispl.bin, u-boot.img Neha Malcom Francis
2023-01-20 10:18 ` [PATCH 11/21] config: am64x: Add board config for AM64x Neha Malcom Francis
2023-01-20 10:18 ` [PATCH 12/21] am64x: dts: binman: Package tiboot3.bin, tispl.bin u-boot.img Neha Malcom Francis
2023-01-20 10:18 ` [PATCH 13/21] Makefile: Add DM, SYSFW_PATH, SYSFW_HS_INNER_CERT_PATH to BINMAN_INDIRS Neha Malcom Francis
2023-01-20 19:46   ` Simon Glass
2023-01-20 10:18 ` [PATCH 14/21] j721s2: yaml: Add board config for J721S2 Neha Malcom Francis
2023-01-20 10:18 ` [PATCH 15/21] j721s2: dts: binman: Package tiboot3.bin, tispl.bin and u-boot.img Neha Malcom Francis
2023-01-20 19:46   ` Simon Glass
2023-01-20 10:18 ` [PATCH 16/21] am62: yaml: Add board config for AM62 Neha Malcom Francis
2023-01-20 10:18 ` Neha Malcom Francis [this message]
2023-01-20 10:19 ` [PATCH 18/21] am62a: yaml: Add board config for AM62ax Neha Malcom Francis
2023-01-20 10:19 ` [PATCH 19/21] am62a: dts: binman: Package tiboot3.bin, tispl.bin, u-boot.img Neha Malcom Francis
2023-01-20 10:19 ` [PATCH 20/21] k3: tools: config.mk: Update makefile and remove scripts Neha Malcom Francis
2023-01-20 10:19 ` [PATCH 21/21] doc: board: ti: Update documentation for binman flow Neha Malcom Francis
2023-01-20 19:46 ` [PATCH 00/21] Migration to using binman to generate bootloader Simon Glass
2023-01-23 12:31   ` Neha Malcom Francis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230120101903.179959-18-n-francis@ti.com \
    --to=n-francis@ti.com \
    --cc=afd@ti.com \
    --cc=alpernebiyasak@gmail.com \
    --cc=bb@ti.com \
    --cc=nm@ti.com \
    --cc=rogerq@kernel.org \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.