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

The contents are similar to the existing tispl.bin but the A72 SPL
and its FDT have been removed and replaced with U-Boot proper and its
FDT. This binary is used in a boot mode where R5 SPL directly loads
U-Boot, bypassing the A Core SPL stage.

This reduces boot time by eliminating the A Core SPL stage.

tispl.bin   = TFA + TEE + DM + A72 SPL + FDT(A72 SPL)
tinospl.bin = TFA + TEE + DM + U-Boot  + FDT(U-Boot)

Signed-off-by: Gokul Praveen <[email protected]>
Reviewed-by: Neha Malcom Francis <[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..c6723d63f59 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 tinospl.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..aa8479bc0f6 100644
--- a/arch/arm/dts/k3-binman.dtsi
+++ b/arch/arm/dts/k3-binman.dtsi
@@ -543,6 +543,53 @@
                };
        };
 
+       ti_nospl_template: template-16 {
+               filename = "tinospl.bin";
+               pad-byte = <0xff>;
+
+               fit {
+                       description = "Configuration for no-SPL 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..0dec4316d6b 100644
--- a/arch/arm/dts/k3-j784s4-binman.dtsi
+++ b/arch/arm/dts/k3-j784s4-binman.dtsi
@@ -317,4 +317,69 @@
                };
        };
 };
+
+&binman{
+       ti_nospl: template-17{
+               insert-template = <&ti_nospl_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_nospl>;
+                                               keyfile = "custMpk.pem";
+                                       };
+                                       u_boot_nodtb_nospl: 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_nospl>;
+                                               keyfile = "custMpk.pem";
+                                       };
+
+                                       j784s4_evm_dtb_nospl: 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..fc6f23736ae 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-nospl {
+               insert-template = <&ti_nospl>;
+
+               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