arm: dts: k3-j784s4-binman.dtsi: Clean up and templatize boot binaries

Clean up templatized boot binaries for j784s4 soc. This includes
modifying the k3-j784s4-binman.dtsi to use SPL_BOARD_DTB,
BOARD_DESCRIPTION and UBOOT_BOARD_DESCRIPTION from the files that
include it to further reuse code.

k3-j784s4-binman.dtsi will contain only templates. Only required boot
binaries can be built from the templates in the boards' respective
-u-boot.dtsi file (or k3-<board>-binman.dtsi if it exists). This allows
clear distinction between the SoC common stuff vs. what is additionally
needed to boot up a specific board.

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
[ Do it only for j784s4 ]
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
This commit is contained in:
Neha Malcom Francis
2025-03-17 10:24:21 +05:30
committed by Tom Rini
parent 42ce9ed7ff
commit 9e1295917e
3 changed files with 206 additions and 108 deletions

View File

@@ -1,10 +1,109 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
* Copyright (C) 2022-2024 Texas Instruments Incorporated - https://www.ti.com/
*/
#define SPL_BOARD_DTB "spl/dts/ti/k3-am69-sk.dtb"
#define BOARD_DESCRIPTION "k3-am69-sk"
#define UBOOT_BOARD_DESCRIPTION "U-Boot for AM69 board"
#include "k3-j784s4-binman.dtsi"
#if defined(CONFIG_CPU_V7R)
&binman {
tiboot3-am69-hs {
insert-template = <&tiboot3_j784s4_hs>;
filename = "tiboot3-j784s4-hs-evm.bin";
};
tiboot3-am69-hs-fs {
insert-template = <&tiboot3_j784s4_hs_fs>;
filename = "tiboot3-j784s4-hs-fs-evm.bin";
symlink = "tiboot3.bin";
};
};
&ti_fs_enc {
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-enc.bin";
};
&sysfw_inner_cert {
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-cert.bin";
};
&ti_fs_enc_fs {
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-fs-enc.bin";
};
&sysfw_inner_cert_fs {
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-fs-cert.bin";
};
#include "k3-binman-capsule-r5.dtsi"
// Capsule update GUIDs in string form. See j784s4_evm.h
#define AM69_SK_TIBOOT3_IMAGE_GUID_STR "adf49ec5-61bb-4dbe-8b8d-39df4d7ebf46"
&capsule_tiboot3 {
efi-capsule {
image-guid = AM69_SK_TIBOOT3_IMAGE_GUID_STR;
blob {
filename = "tiboot3-j784s4-hs-fs-evm.bin";
};
};
};
#else // CONFIG_ARM64
&binman {
ti-dm {
filename = "ti-dm.bin";
blob-ext {
filename = "ti-dm/j784s4/ipc_echo_testb_mcu1_0_release_strip.xer5f";
optional;
};
};
tispl {
insert-template = <&ti_spl>;
};
u-boot {
insert-template = <&u_boot>;
};
tispl-unsigned {
insert-template = <&ti_spl_unsigned>;
};
u-boot-unsigned {
insert-template = <&u_boot_unsigned>;
};
};
#include "k3-binman-capsule.dtsi"
// Capsule update GUIDs in string form. See j784s4_evm.h
#define AM69_SK_SPL_IMAGE_GUID_STR "787f0059-63a1-461c-a18e-9d838345fe8e"
#define AM69_SK_UBOOT_IMAGE_GUID_STR "9300505d-6ec5-4ff8-99e4-5459a04be617"
&capsule_tispl {
efi-capsule {
image-guid = AM69_SK_SPL_IMAGE_GUID_STR;
};
};
&capsule_uboot {
efi-capsule {
image-guid = AM69_SK_UBOOT_IMAGE_GUID_STR;
};
};
#endif
/ {
memory@80000000 {
bootph-all;
@@ -23,25 +122,3 @@
bootph-pre-ram;
};
#ifdef CONFIG_TARGET_J784S4_A72_EVM
#define SPL_AM69_SK_DTB "spl/dts/ti/k3-am69-sk.dtb"
#define AM69_SK_DTB "u-boot.dtb"
&spl_j784s4_evm_dtb {
filename = SPL_AM69_SK_DTB;
};
&j784s4_evm_dtb {
filename = AM69_SK_DTB;
};
&spl_j784s4_evm_dtb_unsigned {
filename = SPL_AM69_SK_DTB;
};
&j784s4_evm_dtb_unsigned {
filename = AM69_SK_DTB;
};
#endif

View File

@@ -5,16 +5,15 @@
#include "k3-binman.dtsi"
#ifdef CONFIG_TARGET_J784S4_R5_EVM
#if defined(CONFIG_CPU_V7R)
&rcfg_yaml_tifs {
config = "tifs-rm-cfg.yaml";
};
&binman {
tiboot3-j784s4-hs-evm.bin {
filename = "tiboot3-j784s4-hs-evm.bin";
tiboot3_j784s4_hs: template-9 {
section {
ti-secure-rom {
content = <&u_boot_spl>, <&ti_fs_enc>, <&combined_tifs_cfg>,
<&combined_dm_cfg>, <&sysfw_inner_cert>;
@@ -39,7 +38,6 @@
};
ti_fs_enc: ti-fs-enc.bin {
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-enc.bin";
type = "blob-ext";
optional;
};
@@ -50,7 +48,6 @@
};
sysfw_inner_cert: sysfw-inner-cert {
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-cert.bin";
type = "blob-ext";
optional;
};
@@ -59,13 +56,13 @@
filename = "combined-dm-cfg.bin";
type = "blob-ext";
};
};
};
};
&binman {
tiboot3-j784s4-hs-fs-evm.bin {
filename = "tiboot3-j784s4-hs-fs-evm.bin";
tiboot3_j784s4_hs_fs: template-10 {
section {
ti-secure-rom {
content = <&u_boot_spl_fs>, <&ti_fs_enc_fs>, <&combined_tifs_cfg_fs>,
<&combined_dm_cfg_fs>, <&sysfw_inner_cert_fs>;
@@ -90,7 +87,6 @@
};
ti_fs_enc_fs: ti-fs-enc.bin {
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-fs-enc.bin";
type = "blob-ext";
optional;
};
@@ -101,7 +97,6 @@
};
sysfw_inner_cert_fs: sysfw-inner-cert {
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-fs-cert.bin";
type = "blob-ext";
optional;
};
@@ -110,14 +105,13 @@
filename = "combined-dm-cfg.bin";
type = "blob-ext";
};
};
};
};
&binman {
tiboot3-j784s4-gp-evm.bin {
filename = "tiboot3-j784s4-gp-evm.bin";
symlink = "tiboot3.bin";
tiboot3_j784s4_gp: template-11 {
section {
ti-secure-rom {
content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
@@ -140,7 +134,6 @@
};
ti_fs_gp: ti-fs-gp.bin {
filename = "ti-sysfw/ti-fs-firmware-j784s4-gp.bin";
type = "blob-ext";
optional;
};
@@ -154,43 +147,14 @@
filename = "combined-dm-cfg.bin";
type = "blob-ext";
};
};
};
#include "k3-binman-capsule-r5.dtsi"
// Capsule update GUIDs in string form. See j784s4_evm.h
#define AM69_SK_TIBOOT3_IMAGE_GUID_STR "adf49ec5-61bb-4dbe-8b8d-39df4d7ebf46"
&capsule_tiboot3 {
efi-capsule {
image-guid = AM69_SK_TIBOOT3_IMAGE_GUID_STR;
blob {
filename = "tiboot3-j784s4-hs-fs-evm.bin";
};
};
};
#endif
#ifdef CONFIG_TARGET_J784S4_A72_EVM
#define SPL_J784S4_EVM_DTB "spl/dts/ti/k3-j784s4-evm.dtb"
#define J784S4_EVM_DTB "u-boot.dtb"
#else
&binman {
ti-dm {
filename = "ti-dm.bin";
blob-ext {
filename = "ti-dm/j784s4/ipc_echo_testb_mcu1_0_release_strip.xer5f";
optional;
};
};
ti-spl {
ti_spl: template-12 {
insert-template = <&ti_spl_template>;
fit {
@@ -207,19 +171,20 @@
};
fdt-0 {
description = "k3-j784s4-evm";
description = BOARD_DESCRIPTION;
type = "flat_dt";
arch = "arm";
compression = "none";
ti-secure {
content = <&spl_j784s4_evm_dtb>;
content = <&spl_board_dtb>;
keyfile = "custMpk.pem";
};
spl_j784s4_evm_dtb: blob-ext {
filename = SPL_J784S4_EVM_DTB;
spl_board_dtb: blob-ext {
filename = SPL_BOARD_DTB;
};
};
};
@@ -227,7 +192,7 @@
default = "conf-0";
conf-0 {
description = "k3-j784s4-evm";
description = BOARD_DESCRIPTION;
firmware = "atf";
loadables = "tee", "dm", "spl";
fdt = "fdt-0";
@@ -238,17 +203,17 @@
};
&binman {
u-boot {
u_boot: template-13 {
insert-template = <&u_boot_template>;
fit {
images {
uboot {
description = "U-Boot for J784S4 board";
description = UBOOT_BOARD_DESCRIPTION;
};
fdt-0 {
description = "k3-j784s4-evm";
description = BOARD_DESCRIPTION;
type = "flat_dt";
arch = "arm";
compression = "none";
@@ -259,7 +224,7 @@
};
j784s4_evm_dtb: blob-ext {
filename = J784S4_EVM_DTB;
filename = "u-boot.dtb";
};
hash {
@@ -272,7 +237,7 @@
default = "conf-0";
conf-0 {
description = "k3-j784s4-evm";
description = BOARD_DESCRIPTION;
firmware = "uboot";
loadables = "uboot";
fdt = "fdt-0";
@@ -283,7 +248,7 @@
};
&binman {
ti-spl_unsigned {
ti_spl_unsigned: template-14 {
insert-template = <&ti_spl_unsigned_template>;
fit {
@@ -295,13 +260,13 @@
};
fdt-0 {
description = "k3-j784s4-evm";
description = BOARD_DESCRIPTION;
type = "flat_dt";
arch = "arm";
compression = "none";
spl_j784s4_evm_dtb_unsigned: blob {
filename = SPL_J784S4_EVM_DTB;
filename = SPL_BOARD_DTB;
};
};
};
@@ -310,7 +275,7 @@
default = "conf-0";
conf-0 {
description = "k3-j784s4-evm";
description = BOARD_DESCRIPTION;
firmware = "atf";
loadables = "tee", "dm", "spl";
fdt = "fdt-0";
@@ -321,23 +286,23 @@
};
&binman {
u-boot_unsigned {
u_boot_unsigned: template-15 {
insert-template = <&u_boot_unsigned_template>;
fit {
images {
uboot {
description = "U-Boot for J784S4 board";
description = UBOOT_BOARD_DESCRIPTION;
};
fdt-0 {
description = "k3-j784s4-evm";
description = BOARD_DESCRIPTION;
type = "flat_dt";
arch = "arm";
compression = "none";
j784s4_evm_dtb_unsigned: blob {
filename = J784S4_EVM_DTB;
filename = "u-boot.dtb";
};
hash {
@@ -350,7 +315,7 @@
default = "conf-0";
conf-0 {
description = "k3-j784s4-evm";
description = BOARD_DESCRIPTION;
firmware = "uboot";
loadables = "uboot";
fdt = "fdt-0";
@@ -359,23 +324,4 @@
};
};
};
#include "k3-binman-capsule.dtsi"
// Capsule update GUIDs in string form. See j784s4_evm.h
#define AM69_SK_SPL_IMAGE_GUID_STR "787f0059-63a1-461c-a18e-9d838345fe8e"
#define AM69_SK_UBOOT_IMAGE_GUID_STR "9300505d-6ec5-4ff8-99e4-5459a04be617"
&capsule_tispl {
efi-capsule {
image-guid = AM69_SK_SPL_IMAGE_GUID_STR;
};
};
&capsule_uboot {
efi-capsule {
image-guid = AM69_SK_UBOOT_IMAGE_GUID_STR;
};
};
#endif

View File

@@ -3,8 +3,83 @@
* Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
*/
#define SPL_BOARD_DTB "spl/dts/ti/k3-j784s4-evm.dtb"
#define BOARD_DESCRIPTION "k3-j784s4-evm"
#define UBOOT_BOARD_DESCRIPTION "U-Boot for J784S4 board"
#include "k3-j784s4-binman.dtsi"
#if defined(CONFIG_CPU_V7R)
&binman {
tiboot3-j784s4-hs {
insert-template = <&tiboot3_j784s4_hs>;
filename = "tiboot3-j784s4-hs-evm.bin";
};
tiboot3-j784s4-hs-fs {
insert-template = <&tiboot3_j784s4_hs_fs>;
filename = "tiboot3-j784s4-hs-fs-evm.bin";
};
tiboot3-j784s4-gp {
insert-template = <&tiboot3_j784s4_gp>;
filename = "tiboot3-j784s4-gp-evm.bin";
symlink = "tiboot3.bin";
};
};
&ti_fs_gp {
filename = "ti-sysfw/ti-fs-firmware-j784s4-gp.bin";
};
&ti_fs_enc {
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-enc.bin";
};
&sysfw_inner_cert {
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-cert.bin";
};
&ti_fs_enc_fs {
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-fs-enc.bin";
};
&sysfw_inner_cert_fs {
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-fs-cert.bin";
};
#else // CONFIG_ARM64
&binman {
ti-dm {
filename = "ti-dm.bin";
blob-ext {
filename = "ti-dm/j784s4/ipc_echo_testb_mcu1_0_release_strip.xer5f";
optional;
};
};
tispl {
insert-template = <&ti_spl>;
};
u-boot {
insert-template = <&u_boot>;
};
tispl-unsigned {
insert-template = <&ti_spl_unsigned>;
};
u-boot-unsigned {
insert-template = <&u_boot_unsigned>;
};
};
#endif
/ {
memory@80000000 {
bootph-all;