This patch adds creation of tisemifalcon.bin for J784S4 EVM.

The contents are the same as the existing tispl.bin but A72's SPL and
the FDT have been removed as they are not needed in semi-falcon mode
and instead UBOOT and its FDT are added.

This reduces boot time since A72 SPL is skipped.

tispl.bin = TFA + TEE + DM + A72 SPL + FDT(A72 SPL)
tifalcon.bin = TFA + TEE + DM + UBOOT + FDT(UBOOT)

Signed-off-by: Gokul Praveen <[email protected]>
---
 Makefile                               |  2 +-
 arch/arm/dts/k3-binman.dtsi            | 47 +++++++++++++++++++
 arch/arm/dts/k3-j784s4-binman.dtsi     | 65 ++++++++++++++++++++++++++
 arch/arm/dts/k3-j784s4-evm-u-boot.dtsi | 14 ++++++
 4 files changed, 127 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index c6253670a94..ce2501602f4 100644
--- a/Makefile
+++ b/Makefile
@@ -2556,7 +2556,7 @@ CLEAN_FILES += include/autoconf.mk* include/bmp_logo.h 
include/bmp_logo_data.h \
               idbloader-spi.img lib/efi_loader/helloworld_efi.S *.itb \
               Test* capsule*.*.efi-capsule capsule*.map mkimage.imx-boot.spl \
               mkimage.imx-boot.u-boot mkimage-out.imx-boot.spl 
mkimage-out.imx-boot.u-boot \
-              imx9image* m33-oei-ddrfw* tifalcon.bin
+              imx9image* m33-oei-ddrfw* tifalcon.bin tisemifalcon.bin
 
 # Directories & files removed with 'make mrproper'
 MRPROPER_FILES  += include/config include/generated spl tpl vpl \
diff --git a/arch/arm/dts/k3-binman.dtsi b/arch/arm/dts/k3-binman.dtsi
index ad127663d03..d82b8630554 100644
--- a/arch/arm/dts/k3-binman.dtsi
+++ b/arch/arm/dts/k3-binman.dtsi
@@ -543,6 +543,53 @@
                };
        };
 
+       ti_semifalcon_template: template-16 {
+               filename = "tisemifalcon.bin";
+               pad-byte = <0xff>;
+
+               fit {
+                       description = "Configuration for semi-falcon boot";
+                       #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 = "OP-TEE";
+                                       type = "tee";
+                                       arch = "arm64";
+                                       compression = "none";
+                                       os = "tee";
+                                       load = <CONFIG_K3_OPTEE_LOAD_ADDR>;
+                                       entry = <CONFIG_K3_OPTEE_LOAD_ADDR>;
+                                       tee-os {
+                                               filename = "tee-raw.bin";
+                                               optional;
+                                       };
+                               };
+                               dm {
+                                       description = "DM binary";
+                                       type = "firmware";
+                                       arch = "arm32";
+                                       compression = "none";
+                                       os = "DM";
+                                       load = <0x89000000>;
+                                       entry = <0x89000000>;
+                               };
+                       };
+               };
+       };
+
 };
 
 #endif
diff --git a/arch/arm/dts/k3-j784s4-binman.dtsi 
b/arch/arm/dts/k3-j784s4-binman.dtsi
index 34b2cc1e681..d109b3d460c 100644
--- a/arch/arm/dts/k3-j784s4-binman.dtsi
+++ b/arch/arm/dts/k3-j784s4-binman.dtsi
@@ -317,4 +317,69 @@
                };
        };
 };
+
+&binman{
+       ti_semifalcon: template-17{
+               insert-template = <&ti_semifalcon_template>;
+
+               fit {
+                       images {
+                               dm {
+                                       ti-dm {
+                                       };
+                               };
+
+                               uboot {
+                                       description = UBOOT_BOARD_DESCRIPTION;
+                                       type = "firmware";
+                                       os = "u-boot";
+                                       arch = "arm";
+                                       compression = "none";
+                                       load = <CONFIG_TEXT_BASE>;
+                                       ti-secure {
+                                               content = 
<&u_boot_nodtb_semifalcon>;
+                                               keyfile = "custMpk.pem";
+                                       };
+                                       u_boot_nodtb_semifalcon: blob-ext {
+                                               filename = "u-boot-nodtb.bin";
+                                       };
+                                       hash {
+                                               algo = "crc32";
+                                       };
+                               };
+
+                               fdt-0 {
+                                       description = BOARD_DESCRIPTION;
+                                       type = "flat_dt";
+                                       arch = "arm";
+                                       compression = "none";
+
+                                       ti-secure {
+                                               content = 
<&j784s4_evm_dtb_semifalcon>;
+                                               keyfile = "custMpk.pem";
+                                       };
+
+                                       j784s4_evm_dtb_semifalcon: blob-ext {
+                                               filename = "u-boot.dtb";
+                                       };
+
+                                       hash {
+                                               algo = "crc32";
+                                       };
+                               };
+                       };
+
+                       configurations {
+                               default = "conf-0";
+
+                               conf-0 {
+                                       description = BOARD_DESCRIPTION;
+                                       firmware = "atf";
+                                       loadables = "tee", "dm", "uboot";
+                                       fdt = "fdt-0";
+                               };
+                       };
+               };
+       };
+};
 #endif
diff --git a/arch/arm/dts/k3-j784s4-evm-u-boot.dtsi 
b/arch/arm/dts/k3-j784s4-evm-u-boot.dtsi
index cc0b562d27e..d22cdc09a7e 100644
--- a/arch/arm/dts/k3-j784s4-evm-u-boot.dtsi
+++ b/arch/arm/dts/k3-j784s4-evm-u-boot.dtsi
@@ -87,6 +87,20 @@
        u-boot-unsigned {
                insert-template = <&u_boot_unsigned>;
        };
+
+       ti-semifalcon {
+               insert-template = <&ti_semifalcon>;
+
+               fit {
+                       images {
+                               dm {
+                                       ti-dm {
+                                               filename = 
"ti-dm/j784s4/ipc_echo_testb_mcu1_0_release_strip.xer5f";
+                                       };
+                               };
+                       };
+               };
+       };
 };
 
 #endif
-- 
2.34.1

Reply via email to