diff mbox series

[3/4] arm: dts: k3-*-binman.dtsi: Clean up and templatize boot binaries

Message ID 20240322131011.1029620-4-n-francis@ti.com
State Changes Requested
Delegated to: Tom Rini
Headers show
Series Cleanup K3 binman templating | expand

Commit Message

Neha Malcom Francis March 22, 2024, 1:10 p.m. UTC
Clean up templatized boot binaries for all K3 boards. This includes
modifying the k3-binman.dtsi to use SPL_BOARD_DTB, BOARD_DESCRIPTION and
UBOOT_BOARD_DESCRIPTION from the files that include it to further reuse
code.

All k3-<soc>-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>
---
 arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi  | 161 +---------
 arch/arm/dts/k3-am625-phycore-som-binman.dtsi | 291 +----------------
 arch/arm/dts/k3-am625-r5-beagleplay.dts       |  39 ---
 arch/arm/dts/k3-am625-sk-binman.dtsi          | 148 +--------
 arch/arm/dts/k3-am625-sk-u-boot.dtsi          |  42 +++
 .../dts/k3-am625-verdin-wifi-dev-binman.dtsi  | 296 +-----------------
 arch/arm/dts/k3-am62a-sk-binman.dtsi          | 146 +--------
 arch/arm/dts/k3-am62a7-sk-u-boot.dtsi         |  42 +++
 arch/arm/dts/k3-am642-evm-u-boot.dtsi         |  42 +++
 arch/arm/dts/k3-am642-sk-u-boot.dtsi          |  42 +++
 arch/arm/dts/k3-am64x-binman.dtsi             | 239 +-------------
 arch/arm/dts/k3-am654-base-board-u-boot.dtsi  |  49 +++
 arch/arm/dts/k3-am65x-binman.dtsi             | 144 +--------
 .../arm/dts/k3-am68-sk-base-board-u-boot.dtsi |  26 ++
 arch/arm/dts/k3-am69-sk-u-boot.dtsi           |  31 +-
 arch/arm/dts/k3-binman.dtsi                   |  96 ++++++
 arch/arm/dts/k3-j7200-binman.dtsi             | 145 +--------
 .../k3-j7200-common-proc-board-u-boot.dtsi    |  40 +++
 .../dts/k3-j721e-beagleboneai64-u-boot.dtsi   | 154 +--------
 arch/arm/dts/k3-j721e-binman.dtsi             | 262 +++-------------
 .../k3-j721e-common-proc-board-u-boot.dtsi    |  84 +++++
 arch/arm/dts/k3-j721e-r5-beagleboneai64.dts   |  91 +-----
 arch/arm/dts/k3-j721e-sk-u-boot.dtsi          |  84 +++++
 arch/arm/dts/k3-j721s2-binman.dtsi            | 231 +-------------
 .../k3-j721s2-common-proc-board-u-boot.dtsi   |  42 +++
 arch/arm/dts/k3-j784s4-binman.dtsi            | 154 +--------
 arch/arm/dts/k3-j784s4-evm-u-boot.dtsi        |  42 +++
 27 files changed, 858 insertions(+), 2305 deletions(-)

Comments

Andrew Davis March 23, 2024, 4:07 p.m. UTC | #1
On 3/22/24 8:10 AM, Neha Malcom Francis wrote:
> Clean up templatized boot binaries for all K3 boards. This includes
> modifying the k3-binman.dtsi to use SPL_BOARD_DTB, BOARD_DESCRIPTION and
> UBOOT_BOARD_DESCRIPTION from the files that include it to further reuse
> code.
> 
> All k3-<soc>-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>
> ---
>   arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi  | 161 +---------
>   arch/arm/dts/k3-am625-phycore-som-binman.dtsi | 291 +----------------
>   arch/arm/dts/k3-am625-r5-beagleplay.dts       |  39 ---
>   arch/arm/dts/k3-am625-sk-binman.dtsi          | 148 +--------
>   arch/arm/dts/k3-am625-sk-u-boot.dtsi          |  42 +++
>   .../dts/k3-am625-verdin-wifi-dev-binman.dtsi  | 296 +-----------------
>   arch/arm/dts/k3-am62a-sk-binman.dtsi          | 146 +--------
>   arch/arm/dts/k3-am62a7-sk-u-boot.dtsi         |  42 +++
>   arch/arm/dts/k3-am642-evm-u-boot.dtsi         |  42 +++
>   arch/arm/dts/k3-am642-sk-u-boot.dtsi          |  42 +++
>   arch/arm/dts/k3-am64x-binman.dtsi             | 239 +-------------
>   arch/arm/dts/k3-am654-base-board-u-boot.dtsi  |  49 +++
>   arch/arm/dts/k3-am65x-binman.dtsi             | 144 +--------
>   .../arm/dts/k3-am68-sk-base-board-u-boot.dtsi |  26 ++
>   arch/arm/dts/k3-am69-sk-u-boot.dtsi           |  31 +-
>   arch/arm/dts/k3-binman.dtsi                   |  96 ++++++
>   arch/arm/dts/k3-j7200-binman.dtsi             | 145 +--------
>   .../k3-j7200-common-proc-board-u-boot.dtsi    |  40 +++
>   .../dts/k3-j721e-beagleboneai64-u-boot.dtsi   | 154 +--------
>   arch/arm/dts/k3-j721e-binman.dtsi             | 262 +++-------------
>   .../k3-j721e-common-proc-board-u-boot.dtsi    |  84 +++++
>   arch/arm/dts/k3-j721e-r5-beagleboneai64.dts   |  91 +-----
>   arch/arm/dts/k3-j721e-sk-u-boot.dtsi          |  84 +++++
>   arch/arm/dts/k3-j721s2-binman.dtsi            | 231 +-------------
>   .../k3-j721s2-common-proc-board-u-boot.dtsi   |  42 +++
>   arch/arm/dts/k3-j784s4-binman.dtsi            | 154 +--------
>   arch/arm/dts/k3-j784s4-evm-u-boot.dtsi        |  42 +++
>   27 files changed, 858 insertions(+), 2305 deletions(-)
> 
> diff --git a/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi b/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
> index cca0f44b7d8..fc1898f1510 100644
> --- a/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
> +++ b/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
> @@ -6,7 +6,11 @@
>    * Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation
>    */
>   
> -#include "k3-binman.dtsi"
> +#define SPL_BOARD_DTB "spl/dts/k3-am625-beagleplay.dtb"
> +#define BOARD_DESCRIPTION "k3-am625-beagleplay"
> +#define UBOOT_BOARD_DESCRIPTION "U-Boot for AM625 BeaglePlay"
> +
> +#include "k3-am625-sk-binman.dtsi"

Why is the BeaglePlay board including the SK binman file? Looks
like you made `k3-am625-sk-binman.dtsi` into the SoC general
file, which is good, but you should probably also rename it
here to match: `k3-am625-binman.dtsi`.

Andrew
Neha Malcom Francis March 25, 2024, 3:35 a.m. UTC | #2
Hi Andrew

On 23/03/24 21:37, Andrew Davis wrote:
> On 3/22/24 8:10 AM, Neha Malcom Francis wrote:
>> Clean up templatized boot binaries for all K3 boards. This includes
>> modifying the k3-binman.dtsi to use SPL_BOARD_DTB, BOARD_DESCRIPTION and
>> UBOOT_BOARD_DESCRIPTION from the files that include it to further reuse
>> code.
>>
>> All k3-<soc>-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>
>> ---
>>   arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi  | 161 +---------
>>   arch/arm/dts/k3-am625-phycore-som-binman.dtsi | 291 +----------------
>>   arch/arm/dts/k3-am625-r5-beagleplay.dts       |  39 ---
>>   arch/arm/dts/k3-am625-sk-binman.dtsi          | 148 +--------
>>   arch/arm/dts/k3-am625-sk-u-boot.dtsi          |  42 +++
>>   .../dts/k3-am625-verdin-wifi-dev-binman.dtsi  | 296 +-----------------
>>   arch/arm/dts/k3-am62a-sk-binman.dtsi          | 146 +--------
>>   arch/arm/dts/k3-am62a7-sk-u-boot.dtsi         |  42 +++
>>   arch/arm/dts/k3-am642-evm-u-boot.dtsi         |  42 +++
>>   arch/arm/dts/k3-am642-sk-u-boot.dtsi          |  42 +++
>>   arch/arm/dts/k3-am64x-binman.dtsi             | 239 +-------------
>>   arch/arm/dts/k3-am654-base-board-u-boot.dtsi  |  49 +++
>>   arch/arm/dts/k3-am65x-binman.dtsi             | 144 +--------
>>   .../arm/dts/k3-am68-sk-base-board-u-boot.dtsi |  26 ++
>>   arch/arm/dts/k3-am69-sk-u-boot.dtsi           |  31 +-
>>   arch/arm/dts/k3-binman.dtsi                   |  96 ++++++
>>   arch/arm/dts/k3-j7200-binman.dtsi             | 145 +--------
>>   .../k3-j7200-common-proc-board-u-boot.dtsi    |  40 +++
>>   .../dts/k3-j721e-beagleboneai64-u-boot.dtsi   | 154 +--------
>>   arch/arm/dts/k3-j721e-binman.dtsi             | 262 +++-------------
>>   .../k3-j721e-common-proc-board-u-boot.dtsi    |  84 +++++
>>   arch/arm/dts/k3-j721e-r5-beagleboneai64.dts   |  91 +-----
>>   arch/arm/dts/k3-j721e-sk-u-boot.dtsi          |  84 +++++
>>   arch/arm/dts/k3-j721s2-binman.dtsi            | 231 +-------------
>>   .../k3-j721s2-common-proc-board-u-boot.dtsi   |  42 +++
>>   arch/arm/dts/k3-j784s4-binman.dtsi            | 154 +--------
>>   arch/arm/dts/k3-j784s4-evm-u-boot.dtsi        |  42 +++
>>   27 files changed, 858 insertions(+), 2305 deletions(-)
>>
>> diff --git a/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi 
>> b/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
>> index cca0f44b7d8..fc1898f1510 100644
>> --- a/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
>> +++ b/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
>> @@ -6,7 +6,11 @@
>>    * Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation
>>    */
>> -#include "k3-binman.dtsi"
>> +#define SPL_BOARD_DTB "spl/dts/k3-am625-beagleplay.dtb"
>> +#define BOARD_DESCRIPTION "k3-am625-beagleplay"
>> +#define UBOOT_BOARD_DESCRIPTION "U-Boot for AM625 BeaglePlay"
>> +
>> +#include "k3-am625-sk-binman.dtsi"
> 
> Why is the BeaglePlay board including the SK binman file? Looks
> like you made `k3-am625-sk-binman.dtsi` into the SoC general
> file, which is good, but you should probably also rename it
> here to match: `k3-am625-binman.dtsi`.
> 
> Andrew


Yes intention was that it's going to be the SoC file, didn't catch on the 
filename, will change it in v2. Thanks!
Manorit Chawdhry March 25, 2024, 9:20 a.m. UTC | #3
Hi Neha,

On 18:40-20240322, Neha Malcom Francis wrote:
> Clean up templatized boot binaries for all K3 boards. This includes
> modifying the k3-binman.dtsi to use SPL_BOARD_DTB, BOARD_DESCRIPTION and
> UBOOT_BOARD_DESCRIPTION from the files that include it to further reuse
> code.
> 
> All k3-<soc>-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>
> ---
>  arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi  | 161 +---------
>  arch/arm/dts/k3-am625-phycore-som-binman.dtsi | 291 +----------------
>  arch/arm/dts/k3-am625-r5-beagleplay.dts       |  39 ---
>  arch/arm/dts/k3-am625-sk-binman.dtsi          | 148 +--------
>  arch/arm/dts/k3-am625-sk-u-boot.dtsi          |  42 +++
>  .../dts/k3-am625-verdin-wifi-dev-binman.dtsi  | 296 +-----------------
>  arch/arm/dts/k3-am62a-sk-binman.dtsi          | 146 +--------
>  arch/arm/dts/k3-am62a7-sk-u-boot.dtsi         |  42 +++
>  arch/arm/dts/k3-am642-evm-u-boot.dtsi         |  42 +++
>  arch/arm/dts/k3-am642-sk-u-boot.dtsi          |  42 +++
>  arch/arm/dts/k3-am64x-binman.dtsi             | 239 +-------------
>  arch/arm/dts/k3-am654-base-board-u-boot.dtsi  |  49 +++
>  arch/arm/dts/k3-am65x-binman.dtsi             | 144 +--------
>  .../arm/dts/k3-am68-sk-base-board-u-boot.dtsi |  26 ++
>  arch/arm/dts/k3-am69-sk-u-boot.dtsi           |  31 +-
>  arch/arm/dts/k3-binman.dtsi                   |  96 ++++++
>  arch/arm/dts/k3-j7200-binman.dtsi             | 145 +--------
>  .../k3-j7200-common-proc-board-u-boot.dtsi    |  40 +++
>  .../dts/k3-j721e-beagleboneai64-u-boot.dtsi   | 154 +--------
>  arch/arm/dts/k3-j721e-binman.dtsi             | 262 +++-------------
>  .../k3-j721e-common-proc-board-u-boot.dtsi    |  84 +++++
>  arch/arm/dts/k3-j721e-r5-beagleboneai64.dts   |  91 +-----
>  arch/arm/dts/k3-j721e-sk-u-boot.dtsi          |  84 +++++
>  arch/arm/dts/k3-j721s2-binman.dtsi            | 231 +-------------
>  .../k3-j721s2-common-proc-board-u-boot.dtsi   |  42 +++
>  arch/arm/dts/k3-j784s4-binman.dtsi            | 154 +--------
>  arch/arm/dts/k3-j784s4-evm-u-boot.dtsi        |  42 +++
>  27 files changed, 858 insertions(+), 2305 deletions(-)
> 

[ snip ]

> diff --git a/arch/arm/dts/k3-am625-phycore-som-binman.dtsi b/arch/arm/dts/k3-am625-phycore-som-binman.dtsi
> index ed50bfeb031..14fc8468c56 100644
> --- a/arch/arm/dts/k3-am625-phycore-som-binman.dtsi
> +++ b/arch/arm/dts/k3-am625-phycore-som-binman.dtsi
> @@ -6,309 +6,48 @@
>   * Author: Wadim Egorov <w.egorov@phytec.de>
>   */
>  
> -#include "k3-binman.dtsi"
> +#define SPL_BOARD_DTB "spl/dts/k3-am625-phyboard-lyra-rdk.dtb"
> +#define BOARD_DESCRIPTION "k3-am625-phyboard-lyra-rdk"
> +#define UBOOT_BOARD_DESCRIPTION "U-Boot for phyCORE-AM62x"
> +
> +#include "k3-am625-sk-binman.dtsi"
>  
>  #ifdef CONFIG_TARGET_PHYCORE_AM62X_R5
>  &binman {
>  	tiboot3-am62x-hs-phycore-som.bin {
>  		filename = "tiboot3-am62x-hs-phycore-som.bin";
> -		ti-secure-rom {
> -			content = <&u_boot_spl>, <&ti_fs_enc>, <&combined_tifs_cfg>,
> -				<&combined_dm_cfg>, <&sysfw_inner_cert>;
> -			combined;
> -			dm-data;
> -			sysfw-inner-cert;
> -			keyfile = "custMpk.pem";
> -			sw-rev = <1>;
> -			content-sbl = <&u_boot_spl>;
> -			content-sysfw = <&ti_fs_enc>;
> -			content-sysfw-data = <&combined_tifs_cfg>;
> -			content-sysfw-inner-cert = <&sysfw_inner_cert>;
> -			content-dm-data = <&combined_dm_cfg>;

I was looking between SoCs that we have and all this data seems common
to me on first glance, like there is only some delta in tiboot3
templates as well and maybe we can minimise those as well if am not
missing anything.

in k3-binman.dtsi:

tiboot3_combined_gp: template-x {
	section {
		ti-secure-rom {
			content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
				<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
			combined;
			dm-data;
			content-sbl = <&u_boot_spl_unsigned>;
			content-sysfw = <&ti_fs_gp>;
			content-sysfw-data = <&combined_tifs_cfg_gp>;
			content-dm-data = <&combined_dm_cfg_gp>;
			sw-rev = <1>;
			keyfile = "ti-degenerate-key.pem";
		};
		u_boot_spl_unsigned: u-boot-spl {
			no-expanded;
		};
		ti_fs_gp: ti-fs-gp.bin {
			type = "blob-ext";
			optional;
		};
		combined_tifs_cfg_gp: combined-tifs-cfg-gp.bin {
			filename = "combined-tifs-cfg.bin";
			type = "blob-ext";
		};
		combined_dm_cfg_gp: combined-dm-cfg-gp.bin {
			filename = "combined-dm-cfg.bin";
			type = "blob-ext";
		};
	};
};

in k3-j721s2-binman.dtsi:

tiboot3_j721s2_gp_evm {
	insert-template = <&tiboot3_combined_gp>;
	filename = "tiboot3-j721s2-gp-evm.bin";
	section {
		ti-secure-rom {
			load = <0x41c00000>;
			load-sysfw = <0x40000>;
			load-sysfw-data = <0x67000>;
			load-dm-data = <0x41c80000>;
		}
		ti_fs_gp {
			filename = "ti-sysfw/ti-fs-firmware-j721s2-gp.bin";
		}
	}
};

in k3-j784s4-binman.dtsi:

tiboot3_j784s4_gp_evm {
	insert-template = <&tiboot3_combined_gp>;
	filename = "tiboot3-j784s4-gp-evm.bin";
	section {
		ti-secure-rom {
			load = <0x41c00000>;
			load-sysfw = <0x40000>;
			load-sysfw-data = <0x66800>;
			load-dm-data = <0x41c80000>;
		}
		ti_fs_gp {
			filename = "ti-sysfw/ti-fs-firmware-j784s4-gp.bin";
		}
	}

}

Similar re-use can be done for other GP devices as well based on
this template and similar can be extended for other variants HS-FS,
HS-SE and other SR variants. This might end up a bit complicated as well
as we do have a lot of combinations of combined boot and other boot
variants that we have so let me know if you don't find improvement with
this but I feel this might help in more readability and understanding
for the initial bootloader template designs as well.

Regards,
Manorit

> -			load = <0x43c00000>;
> -			load-sysfw = <0x40000>;
> -			load-sysfw-data = <0x67000>;
> -			load-dm-data = <0x43c3a800>;


> -		};
> -		u_boot_spl: u-boot-spl {
> -			no-expanded;
> -		};
> -		ti_fs_enc: ti-fs-enc.bin {
> -			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-enc.bin";
> -			type = "blob-ext";
> -			optional;
> -		};
> -		combined_tifs_cfg: combined-tifs-cfg.bin {
> -			filename = "combined-tifs-cfg.bin";
> -			type = "blob-ext";
> -		};
> -		sysfw_inner_cert: sysfw-inner-cert {
> -			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-cert.bin";
> -			type = "blob-ext";
> -			optional;
> -		};
> -		combined_dm_cfg: combined-dm-cfg.bin {
> -			filename = "combined-dm-cfg.bin";
> -			type = "blob-ext";
> -		};
> +		insert-template = <&tiboot3_am62x_hs>;
>  	};
> -};
>  
> -&binman {
>  	tiboot3-am62x-hs-fs-phycore-som.bin {
>  		filename = "tiboot3-am62x-hs-fs-phycore-som.bin";
> -		symlink = "tiboot3.bin";
> -		ti-secure-rom {
> -			content = <&u_boot_spl_fs>, <&ti_fs_enc_fs>, <&combined_tifs_cfg_fs>,
> -				<&combined_dm_cfg_fs>, <&sysfw_inner_cert_fs>;
> -			combined;
> -			dm-data;
> -			sysfw-inner-cert;
> -			keyfile = "custMpk.pem";
> -			sw-rev = <1>;
> -			content-sbl = <&u_boot_spl_fs>;
> -			content-sysfw = <&ti_fs_enc_fs>;
> -			content-sysfw-data = <&combined_tifs_cfg_fs>;
> -			content-sysfw-inner-cert = <&sysfw_inner_cert_fs>;
> -			content-dm-data = <&combined_dm_cfg_fs>;
> -			load = <0x43c00000>;
> -			load-sysfw = <0x40000>;
> -			load-sysfw-data = <0x67000>;
> -			load-dm-data = <0x43c3a800>;
> -		};
> -		u_boot_spl_fs: u-boot-spl {
> -			no-expanded;
> -		};
> -		ti_fs_enc_fs: ti-fs-enc.bin {
> -			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-fs-enc.bin";
> -			type = "blob-ext";
> -			optional;
> -		};
> -		combined_tifs_cfg_fs: combined-tifs-cfg.bin {
> -			filename = "combined-tifs-cfg.bin";
> -			type = "blob-ext";
> -		};
> -		sysfw_inner_cert_fs: sysfw-inner-cert {
> -			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-fs-cert.bin";
> -			type = "blob-ext";
> -			optional;
> -		};
> -		combined_dm_cfg_fs: combined-dm-cfg.bin {
> -			filename = "combined-dm-cfg.bin";
> -			type = "blob-ext";
> -		};
> +		insert-template = <&tiboot3_am62x_hs_fs>;
>  	};
> -};
>  
> -&binman {
>  	tiboot3-am62x-gp-phycore-som.bin {
>  		filename = "tiboot3-am62x-gp-phycore-som.bin";
> -		ti-secure-rom {
> -			content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
> -				<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
> -			combined;
> -			dm-data;
> -			content-sbl = <&u_boot_spl_unsigned>;
> -			load = <0x43c00000>;
> -			content-sysfw = <&ti_fs_gp>;
> -			load-sysfw = <0x40000>;
> -			content-sysfw-data = <&combined_tifs_cfg_gp>;
> -			load-sysfw-data = <0x67000>;
> -			content-dm-data = <&combined_dm_cfg_gp>;
> -			load-dm-data = <0x43c3a800>;
> -			sw-rev = <1>;
> -			keyfile = "ti-degenerate-key.pem";
> -		};
> -		u_boot_spl_unsigned: u-boot-spl {
> -			no-expanded;
> -		};
> -		ti_fs_gp: ti-fs-gp.bin {
> -			filename = "ti-sysfw/ti-fs-firmware-am62x-gp.bin";
> -			type = "blob-ext";
> -			optional;
> -		};
> -		combined_tifs_cfg_gp: combined-tifs-cfg-gp.bin {
> -			filename = "combined-tifs-cfg.bin";
> -			type = "blob-ext";
> -		};
> -		combined_dm_cfg_gp: combined-dm-cfg-gp.bin {
> -			filename = "combined-dm-cfg.bin";
> -			type = "blob-ext";
> -		};
> +		insert-template = <&tiboot3_am62x_gp>;
>  	};
>  };
>  #endif /* CONFIG_TARGET_PHYCORE_AM62X_R5 */
Neha Malcom Francis March 25, 2024, 10:20 a.m. UTC | #4
Hi Manorit

On 25/03/24 14:50, Manorit Chawdhry wrote:
> Hi Neha,
> 
> On 18:40-20240322, Neha Malcom Francis wrote:
>> Clean up templatized boot binaries for all K3 boards. This includes
>> modifying the k3-binman.dtsi to use SPL_BOARD_DTB, BOARD_DESCRIPTION and
>> UBOOT_BOARD_DESCRIPTION from the files that include it to further reuse
>> code.
>>
>> All k3-<soc>-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>
>> ---
>>   arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi  | 161 +---------
>>   arch/arm/dts/k3-am625-phycore-som-binman.dtsi | 291 +----------------
>>   arch/arm/dts/k3-am625-r5-beagleplay.dts       |  39 ---
>>   arch/arm/dts/k3-am625-sk-binman.dtsi          | 148 +--------
>>   arch/arm/dts/k3-am625-sk-u-boot.dtsi          |  42 +++
>>   .../dts/k3-am625-verdin-wifi-dev-binman.dtsi  | 296 +-----------------
>>   arch/arm/dts/k3-am62a-sk-binman.dtsi          | 146 +--------
>>   arch/arm/dts/k3-am62a7-sk-u-boot.dtsi         |  42 +++
>>   arch/arm/dts/k3-am642-evm-u-boot.dtsi         |  42 +++
>>   arch/arm/dts/k3-am642-sk-u-boot.dtsi          |  42 +++
>>   arch/arm/dts/k3-am64x-binman.dtsi             | 239 +-------------
>>   arch/arm/dts/k3-am654-base-board-u-boot.dtsi  |  49 +++
>>   arch/arm/dts/k3-am65x-binman.dtsi             | 144 +--------
>>   .../arm/dts/k3-am68-sk-base-board-u-boot.dtsi |  26 ++
>>   arch/arm/dts/k3-am69-sk-u-boot.dtsi           |  31 +-
>>   arch/arm/dts/k3-binman.dtsi                   |  96 ++++++
>>   arch/arm/dts/k3-j7200-binman.dtsi             | 145 +--------
>>   .../k3-j7200-common-proc-board-u-boot.dtsi    |  40 +++
>>   .../dts/k3-j721e-beagleboneai64-u-boot.dtsi   | 154 +--------
>>   arch/arm/dts/k3-j721e-binman.dtsi             | 262 +++-------------
>>   .../k3-j721e-common-proc-board-u-boot.dtsi    |  84 +++++
>>   arch/arm/dts/k3-j721e-r5-beagleboneai64.dts   |  91 +-----
>>   arch/arm/dts/k3-j721e-sk-u-boot.dtsi          |  84 +++++
>>   arch/arm/dts/k3-j721s2-binman.dtsi            | 231 +-------------
>>   .../k3-j721s2-common-proc-board-u-boot.dtsi   |  42 +++
>>   arch/arm/dts/k3-j784s4-binman.dtsi            | 154 +--------
>>   arch/arm/dts/k3-j784s4-evm-u-boot.dtsi        |  42 +++
>>   27 files changed, 858 insertions(+), 2305 deletions(-)
>>
> 
> [ snip ]
> 
>> diff --git a/arch/arm/dts/k3-am625-phycore-som-binman.dtsi b/arch/arm/dts/k3-am625-phycore-som-binman.dtsi
>> index ed50bfeb031..14fc8468c56 100644
>> --- a/arch/arm/dts/k3-am625-phycore-som-binman.dtsi
>> +++ b/arch/arm/dts/k3-am625-phycore-som-binman.dtsi
>> @@ -6,309 +6,48 @@
>>    * Author: Wadim Egorov <w.egorov@phytec.de>
>>    */
>>   
>> -#include "k3-binman.dtsi"
>> +#define SPL_BOARD_DTB "spl/dts/k3-am625-phyboard-lyra-rdk.dtb"
>> +#define BOARD_DESCRIPTION "k3-am625-phyboard-lyra-rdk"
>> +#define UBOOT_BOARD_DESCRIPTION "U-Boot for phyCORE-AM62x"
>> +
>> +#include "k3-am625-sk-binman.dtsi"
>>   
>>   #ifdef CONFIG_TARGET_PHYCORE_AM62X_R5
>>   &binman {
>>   	tiboot3-am62x-hs-phycore-som.bin {
>>   		filename = "tiboot3-am62x-hs-phycore-som.bin";
>> -		ti-secure-rom {
>> -			content = <&u_boot_spl>, <&ti_fs_enc>, <&combined_tifs_cfg>,
>> -				<&combined_dm_cfg>, <&sysfw_inner_cert>;
>> -			combined;
>> -			dm-data;
>> -			sysfw-inner-cert;
>> -			keyfile = "custMpk.pem";
>> -			sw-rev = <1>;
>> -			content-sbl = <&u_boot_spl>;
>> -			content-sysfw = <&ti_fs_enc>;
>> -			content-sysfw-data = <&combined_tifs_cfg>;
>> -			content-sysfw-inner-cert = <&sysfw_inner_cert>;
>> -			content-dm-data = <&combined_dm_cfg>;
> 
> I was looking between SoCs that we have and all this data seems common
> to me on first glance, like there is only some delta in tiboot3
> templates as well and maybe we can minimise those as well if am not
> missing anything.
> 
> in k3-binman.dtsi:
> 
> tiboot3_combined_gp: template-x {
> 	section {
> 		ti-secure-rom {
> 			content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
> 				<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
> 			combined;
> 			dm-data;
> 			content-sbl = <&u_boot_spl_unsigned>;
> 			content-sysfw = <&ti_fs_gp>;
> 			content-sysfw-data = <&combined_tifs_cfg_gp>;
> 			content-dm-data = <&combined_dm_cfg_gp>;
> 			sw-rev = <1>;
> 			keyfile = "ti-degenerate-key.pem";
> 		};
> 		u_boot_spl_unsigned: u-boot-spl {
> 			no-expanded;
> 		};
> 		ti_fs_gp: ti-fs-gp.bin {
> 			type = "blob-ext";
> 			optional;
> 		};
> 		combined_tifs_cfg_gp: combined-tifs-cfg-gp.bin {
> 			filename = "combined-tifs-cfg.bin";
> 			type = "blob-ext";
> 		};
> 		combined_dm_cfg_gp: combined-dm-cfg-gp.bin {
> 			filename = "combined-dm-cfg.bin";
> 			type = "blob-ext";
> 		};
> 	};
> };
> 
> in k3-j721s2-binman.dtsi:
> 
> tiboot3_j721s2_gp_evm {
> 	insert-template = <&tiboot3_combined_gp>;
> 	filename = "tiboot3-j721s2-gp-evm.bin";
> 	section {
> 		ti-secure-rom {
> 			load = <0x41c00000>;
> 			load-sysfw = <0x40000>;
> 			load-sysfw-data = <0x67000>;
> 			load-dm-data = <0x41c80000>;
> 		}
> 		ti_fs_gp {
> 			filename = "ti-sysfw/ti-fs-firmware-j721s2-gp.bin";
> 		}
> 	}
> };
> 
> in k3-j784s4-binman.dtsi:
> 
> tiboot3_j784s4_gp_evm {
> 	insert-template = <&tiboot3_combined_gp>;
> 	filename = "tiboot3-j784s4-gp-evm.bin";
> 	section {
> 		ti-secure-rom {
> 			load = <0x41c00000>;
> 			load-sysfw = <0x40000>;
> 			load-sysfw-data = <0x66800>;
> 			load-dm-data = <0x41c80000>;
> 		}
> 		ti_fs_gp {
> 			filename = "ti-sysfw/ti-fs-firmware-j784s4-gp.bin";
> 		}
> 	}
> 
> }
> 
> Similar re-use can be done for other GP devices as well based on
> this template and similar can be extended for other variants HS-FS,
> HS-SE and other SR variants. This might end up a bit complicated as well
> as we do have a lot of combinations of combined boot and other boot
> variants that we have so let me know if you don't find improvement with
> this but I feel this might help in more readability and understanding
> for the initial bootloader template designs as well.
> 
> Regards,
> Manorit

Yes I think we can pull these changes into k3-binman.dtsi as well, will reduce 
code duplication a great deal. Thanks!

> 
>> -			load = <0x43c00000>;
>> -			load-sysfw = <0x40000>;
>> -			load-sysfw-data = <0x67000>;
>> -			load-dm-data = <0x43c3a800>;
> 
> 
>> -		};
>> -		u_boot_spl: u-boot-spl {
>> -			no-expanded;
>> -		};
>> -		ti_fs_enc: ti-fs-enc.bin {
>> -			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-enc.bin";
>> -			type = "blob-ext";
>> -			optional;
>> -		};
>> -		combined_tifs_cfg: combined-tifs-cfg.bin {
>> -			filename = "combined-tifs-cfg.bin";
>> -			type = "blob-ext";
>> -		};
>> -		sysfw_inner_cert: sysfw-inner-cert {
>> -			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-cert.bin";
>> -			type = "blob-ext";
>> -			optional;
>> -		};
>> -		combined_dm_cfg: combined-dm-cfg.bin {
>> -			filename = "combined-dm-cfg.bin";
>> -			type = "blob-ext";
>> -		};
>> +		insert-template = <&tiboot3_am62x_hs>;
>>   	};
>> -};
>>   
>> -&binman {
>>   	tiboot3-am62x-hs-fs-phycore-som.bin {
>>   		filename = "tiboot3-am62x-hs-fs-phycore-som.bin";
>> -		symlink = "tiboot3.bin";
>> -		ti-secure-rom {
>> -			content = <&u_boot_spl_fs>, <&ti_fs_enc_fs>, <&combined_tifs_cfg_fs>,
>> -				<&combined_dm_cfg_fs>, <&sysfw_inner_cert_fs>;
>> -			combined;
>> -			dm-data;
>> -			sysfw-inner-cert;
>> -			keyfile = "custMpk.pem";
>> -			sw-rev = <1>;
>> -			content-sbl = <&u_boot_spl_fs>;
>> -			content-sysfw = <&ti_fs_enc_fs>;
>> -			content-sysfw-data = <&combined_tifs_cfg_fs>;
>> -			content-sysfw-inner-cert = <&sysfw_inner_cert_fs>;
>> -			content-dm-data = <&combined_dm_cfg_fs>;
>> -			load = <0x43c00000>;
>> -			load-sysfw = <0x40000>;
>> -			load-sysfw-data = <0x67000>;
>> -			load-dm-data = <0x43c3a800>;
>> -		};
>> -		u_boot_spl_fs: u-boot-spl {
>> -			no-expanded;
>> -		};
>> -		ti_fs_enc_fs: ti-fs-enc.bin {
>> -			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-fs-enc.bin";
>> -			type = "blob-ext";
>> -			optional;
>> -		};
>> -		combined_tifs_cfg_fs: combined-tifs-cfg.bin {
>> -			filename = "combined-tifs-cfg.bin";
>> -			type = "blob-ext";
>> -		};
>> -		sysfw_inner_cert_fs: sysfw-inner-cert {
>> -			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-fs-cert.bin";
>> -			type = "blob-ext";
>> -			optional;
>> -		};
>> -		combined_dm_cfg_fs: combined-dm-cfg.bin {
>> -			filename = "combined-dm-cfg.bin";
>> -			type = "blob-ext";
>> -		};
>> +		insert-template = <&tiboot3_am62x_hs_fs>;
>>   	};
>> -};
>>   
>> -&binman {
>>   	tiboot3-am62x-gp-phycore-som.bin {
>>   		filename = "tiboot3-am62x-gp-phycore-som.bin";
>> -		ti-secure-rom {
>> -			content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
>> -				<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
>> -			combined;
>> -			dm-data;
>> -			content-sbl = <&u_boot_spl_unsigned>;
>> -			load = <0x43c00000>;
>> -			content-sysfw = <&ti_fs_gp>;
>> -			load-sysfw = <0x40000>;
>> -			content-sysfw-data = <&combined_tifs_cfg_gp>;
>> -			load-sysfw-data = <0x67000>;
>> -			content-dm-data = <&combined_dm_cfg_gp>;
>> -			load-dm-data = <0x43c3a800>;
>> -			sw-rev = <1>;
>> -			keyfile = "ti-degenerate-key.pem";
>> -		};
>> -		u_boot_spl_unsigned: u-boot-spl {
>> -			no-expanded;
>> -		};
>> -		ti_fs_gp: ti-fs-gp.bin {
>> -			filename = "ti-sysfw/ti-fs-firmware-am62x-gp.bin";
>> -			type = "blob-ext";
>> -			optional;
>> -		};
>> -		combined_tifs_cfg_gp: combined-tifs-cfg-gp.bin {
>> -			filename = "combined-tifs-cfg.bin";
>> -			type = "blob-ext";
>> -		};
>> -		combined_dm_cfg_gp: combined-dm-cfg-gp.bin {
>> -			filename = "combined-dm-cfg.bin";
>> -			type = "blob-ext";
>> -		};
>> +		insert-template = <&tiboot3_am62x_gp>;
>>   	};
>>   };
>>   #endif /* CONFIG_TARGET_PHYCORE_AM62X_R5 */
Nishanth Menon March 26, 2024, 12:27 p.m. UTC | #5
On 18:40-20240322, Neha Malcom Francis wrote:
> Clean up templatized boot binaries for all K3 boards. This includes
> modifying the k3-binman.dtsi to use SPL_BOARD_DTB, BOARD_DESCRIPTION and
> UBOOT_BOARD_DESCRIPTION from the files that include it to further reuse
> code.
> 
> All k3-<soc>-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>
> ---
>  arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi  | 161 +---------
>  arch/arm/dts/k3-am625-phycore-som-binman.dtsi | 291 +----------------
>  arch/arm/dts/k3-am625-r5-beagleplay.dts       |  39 ---
>  arch/arm/dts/k3-am625-sk-binman.dtsi          | 148 +--------
>  arch/arm/dts/k3-am625-sk-u-boot.dtsi          |  42 +++
>  .../dts/k3-am625-verdin-wifi-dev-binman.dtsi  | 296 +-----------------
>  arch/arm/dts/k3-am62a-sk-binman.dtsi          | 146 +--------
>  arch/arm/dts/k3-am62a7-sk-u-boot.dtsi         |  42 +++
>  arch/arm/dts/k3-am642-evm-u-boot.dtsi         |  42 +++
>  arch/arm/dts/k3-am642-sk-u-boot.dtsi          |  42 +++
>  arch/arm/dts/k3-am64x-binman.dtsi             | 239 +-------------
>  arch/arm/dts/k3-am654-base-board-u-boot.dtsi  |  49 +++
>  arch/arm/dts/k3-am65x-binman.dtsi             | 144 +--------
>  .../arm/dts/k3-am68-sk-base-board-u-boot.dtsi |  26 ++
>  arch/arm/dts/k3-am69-sk-u-boot.dtsi           |  31 +-
>  arch/arm/dts/k3-binman.dtsi                   |  96 ++++++
>  arch/arm/dts/k3-j7200-binman.dtsi             | 145 +--------
>  .../k3-j7200-common-proc-board-u-boot.dtsi    |  40 +++
>  .../dts/k3-j721e-beagleboneai64-u-boot.dtsi   | 154 +--------
>  arch/arm/dts/k3-j721e-binman.dtsi             | 262 +++-------------
>  .../k3-j721e-common-proc-board-u-boot.dtsi    |  84 +++++
>  arch/arm/dts/k3-j721e-r5-beagleboneai64.dts   |  91 +-----
>  arch/arm/dts/k3-j721e-sk-u-boot.dtsi          |  84 +++++
>  arch/arm/dts/k3-j721s2-binman.dtsi            | 231 +-------------
>  .../k3-j721s2-common-proc-board-u-boot.dtsi   |  42 +++
>  arch/arm/dts/k3-j784s4-binman.dtsi            | 154 +--------
>  arch/arm/dts/k3-j784s4-evm-u-boot.dtsi        |  42 +++
>  27 files changed, 858 insertions(+), 2305 deletions(-)
> 
> diff --git a/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi b/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
> index cca0f44b7d8..fc1898f1510 100644
> --- a/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
> +++ b/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
> @@ -6,7 +6,11 @@
>   * Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation
>   */
>  
> -#include "k3-binman.dtsi"
> +#define SPL_BOARD_DTB "spl/dts/k3-am625-beagleplay.dtb"
> +#define BOARD_DESCRIPTION "k3-am625-beagleplay"
> +#define UBOOT_BOARD_DESCRIPTION "U-Boot for AM625 BeaglePlay"
> +
> +#include "k3-am625-sk-binman.dtsi"

Drop the "sk" ?
Neha Malcom Francis March 26, 2024, 12:33 p.m. UTC | #6
Hi Nishanth

On 26/03/24 17:57, Nishanth Menon wrote:
> On 18:40-20240322, Neha Malcom Francis wrote:
>> Clean up templatized boot binaries for all K3 boards. This includes
>> modifying the k3-binman.dtsi to use SPL_BOARD_DTB, BOARD_DESCRIPTION and
>> UBOOT_BOARD_DESCRIPTION from the files that include it to further reuse
>> code.
>>
>> All k3-<soc>-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>
>> ---
>>   arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi  | 161 +---------
>>   arch/arm/dts/k3-am625-phycore-som-binman.dtsi | 291 +----------------
>>   arch/arm/dts/k3-am625-r5-beagleplay.dts       |  39 ---
>>   arch/arm/dts/k3-am625-sk-binman.dtsi          | 148 +--------
>>   arch/arm/dts/k3-am625-sk-u-boot.dtsi          |  42 +++
>>   .../dts/k3-am625-verdin-wifi-dev-binman.dtsi  | 296 +-----------------
>>   arch/arm/dts/k3-am62a-sk-binman.dtsi          | 146 +--------
>>   arch/arm/dts/k3-am62a7-sk-u-boot.dtsi         |  42 +++
>>   arch/arm/dts/k3-am642-evm-u-boot.dtsi         |  42 +++
>>   arch/arm/dts/k3-am642-sk-u-boot.dtsi          |  42 +++
>>   arch/arm/dts/k3-am64x-binman.dtsi             | 239 +-------------
>>   arch/arm/dts/k3-am654-base-board-u-boot.dtsi  |  49 +++
>>   arch/arm/dts/k3-am65x-binman.dtsi             | 144 +--------
>>   .../arm/dts/k3-am68-sk-base-board-u-boot.dtsi |  26 ++
>>   arch/arm/dts/k3-am69-sk-u-boot.dtsi           |  31 +-
>>   arch/arm/dts/k3-binman.dtsi                   |  96 ++++++
>>   arch/arm/dts/k3-j7200-binman.dtsi             | 145 +--------
>>   .../k3-j7200-common-proc-board-u-boot.dtsi    |  40 +++
>>   .../dts/k3-j721e-beagleboneai64-u-boot.dtsi   | 154 +--------
>>   arch/arm/dts/k3-j721e-binman.dtsi             | 262 +++-------------
>>   .../k3-j721e-common-proc-board-u-boot.dtsi    |  84 +++++
>>   arch/arm/dts/k3-j721e-r5-beagleboneai64.dts   |  91 +-----
>>   arch/arm/dts/k3-j721e-sk-u-boot.dtsi          |  84 +++++
>>   arch/arm/dts/k3-j721s2-binman.dtsi            | 231 +-------------
>>   .../k3-j721s2-common-proc-board-u-boot.dtsi   |  42 +++
>>   arch/arm/dts/k3-j784s4-binman.dtsi            | 154 +--------
>>   arch/arm/dts/k3-j784s4-evm-u-boot.dtsi        |  42 +++
>>   27 files changed, 858 insertions(+), 2305 deletions(-)
>>
>> diff --git a/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi b/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
>> index cca0f44b7d8..fc1898f1510 100644
>> --- a/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
>> +++ b/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
>> @@ -6,7 +6,11 @@
>>    * Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation
>>    */
>>   
>> -#include "k3-binman.dtsi"
>> +#define SPL_BOARD_DTB "spl/dts/k3-am625-beagleplay.dtb"
>> +#define BOARD_DESCRIPTION "k3-am625-beagleplay"
>> +#define UBOOT_BOARD_DESCRIPTION "U-Boot for AM625 BeaglePlay"
>> +
>> +#include "k3-am625-sk-binman.dtsi"
> 
> Drop the "sk" ?
> 

Yes Andrew had pointed it out earlier, will make the change in the next version.
Michael Walle March 26, 2024, 1:48 p.m. UTC | #7
Hi,

On Fri Mar 22, 2024 at 2:10 PM CET, Neha Malcom Francis wrote:
> Clean up templatized boot binaries for all K3 boards. This includes
> modifying the k3-binman.dtsi to use SPL_BOARD_DTB, BOARD_DESCRIPTION and
> UBOOT_BOARD_DESCRIPTION from the files that include it to further reuse
> code.
>
> All k3-<soc>-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.

I appreciate the cleanup. But as far as I can see, a board might
only have one device tree. How would that work if the uboot proper
must support multiple device trees?

Thanks,
-michael
Neha Malcom Francis March 27, 2024, 7:01 a.m. UTC | #8
Hi Michael

On 26/03/24 19:18, Michael Walle wrote:
> Hi,
> 
> On Fri Mar 22, 2024 at 2:10 PM CET, Neha Malcom Francis wrote:
>> Clean up templatized boot binaries for all K3 boards. This includes
>> modifying the k3-binman.dtsi to use SPL_BOARD_DTB, BOARD_DESCRIPTION and
>> UBOOT_BOARD_DESCRIPTION from the files that include it to further reuse
>> code.
>>
>> All k3-<soc>-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.
> 
> I appreciate the cleanup. But as far as I can see, a board might
> only have one device tree. How would that work if the uboot proper
> must support multiple device trees?
> 

 From the discussions that took place in the mailing list [1] the consensus 
seems to be to not focus on multiple devicetree support as it leads to confusion 
for downstream users.

> Thanks,
> -michael

[1] https://lore.kernel.org/all/20230908183124.27zctk6ishfd7ics@canopener/
Michael Walle March 27, 2024, 2:33 p.m. UTC | #9
Hi,

On Wed Mar 27, 2024 at 8:01 AM CET, Neha Malcom Francis wrote:
> On 26/03/24 19:18, Michael Walle wrote:
> > On Fri Mar 22, 2024 at 2:10 PM CET, Neha Malcom Francis wrote:
> >> Clean up templatized boot binaries for all K3 boards. This includes
> >> modifying the k3-binman.dtsi to use SPL_BOARD_DTB, BOARD_DESCRIPTION and
> >> UBOOT_BOARD_DESCRIPTION from the files that include it to further reuse
> >> code.
> >>
> >> All k3-<soc>-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.
> > 
> > I appreciate the cleanup. But as far as I can see, a board might
> > only have one device tree. How would that work if the uboot proper
> > must support multiple device trees?
> > 
>
>  From the discussions that took place in the mailing list [1] the consensus 
> seems to be to not focus on multiple devicetree support as it leads to confusion 
> for downstream users.

What are users in this regard? I don't think you'd confuse
developers.

Anyway, I'm planning on upstreaming a TI board which will have
different memory configurations and different variants of the board.
And on top of that, it will just be a base board and there will
likely be some carrier device trees (overlay? I'm not sure yet).

As far as I can tell, you've put the memory configuration into the
device tree, so I'll probably need to switch between them somehow.
Also, regarding the board variants, I'll probably need to choose
between multiple device trees. That is invisible to the user,
because u-boot will choose the correct DTB according a board
strapping, which btw. works really fine, see for example
(boards/kontron/sl28/spl.c:board_fit_config_name_match).

I don't think it makes much sense to hardcode your generic
*-binman.dtsi to just one FIT configuration. I'd rather see a split
between generic things which are shared across all boards and board
specifics, like the FIT configuration. I mean I could just copy all
the binman and tiboot3.bin and tispl.bin magic and put it into my
own "-u-boot.dtsi". But I'm not sure that will make things any
better.

-michael
Neha Malcom Francis March 28, 2024, 11:18 a.m. UTC | #10
Hi Michael

On 27-Mar-24 8:03 PM, Michael Walle wrote:
> Hi,
> 
> On Wed Mar 27, 2024 at 8:01 AM CET, Neha Malcom Francis wrote:
>> On 26/03/24 19:18, Michael Walle wrote:
>>> On Fri Mar 22, 2024 at 2:10 PM CET, Neha Malcom Francis wrote:
>>>> Clean up templatized boot binaries for all K3 boards. This includes
>>>> modifying the k3-binman.dtsi to use SPL_BOARD_DTB, BOARD_DESCRIPTION and
>>>> UBOOT_BOARD_DESCRIPTION from the files that include it to further reuse
>>>> code.
>>>>
>>>> All k3-<soc>-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.
>>>
>>> I appreciate the cleanup. But as far as I can see, a board might
>>> only have one device tree. How would that work if the uboot proper
>>> must support multiple device trees?
>>>
>>
>>   From the discussions that took place in the mailing list [1] the consensus
>> seems to be to not focus on multiple devicetree support as it leads to confusion
>> for downstream users.
> 
> What are users in this regard? I don't think you'd confuse
> developers.
> 
> Anyway, I'm planning on upstreaming a TI board which will have
> different memory configurations and different variants of the board.

I am assuming you are reusing an existing TI SoC?

> And on top of that, it will just be a base board and there will
> likely be some carrier device trees (overlay? I'm not sure yet).
> 
> As far as I can tell, you've put the memory configuration into the
> device tree, so I'll probably need to switch between them somehow.

The "k3-<soc>-ddr.dtsi" file will be present in your k3-<board>r5.dts 
which makes sense, the memory configuration depends on the board.

> Also, regarding the board variants, I'll probably need to choose
> between multiple device trees. That is invisible to the user,
> because u-boot will choose the correct DTB according a board
> strapping, which btw. works really fine, see for example
> (boards/kontron/sl28/spl.c:board_fit_config_name_match).

Again, this is assuming that there is some HW blown register available 
for the board to use (or in our earlier K3 case, the EEPROM) but that is 
not necessarily true every time.

> 
> I don't think it makes much sense to hardcode your generic
> *-binman.dtsi to just one FIT configuration. I'd rather see a split
> between generic things which are shared across all boards and board
> specifics, like the FIT configuration. I mean I could just copy all

Correct me if I'm wrong, but my understanding is that you would want to 
add more FDT blobs in the *-binman.dtsi correct? That is still possible, 
adding another "fdt-1" and "conf-1" in the

Something like this in your <board>-u-boot.dtsi,

tispl {
	insert-template = <&ti_spl>;
	fit {
		images {
			fdt-1 {
				...
			};
		};
		configurations {
			conf-1 {
				...
			};
		};
	};
};

provided you have the support to handle this multi-dtb FIT. But as far 
as reusing the k3-binman.dtsi and k3-<soc>-binman.dtsi goes; you should 
be able to do it.

> the binman and tiboot3.bin and tispl.bin magic and put it into my
> own "-u-boot.dtsi". But I'm not sure that will make things any
> better.
> 
> -michael
Michael Walle March 28, 2024, 11:56 a.m. UTC | #11
Hi,

On Thu Mar 28, 2024 at 12:18 PM CET, Neha Malcom Francis wrote:
> On 27-Mar-24 8:03 PM, Michael Walle wrote:
> > On Wed Mar 27, 2024 at 8:01 AM CET, Neha Malcom Francis wrote:
> >> On 26/03/24 19:18, Michael Walle wrote:
> >>> On Fri Mar 22, 2024 at 2:10 PM CET, Neha Malcom Francis wrote:
> >>>> Clean up templatized boot binaries for all K3 boards. This includes
> >>>> modifying the k3-binman.dtsi to use SPL_BOARD_DTB, BOARD_DESCRIPTION and
> >>>> UBOOT_BOARD_DESCRIPTION from the files that include it to further reuse
> >>>> code.
> >>>>
> >>>> All k3-<soc>-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.
> >>>
> >>> I appreciate the cleanup. But as far as I can see, a board might
> >>> only have one device tree. How would that work if the uboot proper
> >>> must support multiple device trees?
> >>>
> >>
> >>   From the discussions that took place in the mailing list [1] the consensus
> >> seems to be to not focus on multiple devicetree support as it leads to confusion
> >> for downstream users.
> > 
> > What are users in this regard? I don't think you'd confuse
> > developers.
> > 
> > Anyway, I'm planning on upstreaming a TI board which will have
> > different memory configurations and different variants of the board.
>
> I am assuming you are reusing an existing TI SoC?

Not really yet. It's the j722s.


> > And on top of that, it will just be a base board and there will
> > likely be some carrier device trees (overlay? I'm not sure yet).
> > 
> > As far as I can tell, you've put the memory configuration into the
> > device tree, so I'll probably need to switch between them somehow.
>
> The "k3-<soc>-ddr.dtsi" file will be present in your k3-<board>r5.dts 
> which makes sense, the memory configuration depends on the board.

And one board might have multiple configuration depending on the
variant of the board. Typically, one board is available with
different memory options. i.e. 1GiB, 4GiB and so on. The actual RAM
chips can come from different manufacturers. So all all, I presume
there will be different RAM settings, i.e. different
k3-<soc>-ddr.dtsi. But I have to switch between the setting during
runtime because there will be only one boot image for that board.

> > Also, regarding the board variants, I'll probably need to choose
> > between multiple device trees. That is invisible to the user,
> > because u-boot will choose the correct DTB according a board
> > strapping, which btw. works really fine, see for example
> > (boards/kontron/sl28/spl.c:board_fit_config_name_match).
>
> Again, this is assuming that there is some HW blown register available 
> for the board to use (or in our earlier K3 case, the EEPROM) but that is 
> not necessarily true every time.

No, that is of course board dependent. It is just an example that
there are boards with more than one DTB.

Let's step back a bit. Right now, there is
  k3-<soc>-<board>-binman.dtsi
which is fine. But it seems, that TI is heading towards a common
  k3-<soc>-binman.dtsi
which is intended to be used by all the boards that are using that
particular SoC, correct me if I'm wrong here. Now the problem with
that is that you hardcode the FIT configuations which are really
board dependent and assume that there will be exactly one DTB per
board, i.e. your "#define SPL_BOARD_DTB" etc.

Thus, what I was trying to say is that you should split all the
board independent configuration (dt fragments) from the board
specific configuration.

And again, of course I could just ignore the k3-<soc>-binman.dtsi
and just use a suitable copy "k3-<soc>-<myboard>-binman.dtsi" for my
board. But as I said, I'm not sure, this is the way to go and I have
a slight feeling I will be asked to reuse the "k3-<soc>-binman.dtsi"
when I submit my board support.

> > 
> > I don't think it makes much sense to hardcode your generic
> > *-binman.dtsi to just one FIT configuration. I'd rather see a split
> > between generic things which are shared across all boards and board
> > specifics, like the FIT configuration. I mean I could just copy all
>
> Correct me if I'm wrong, but my understanding is that you would want to 
> add more FDT blobs in the *-binman.dtsi correct? That is still possible, 
> adding another "fdt-1" and "conf-1" in the
>
> Something like this in your <board>-u-boot.dtsi,
>
> tispl {
> 	insert-template = <&ti_spl>;
> 	fit {
> 		images {
> 			fdt-1 {
> 				...
> 			};
> 		};
> 		configurations {
> 			conf-1 {
> 				...
> 			};
> 		};
> 	};
> };

Then you have the information at two places. One being the "#define
SPL_BOARD_DTB" stuff and the other one being in this additional DT
fragment. That is really confusing.

> provided you have the support to handle this multi-dtb FIT. But as far 
> as reusing the k3-binman.dtsi and k3-<soc>-binman.dtsi goes; you should 
> be able to do it.
>
> > the binman and tiboot3.bin and tispl.bin magic and put it into my
> > own "-u-boot.dtsi". But I'm not sure that will make things any
> > better.
> > 
> > -michael
Neha Malcom Francis April 3, 2024, 5:32 a.m. UTC | #12
Hi Michael

Sorry for the late response.

On 28/03/24 17:26, Michael Walle wrote:
> Hi,
> 
> On Thu Mar 28, 2024 at 12:18 PM CET, Neha Malcom Francis wrote:
>> On 27-Mar-24 8:03 PM, Michael Walle wrote:
>>> On Wed Mar 27, 2024 at 8:01 AM CET, Neha Malcom Francis wrote:
>>>> On 26/03/24 19:18, Michael Walle wrote:
>>>>> On Fri Mar 22, 2024 at 2:10 PM CET, Neha Malcom Francis wrote:
>>>>>> Clean up templatized boot binaries for all K3 boards. This includes
>>>>>> modifying the k3-binman.dtsi to use SPL_BOARD_DTB, BOARD_DESCRIPTION and
>>>>>> UBOOT_BOARD_DESCRIPTION from the files that include it to further reuse
>>>>>> code.
>>>>>>
>>>>>> All k3-<soc>-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.
>>>>>
>>>>> I appreciate the cleanup. But as far as I can see, a board might
>>>>> only have one device tree. How would that work if the uboot proper
>>>>> must support multiple device trees?
>>>>>
>>>>
>>>>    From the discussions that took place in the mailing list [1] the consensus
>>>> seems to be to not focus on multiple devicetree support as it leads to confusion
>>>> for downstream users.
>>>
>>> What are users in this regard? I don't think you'd confuse
>>> developers.
>>>
>>> Anyway, I'm planning on upstreaming a TI board which will have
>>> different memory configurations and different variants of the board.
>>
>> I am assuming you are reusing an existing TI SoC?
> 
> Not really yet. It's the j722s.
> 
> 
>>> And on top of that, it will just be a base board and there will
>>> likely be some carrier device trees (overlay? I'm not sure yet).
>>>
>>> As far as I can tell, you've put the memory configuration into the
>>> device tree, so I'll probably need to switch between them somehow.
>>
>> The "k3-<soc>-ddr.dtsi" file will be present in your k3-<board>r5.dts
>> which makes sense, the memory configuration depends on the board.
> 

k3-<board>-ddr.dtsi* (e.g J721E EVM vs. SK boards consume different memory 
configurations.

> And one board might have multiple configuration depending on the
> variant of the board. Typically, one board is available with
> different memory options. i.e. 1GiB, 4GiB and so on. The actual RAM
> chips can come from different manufacturers. So all all, I presume
> there will be different RAM settings, i.e. different
> k3-<soc>-ddr.dtsi. But I have to switch between the setting during
> runtime because there will be only one boot image for that board.

This is a runtime dynamic DDR configuration support you are describing correct? 
This means you would be including all the supported memory option DTSIs in your 
k3-<board>-r5.dts correct and probably do some board magic code in the SPL DDR 
driver to choose the DTB. How is this affecting the packing of the final 
bootloader which will anyways pack the whole R5 DTB?
> 
>>> Also, regarding the board variants, I'll probably need to choose
>>> between multiple device trees. That is invisible to the user,
>>> because u-boot will choose the correct DTB according a board
>>> strapping, which btw. works really fine, see for example
>>> (boards/kontron/sl28/spl.c:board_fit_config_name_match).
>>
>> Again, this is assuming that there is some HW blown register available
>> for the board to use (or in our earlier K3 case, the EEPROM) but that is
>> not necessarily true every time.
> 
> No, that is of course board dependent. It is just an example that
> there are boards with more than one DTB.
> 
> Let's step back a bit. Right now, there is
>    k3-<soc>-<board>-binman.dtsi
> which is fine. But it seems, that TI is heading towards a common
>    k3-<soc>-binman.dtsi
> which is intended to be used by all the boards that are using that
> particular SoC, correct me if I'm wrong here. Now the problem with
> that is that you hardcode the FIT configuations which are really
> board dependent and assume that there will be exactly one DTB per
> board, i.e. your "#define SPL_BOARD_DTB" etc.
> 

Correct, but as I mentioned in the earlier message, if your board supports more 
than 1 FIT configuration, you can easily extend the image and add more 
configurations.

> Thus, what I was trying to say is that you should split all the
> board independent configuration (dt fragments) from the board
> specific configuration.
> 
> And again, of course I could just ignore the k3-<soc>-binman.dtsi
> and just use a suitable copy "k3-<soc>-<myboard>-binman.dtsi" for my
> board. But as I said, I'm not sure, this is the way to go and I have
> a slight feeling I will be asked to reuse the "k3-<soc>-binman.dtsi"
> when I submit my board support.
> 
>>>
>>> I don't think it makes much sense to hardcode your generic
>>> *-binman.dtsi to just one FIT configuration. I'd rather see a split
>>> between generic things which are shared across all boards and board
>>> specifics, like the FIT configuration. I mean I could just copy all
>>
>> Correct me if I'm wrong, but my understanding is that you would want to
>> add more FDT blobs in the *-binman.dtsi correct? That is still possible,
>> adding another "fdt-1" and "conf-1" in the
>>
>> Something like this in your <board>-u-boot.dtsi,
>>
>> tispl {
>> 	insert-template = <&ti_spl>;
>> 	fit {
>> 		images {
>> 			fdt-1 {
>> 				...
>> 			};
>> 		};
>> 		configurations {
>> 			conf-1 {
>> 				...
>> 			};
>> 		};
>> 	};
>> };
> 
> Then you have the information at two places. One being the "#define
> SPL_BOARD_DTB" stuff and the other one being in this additional DT
> fragment. That is really confusing.
> 

Hm... maybe. I personally don't see it as confusing. Even when picking between 
multiple DTBs, you will have a default DTB in any case, marking that as a macro 
wouldn't be confusing right? We'll need to get a third opinion on here then, I 
had seen your ping on IRC [1], putting it here for the others as well.

>> provided you have the support to handle this multi-dtb FIT. But as far
>> as reusing the k3-binman.dtsi and k3-<soc>-binman.dtsi goes; you should
>> be able to do it.
>>
>>> the binman and tiboot3.bin and tispl.bin magic and put it into my
>>> own "-u-boot.dtsi". But I'm not sure that will make things any
>>> better.
>>>
>>> -michael
> 

[1] https://libera.irclog.whitequark.org/u-boot/2024-03-28
Manorit Chawdhry April 3, 2024, 10:34 a.m. UTC | #13
Hi Michael,

On 11:02-20240403, Neha Malcom Francis wrote:
> Hi Michael
> 
> Sorry for the late response.
> 
> On 28/03/24 17:26, Michael Walle wrote:
> > Hi,
> > 
> > On Thu Mar 28, 2024 at 12:18 PM CET, Neha Malcom Francis wrote:
> > > On 27-Mar-24 8:03 PM, Michael Walle wrote:
> > > > On Wed Mar 27, 2024 at 8:01 AM CET, Neha Malcom Francis wrote:
> > > > > On 26/03/24 19:18, Michael Walle wrote:
> > > > > > On Fri Mar 22, 2024 at 2:10 PM CET, Neha Malcom Francis wrote:
> > > > > > > Clean up templatized boot binaries for all K3 boards. This includes
> > > > > > > modifying the k3-binman.dtsi to use SPL_BOARD_DTB, BOARD_DESCRIPTION and
> > > > > > > UBOOT_BOARD_DESCRIPTION from the files that include it to further reuse
> > > > > > > code.
> > > > > > > 
> > > > > > > All k3-<soc>-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.
> > > > > > 
> > > > > > I appreciate the cleanup. But as far as I can see, a board might
> > > > > > only have one device tree. How would that work if the uboot proper
> > > > > > must support multiple device trees?
> > > > > > 
> > > > > 
> > > > >    From the discussions that took place in the mailing list [1] the consensus
> > > > > seems to be to not focus on multiple devicetree support as it leads to confusion
> > > > > for downstream users.
> > > > 
> > > > What are users in this regard? I don't think you'd confuse
> > > > developers.
> > > > 
> > > > Anyway, I'm planning on upstreaming a TI board which will have
> > > > different memory configurations and different variants of the board.
> > > 
> > > I am assuming you are reusing an existing TI SoC?
> > 
> > Not really yet. It's the j722s.
> > 
> > 
> > > > And on top of that, it will just be a base board and there will
> > > > likely be some carrier device trees (overlay? I'm not sure yet).
> > > > 
> > > > As far as I can tell, you've put the memory configuration into the
> > > > device tree, so I'll probably need to switch between them somehow.
> > > 
> > > The "k3-<soc>-ddr.dtsi" file will be present in your k3-<board>r5.dts
> > > which makes sense, the memory configuration depends on the board.
> > 
> 
> k3-<board>-ddr.dtsi* (e.g J721E EVM vs. SK boards consume different memory
> configurations.
> 
> > And one board might have multiple configuration depending on the
> > variant of the board. Typically, one board is available with
> > different memory options. i.e. 1GiB, 4GiB and so on. The actual RAM
> > chips can come from different manufacturers. So all all, I presume
> > there will be different RAM settings, i.e. different
> > k3-<soc>-ddr.dtsi. But I have to switch between the setting during
> > runtime because there will be only one boot image for that board.
> 
> This is a runtime dynamic DDR configuration support you are describing
> correct? This means you would be including all the supported memory option
> DTSIs in your k3-<board>-r5.dts correct and probably do some board magic
> code in the SPL DDR driver to choose the DTB. How is this affecting the
> packing of the final bootloader which will anyways pack the whole R5 DTB?
> > 
> > > > Also, regarding the board variants, I'll probably need to choose
> > > > between multiple device trees. That is invisible to the user,
> > > > because u-boot will choose the correct DTB according a board
> > > > strapping, which btw. works really fine, see for example
> > > > (boards/kontron/sl28/spl.c:board_fit_config_name_match).
> > > 
> > > Again, this is assuming that there is some HW blown register available
> > > for the board to use (or in our earlier K3 case, the EEPROM) but that is
> > > not necessarily true every time.
> > 
> > No, that is of course board dependent. It is just an example that
> > there are boards with more than one DTB.
> > 
> > Let's step back a bit. Right now, there is
> >    k3-<soc>-<board>-binman.dtsi
> > which is fine. But it seems, that TI is heading towards a common
> >    k3-<soc>-binman.dtsi
> > which is intended to be used by all the boards that are using that
> > particular SoC, correct me if I'm wrong here. Now the problem with
> > that is that you hardcode the FIT configuations which are really
> > board dependent and assume that there will be exactly one DTB per
> > board, i.e. your "#define SPL_BOARD_DTB" etc.
> > 
> 
> Correct, but as I mentioned in the earlier message, if your board supports
> more than 1 FIT configuration, you can easily extend the image and add more
> configurations.
> 
> > Thus, what I was trying to say is that you should split all the
> > board independent configuration (dt fragments) from the board
> > specific configuration.
> > 
> > And again, of course I could just ignore the k3-<soc>-binman.dtsi
> > and just use a suitable copy "k3-<soc>-<myboard>-binman.dtsi" for my
> > board. But as I said, I'm not sure, this is the way to go and I have
> > a slight feeling I will be asked to reuse the "k3-<soc>-binman.dtsi"
> > when I submit my board support.
> > 
> > > > 
> > > > I don't think it makes much sense to hardcode your generic
> > > > *-binman.dtsi to just one FIT configuration. I'd rather see a split
> > > > between generic things which are shared across all boards and board
> > > > specifics, like the FIT configuration. I mean I could just copy all
> > > 
> > > Correct me if I'm wrong, but my understanding is that you would want to
> > > add more FDT blobs in the *-binman.dtsi correct? That is still possible,
> > > adding another "fdt-1" and "conf-1" in the
> > > 
> > > Something like this in your <board>-u-boot.dtsi,
> > > 
> > > tispl {
> > > 	insert-template = <&ti_spl>;
> > > 	fit {
> > > 		images {
> > > 			fdt-1 {
> > > 				...
> > > 			};
> > > 		};
> > > 		configurations {
> > > 			conf-1 {
> > > 				...
> > > 			};
> > > 		};
> > > 	};
> > > };
> > 
> > Then you have the information at two places. One being the "#define
> > SPL_BOARD_DTB" stuff and the other one being in this additional DT
> > fragment. That is really confusing.
> > 
> 
> Hm... maybe. I personally don't see it as confusing. Even when picking
> between multiple DTBs, you will have a default DTB in any case, marking that
> as a macro wouldn't be confusing right? We'll need to get a third opinion on
> here then, I had seen your ping on IRC [1], putting it here for the others
> as well.
> 

As I see it, it's not like we are making the fdt-0 non overridable, you
can still override it in your configs to make it cleaner if you want for
your board template, I don't think that -

tispl {
 	insert-template = <&ti_spl>;
 	fit {
 		images {
 			fdt-0 {
				... 
			};
 			fdt-1 {
 				...
 			};
 		};
 		configurations {
			conf-0 {
				...
			};
 			conf-1 {
 				...
 			};
 		};
 	};
};

is not doable. It might be a bit duplicate but if I think about it but
we are not losing out on extending the templates for multiple DTBs even
with this design. I know it might not be what you want but I feel that
for single DTB it's really convenient with the macro stuff and we don't
have to override any of the other binman nodes.

Regards,
Manorit

> > > provided you have the support to handle this multi-dtb FIT. But as far
> > > as reusing the k3-binman.dtsi and k3-<soc>-binman.dtsi goes; you should
> > > be able to do it.
> > > 
> > > > the binman and tiboot3.bin and tispl.bin magic and put it into my
> > > > own "-u-boot.dtsi". But I'm not sure that will make things any
> > > > better.
> > > > 
> > > > -michael
> > 
> 
> [1] https://libera.irclog.whitequark.org/u-boot/2024-03-28
> 
> -- 
> Thanking You
> Neha Malcom Francis
Michael Walle April 3, 2024, 3:51 p.m. UTC | #14
Hi,

> > > > > And on top of that, it will just be a base board and there will
> > > > > likely be some carrier device trees (overlay? I'm not sure yet).
> > > > > 
> > > > > As far as I can tell, you've put the memory configuration into the
> > > > > device tree, so I'll probably need to switch between them somehow.
> > > > 
> > > > The "k3-<soc>-ddr.dtsi" file will be present in your k3-<board>r5.dts
> > > > which makes sense, the memory configuration depends on the board.
> > > 
> > 
> > k3-<board>-ddr.dtsi* (e.g J721E EVM vs. SK boards consume different memory
> > configurations.

Right.

> > > And one board might have multiple configuration depending on the
> > > variant of the board. Typically, one board is available with
> > > different memory options. i.e. 1GiB, 4GiB and so on. The actual RAM
> > > chips can come from different manufacturers. So all all, I presume
> > > there will be different RAM settings, i.e. different
> > > k3-<soc>-ddr.dtsi. But I have to switch between the setting during
> > > runtime because there will be only one boot image for that board.
> > 
> > This is a runtime dynamic DDR configuration support you are describing
> > correct? This means you would be including all the supported memory option
> > DTSIs in your k3-<board>-r5.dts correct and probably do some board magic
> > code in the SPL DDR driver to choose the DTB. How is this affecting the
> > packing of the final bootloader which will anyways pack the whole R5 DTB?

Correct, the DDR configuration should be chosen at runtime after
reading some board strappings. Unless, it will work with with the
same configuration which seems unlikely to me. But it is not an
unusual configuration I'd say.

I haven't looked into this in detail, but to me it seems not that
obvious how to do that in a generic/upstreamable way. Multiple
device nodes sounds wrong. Thus, I'd likely need different device
trees for the different memory configurations for the R5 SPL. Not
sure that is yet possible with u-boot, though. If you have any
better idea, I'm all ears.

> > > > > Also, regarding the board variants, I'll probably need to choose
> > > > > between multiple device trees. That is invisible to the user,
> > > > > because u-boot will choose the correct DTB according a board
> > > > > strapping, which btw. works really fine, see for example
> > > > > (boards/kontron/sl28/spl.c:board_fit_config_name_match).
> > > > 
> > > > Again, this is assuming that there is some HW blown register available
> > > > for the board to use (or in our earlier K3 case, the EEPROM) but that is
> > > > not necessarily true every time.
> > > 
> > > No, that is of course board dependent. It is just an example that
> > > there are boards with more than one DTB.
> > > 
> > > Let's step back a bit. Right now, there is
> > >    k3-<soc>-<board>-binman.dtsi
> > > which is fine. But it seems, that TI is heading towards a common
> > >    k3-<soc>-binman.dtsi
> > > which is intended to be used by all the boards that are using that
> > > particular SoC, correct me if I'm wrong here. Now the problem with
> > > that is that you hardcode the FIT configuations which are really
> > > board dependent and assume that there will be exactly one DTB per
> > > board, i.e. your "#define SPL_BOARD_DTB" etc.
> > > 
> > 
> > Correct, but as I mentioned in the earlier message, if your board supports
> > more than 1 FIT configuration, you can easily extend the image and add more
> > configurations.
> > 
> > > Thus, what I was trying to say is that you should split all the
> > > board independent configuration (dt fragments) from the board
> > > specific configuration.
> > > 
> > > And again, of course I could just ignore the k3-<soc>-binman.dtsi
> > > and just use a suitable copy "k3-<soc>-<myboard>-binman.dtsi" for my
> > > board. But as I said, I'm not sure, this is the way to go and I have
> > > a slight feeling I will be asked to reuse the "k3-<soc>-binman.dtsi"
> > > when I submit my board support.
> > > 
> > > > > 
> > > > > I don't think it makes much sense to hardcode your generic
> > > > > *-binman.dtsi to just one FIT configuration. I'd rather see a split
> > > > > between generic things which are shared across all boards and board
> > > > > specifics, like the FIT configuration. I mean I could just copy all
> > > > 
> > > > Correct me if I'm wrong, but my understanding is that you would want to
> > > > add more FDT blobs in the *-binman.dtsi correct? That is still possible,
> > > > adding another "fdt-1" and "conf-1" in the
> > > > 
> > > > Something like this in your <board>-u-boot.dtsi,
> > > > 
> > > > tispl {
> > > > 	insert-template = <&ti_spl>;
> > > > 	fit {
> > > > 		images {
> > > > 			fdt-1 {
> > > > 				...
> > > > 			};
> > > > 		};
> > > > 		configurations {
> > > > 			conf-1 {
> > > > 				...
> > > > 			};
> > > > 		};
> > > > 	};
> > > > };
> > > 
> > > Then you have the information at two places. One being the "#define
> > > SPL_BOARD_DTB" stuff and the other one being in this additional DT
> > > fragment. That is really confusing.
> > > 
> > 
> > Hm... maybe. I personally don't see it as confusing. Even when picking
> > between multiple DTBs, you will have a default DTB in any case, marking that
> > as a macro wouldn't be confusing right? We'll need to get a third opinion on
> > here then, I had seen your ping on IRC [1], putting it here for the others
> > as well.
> > 
>
> As I see it, it's not like we are making the fdt-0 non overridable, you
> can still override it in your configs to make it cleaner if you want for
> your board template, I don't think that -

Though it is not overriding but rather merging, correct? So one
would need to first erase the node just to create it again. Which
looks more like a workaround.

> tispl {
>  	insert-template = <&ti_spl>;
>  	fit {
>  		images {
>  			fdt-0 {
> 				... 
> 			};
>  			fdt-1 {
>  				...
>  			};
>  		};
>  		configurations {
> 			conf-0 {
> 				...
> 			};
>  			conf-1 {
>  				...
>  			};
>  		};
>  	};
> };

>
> is not doable. It might be a bit duplicate but if I think about it but
> we are not losing out on extending the templates for multiple DTBs even
> with this design. I know it might not be what you want but I feel that
> for single DTB it's really convenient with the macro stuff and we don't
> have to override any of the other binman nodes.

I've raised my concern about stuffing board dependent stuff into the
now generic "k3-<soc>-binman.dtsi". I get it that it will work for
90% of the boards and that it is very convenient. I'd have rather
seen a split of lets say
  k3-<soc>-binman.dtsi
and
  k3-one-dtb-template-binman.dtsi

All the generic stuff goes into k3-soc-binman.dtsi whereas 90% of
the boards might still use the second dtsi with some define magic.
But it seems you've already made your mind up on that :)

-michael
Matthias Schiffer April 4, 2024, 8:04 a.m. UTC | #15
On Wed, 2024-04-03 at 17:51 +0200, Michael Walle wrote:
> Hi,
> 
> > > > > > And on top of that, it will just be a base board and there will
> > > > > > likely be some carrier device trees (overlay? I'm not sure yet).
> > > > > > 
> > > > > > As far as I can tell, you've put the memory configuration into the
> > > > > > device tree, so I'll probably need to switch between them somehow.
> > > > > 
> > > > > The "k3-<soc>-ddr.dtsi" file will be present in your k3-<board>r5.dts
> > > > > which makes sense, the memory configuration depends on the board.
> > > > 
> > > 
> > > k3-<board>-ddr.dtsi* (e.g J721E EVM vs. SK boards consume different memory
> > > configurations.
> 
> Right.
> 
> > > > And one board might have multiple configuration depending on the
> > > > variant of the board. Typically, one board is available with
> > > > different memory options. i.e. 1GiB, 4GiB and so on. The actual RAM
> > > > chips can come from different manufacturers. So all all, I presume
> > > > there will be different RAM settings, i.e. different
> > > > k3-<soc>-ddr.dtsi. But I have to switch between the setting during
> > > > runtime because there will be only one boot image for that board.
> > > 
> > > This is a runtime dynamic DDR configuration support you are describing
> > > correct? This means you would be including all the supported memory option
> > > DTSIs in your k3-<board>-r5.dts correct and probably do some board magic
> > > code in the SPL DDR driver to choose the DTB. How is this affecting the
> > > packing of the final bootloader which will anyways pack the whole R5 DTB?
> 
> Correct, the DDR configuration should be chosen at runtime after
> reading some board strappings. Unless, it will work with with the
> same configuration which seems unlikely to me. But it is not an
> unusual configuration I'd say.
> 
> I haven't looked into this in detail, but to me it seems not that
> obvious how to do that in a generic/upstreamable way. Multiple
> device nodes sounds wrong. Thus, I'd likely need different device
> trees for the different memory configurations for the R5 SPL. Not
> sure that is yet possible with u-boot, though. If you have any
> better idea, I'm all ears.
> 
> > > > > > Also, regarding the board variants, I'll probably need to choose
> > > > > > between multiple device trees. That is invisible to the user,
> > > > > > because u-boot will choose the correct DTB according a board
> > > > > > strapping, which btw. works really fine, see for example
> > > > > > (boards/kontron/sl28/spl.c:board_fit_config_name_match).
> > > > > 
> > > > > Again, this is assuming that there is some HW blown register available
> > > > > for the board to use (or in our earlier K3 case, the EEPROM) but that is
> > > > > not necessarily true every time.
> > > > 
> > > > No, that is of course board dependent. It is just an example that
> > > > there are boards with more than one DTB.
> > > > 
> > > > Let's step back a bit. Right now, there is
> > > >    k3-<soc>-<board>-binman.dtsi
> > > > which is fine. But it seems, that TI is heading towards a common
> > > >    k3-<soc>-binman.dtsi
> > > > which is intended to be used by all the boards that are using that
> > > > particular SoC, correct me if I'm wrong here. Now the problem with
> > > > that is that you hardcode the FIT configuations which are really
> > > > board dependent and assume that there will be exactly one DTB per
> > > > board, i.e. your "#define SPL_BOARD_DTB" etc.
> > > > 
> > > 
> > > Correct, but as I mentioned in the earlier message, if your board supports
> > > more than 1 FIT configuration, you can easily extend the image and add more
> > > configurations.
> > > 
> > > > Thus, what I was trying to say is that you should split all the
> > > > board independent configuration (dt fragments) from the board
> > > > specific configuration.
> > > > 
> > > > And again, of course I could just ignore the k3-<soc>-binman.dtsi
> > > > and just use a suitable copy "k3-<soc>-<myboard>-binman.dtsi" for my
> > > > board. But as I said, I'm not sure, this is the way to go and I have
> > > > a slight feeling I will be asked to reuse the "k3-<soc>-binman.dtsi"
> > > > when I submit my board support.
> > > > 
> > > > > > 
> > > > > > I don't think it makes much sense to hardcode your generic
> > > > > > *-binman.dtsi to just one FIT configuration. I'd rather see a split
> > > > > > between generic things which are shared across all boards and board
> > > > > > specifics, like the FIT configuration. I mean I could just copy all
> > > > > 
> > > > > Correct me if I'm wrong, but my understanding is that you would want to
> > > > > add more FDT blobs in the *-binman.dtsi correct? That is still possible,
> > > > > adding another "fdt-1" and "conf-1" in the
> > > > > 
> > > > > Something like this in your <board>-u-boot.dtsi,
> > > > > 
> > > > > tispl {
> > > > > 	insert-template = <&ti_spl>;
> > > > > 	fit {
> > > > > 		images {
> > > > > 			fdt-1 {
> > > > > 				...
> > > > > 			};
> > > > > 		};
> > > > > 		configurations {
> > > > > 			conf-1 {
> > > > > 				...
> > > > > 			};
> > > > > 		};
> > > > > 	};
> > > > > };
> > > > 
> > > > Then you have the information at two places. One being the "#define
> > > > SPL_BOARD_DTB" stuff and the other one being in this additional DT
> > > > fragment. That is really confusing.
> > > > 
> > > 
> > > Hm... maybe. I personally don't see it as confusing. Even when picking
> > > between multiple DTBs, you will have a default DTB in any case, marking that
> > > as a macro wouldn't be confusing right? We'll need to get a third opinion on
> > > here then, I had seen your ping on IRC [1], putting it here for the others
> > > as well.
> > > 
> > 
> > As I see it, it's not like we are making the fdt-0 non overridable, you
> > can still override it in your configs to make it cleaner if you want for
> > your board template, I don't think that -
> 
> Though it is not overriding but rather merging, correct? So one
> would need to first erase the node just to create it again. Which
> looks more like a workaround.
> 
> > tispl {
> >  	insert-template = <&ti_spl>;
> >  	fit {
> >  		images {
> >  			fdt-0 {
> > 				... 
> > 			};
> >  			fdt-1 {
> >  				...
> >  			};
> >  		};
> >  		configurations {
> > 			conf-0 {
> > 				...
> > 			};
> >  			conf-1 {
> >  				...
> >  			};
> >  		};
> >  	};
> > };
> 
> > 
> > is not doable. It might be a bit duplicate but if I think about it but
> > we are not losing out on extending the templates for multiple DTBs even
> > with this design. I know it might not be what you want but I feel that
> > for single DTB it's really convenient with the macro stuff and we don't
> > have to override any of the other binman nodes.
> 
> I've raised my concern about stuffing board dependent stuff into the
> now generic "k3-<soc>-binman.dtsi". I get it that it will work for
> 90% of the boards and that it is very convenient. I'd have rather
> seen a split of lets say
>   k3-<soc>-binman.dtsi
> and
>   k3-one-dtb-template-binman.dtsi
> 
> All the generic stuff goes into k3-soc-binman.dtsi whereas 90% of
> the boards might still use the second dtsi with some define magic.
> But it seems you've already made your mind up on that :)
> 
> -michael
> 

My hope would be that we can get rid of board-specific binman configuration in the common case
altogether for the K3 SoC families, using @fdt-SEQ etc. generator sections that will just include
all FDTs configured in Kconfig. 

A while ago [1], this was blocked on ti-secure signing not working with generator sections, and
according to my experiments, this is still the case in U-Boot 2024.01 (and looking at the Git log,
also 2024.04/master/next). Are there still plans to make this work? Are there any other blockers?

Best regards,
Matthias


[1] https://lists.denx.de/pipermail/u-boot/2023-July/525095.html


> 
>
Neha Malcom Francis April 4, 2024, 9:10 a.m. UTC | #16
Hi Matthias

On 04/04/24 13:34, Matthias Schiffer wrote:
> On Wed, 2024-04-03 at 17:51 +0200, Michael Walle wrote:
>> Hi,
>>
>>>>>>> And on top of that, it will just be a base board and there will
>>>>>>> likely be some carrier device trees (overlay? I'm not sure yet).
>>>>>>>
>>>>>>> As far as I can tell, you've put the memory configuration into the
>>>>>>> device tree, so I'll probably need to switch between them somehow.
>>>>>>
>>>>>> The "k3-<soc>-ddr.dtsi" file will be present in your k3-<board>r5.dts
>>>>>> which makes sense, the memory configuration depends on the board.
>>>>>
>>>>
>>>> k3-<board>-ddr.dtsi* (e.g J721E EVM vs. SK boards consume different memory
>>>> configurations.
>>
>> Right.
>>
>>>>> And one board might have multiple configuration depending on the
>>>>> variant of the board. Typically, one board is available with
>>>>> different memory options. i.e. 1GiB, 4GiB and so on. The actual RAM
>>>>> chips can come from different manufacturers. So all all, I presume
>>>>> there will be different RAM settings, i.e. different
>>>>> k3-<soc>-ddr.dtsi. But I have to switch between the setting during
>>>>> runtime because there will be only one boot image for that board.
>>>>
>>>> This is a runtime dynamic DDR configuration support you are describing
>>>> correct? This means you would be including all the supported memory option
>>>> DTSIs in your k3-<board>-r5.dts correct and probably do some board magic
>>>> code in the SPL DDR driver to choose the DTB. How is this affecting the
>>>> packing of the final bootloader which will anyways pack the whole R5 DTB?
>>
>> Correct, the DDR configuration should be chosen at runtime after
>> reading some board strappings. Unless, it will work with with the
>> same configuration which seems unlikely to me. But it is not an
>> unusual configuration I'd say.
>>
>> I haven't looked into this in detail, but to me it seems not that
>> obvious how to do that in a generic/upstreamable way. Multiple
>> device nodes sounds wrong. Thus, I'd likely need different device
>> trees for the different memory configurations for the R5 SPL. Not
>> sure that is yet possible with u-boot, though. If you have any
>> better idea, I'm all ears.
>>
>>>>>>> Also, regarding the board variants, I'll probably need to choose
>>>>>>> between multiple device trees. That is invisible to the user,
>>>>>>> because u-boot will choose the correct DTB according a board
>>>>>>> strapping, which btw. works really fine, see for example
>>>>>>> (boards/kontron/sl28/spl.c:board_fit_config_name_match).
>>>>>>
>>>>>> Again, this is assuming that there is some HW blown register available
>>>>>> for the board to use (or in our earlier K3 case, the EEPROM) but that is
>>>>>> not necessarily true every time.
>>>>>
>>>>> No, that is of course board dependent. It is just an example that
>>>>> there are boards with more than one DTB.
>>>>>
>>>>> Let's step back a bit. Right now, there is
>>>>>     k3-<soc>-<board>-binman.dtsi
>>>>> which is fine. But it seems, that TI is heading towards a common
>>>>>     k3-<soc>-binman.dtsi
>>>>> which is intended to be used by all the boards that are using that
>>>>> particular SoC, correct me if I'm wrong here. Now the problem with
>>>>> that is that you hardcode the FIT configuations which are really
>>>>> board dependent and assume that there will be exactly one DTB per
>>>>> board, i.e. your "#define SPL_BOARD_DTB" etc.
>>>>>
>>>>
>>>> Correct, but as I mentioned in the earlier message, if your board supports
>>>> more than 1 FIT configuration, you can easily extend the image and add more
>>>> configurations.
>>>>
>>>>> Thus, what I was trying to say is that you should split all the
>>>>> board independent configuration (dt fragments) from the board
>>>>> specific configuration.
>>>>>
>>>>> And again, of course I could just ignore the k3-<soc>-binman.dtsi
>>>>> and just use a suitable copy "k3-<soc>-<myboard>-binman.dtsi" for my
>>>>> board. But as I said, I'm not sure, this is the way to go and I have
>>>>> a slight feeling I will be asked to reuse the "k3-<soc>-binman.dtsi"
>>>>> when I submit my board support.
>>>>>
>>>>>>>
>>>>>>> I don't think it makes much sense to hardcode your generic
>>>>>>> *-binman.dtsi to just one FIT configuration. I'd rather see a split
>>>>>>> between generic things which are shared across all boards and board
>>>>>>> specifics, like the FIT configuration. I mean I could just copy all
>>>>>>
>>>>>> Correct me if I'm wrong, but my understanding is that you would want to
>>>>>> add more FDT blobs in the *-binman.dtsi correct? That is still possible,
>>>>>> adding another "fdt-1" and "conf-1" in the
>>>>>>
>>>>>> Something like this in your <board>-u-boot.dtsi,
>>>>>>
>>>>>> tispl {
>>>>>> 	insert-template = <&ti_spl>;
>>>>>> 	fit {
>>>>>> 		images {
>>>>>> 			fdt-1 {
>>>>>> 				...
>>>>>> 			};
>>>>>> 		};
>>>>>> 		configurations {
>>>>>> 			conf-1 {
>>>>>> 				...
>>>>>> 			};
>>>>>> 		};
>>>>>> 	};
>>>>>> };
>>>>>
>>>>> Then you have the information at two places. One being the "#define
>>>>> SPL_BOARD_DTB" stuff and the other one being in this additional DT
>>>>> fragment. That is really confusing.
>>>>>
>>>>
>>>> Hm... maybe. I personally don't see it as confusing. Even when picking
>>>> between multiple DTBs, you will have a default DTB in any case, marking that
>>>> as a macro wouldn't be confusing right? We'll need to get a third opinion on
>>>> here then, I had seen your ping on IRC [1], putting it here for the others
>>>> as well.
>>>>
>>>
>>> As I see it, it's not like we are making the fdt-0 non overridable, you
>>> can still override it in your configs to make it cleaner if you want for
>>> your board template, I don't think that -
>>
>> Though it is not overriding but rather merging, correct? So one
>> would need to first erase the node just to create it again. Which
>> looks more like a workaround.
>>
>>> tispl {
>>>   	insert-template = <&ti_spl>;
>>>   	fit {
>>>   		images {
>>>   			fdt-0 {
>>> 				...
>>> 			};
>>>   			fdt-1 {
>>>   				...
>>>   			};
>>>   		};
>>>   		configurations {
>>> 			conf-0 {
>>> 				...
>>> 			};
>>>   			conf-1 {
>>>   				...
>>>   			};
>>>   		};
>>>   	};
>>> };
>>
>>>
>>> is not doable. It might be a bit duplicate but if I think about it but
>>> we are not losing out on extending the templates for multiple DTBs even
>>> with this design. I know it might not be what you want but I feel that
>>> for single DTB it's really convenient with the macro stuff and we don't
>>> have to override any of the other binman nodes.
>>
>> I've raised my concern about stuffing board dependent stuff into the
>> now generic "k3-<soc>-binman.dtsi". I get it that it will work for
>> 90% of the boards and that it is very convenient. I'd have rather
>> seen a split of lets say
>>    k3-<soc>-binman.dtsi
>> and
>>    k3-one-dtb-template-binman.dtsi
>>
>> All the generic stuff goes into k3-soc-binman.dtsi whereas 90% of
>> the boards might still use the second dtsi with some define magic.
>> But it seems you've already made your mind up on that :)
>>
>> -michael
>>
> 
> My hope would be that we can get rid of board-specific binman configuration in the common case
> altogether for the K3 SoC families, using @fdt-SEQ etc. generator sections that will just include
> all FDTs configured in Kconfig.
> 
> A while ago [1], this was blocked on ti-secure signing not working with generator sections, and
> according to my experiments, this is still the case in U-Boot 2024.01 (and looking at the Git log,
> also 2024.04/master/next). Are there still plans to make this work? Are there any other blockers?
> 
> Best regards,
> Matthias
> 
> 
> [1] https://lists.denx.de/pipermail/u-boot/2023-July/525095.html
> 
> 

Yeah! This was a series that I pushed away to the side when runtime multi-DTB 
selection was removed. You're right, this seems like the only way we can come to 
a common ground.

Let me see if I can bring it back up again, the last blocker was signing not 
working with the generator as you mentioned.

But again in the interest of time... this would mean this cleaning up effort be 
kept on hold. If we can agree to move to using the generator later as the final 
solution, can we pick up this series for now?

>>
>>   
>
Michael Walle April 5, 2024, 7:42 a.m. UTC | #17
Hi,

On Thu Apr 4, 2024 at 11:10 AM CEST, Neha Malcom Francis wrote:
> But again in the interest of time... this would mean this cleaning up effort be 
> kept on hold. If we can agree to move to using the generator later as the final 
> solution, can we pick up this series for now?

Agreed. I just saw the new RFC for the j722s support. It should also
make use of this cleanup then, btw.

-michael
Neha Malcom Francis April 12, 2024, 3:03 a.m. UTC | #18
Hi Michael

On 05/04/24 13:12, Michael Walle wrote:
> Hi,
> 
> On Thu Apr 4, 2024 at 11:10 AM CEST, Neha Malcom Francis wrote:
>> But again in the interest of time... this would mean this cleaning up effort be
>> kept on hold. If we can agree to move to using the generator later as the final
>> solution, can we pick up this series for now?
> 
> Agreed. I just saw the new RFC for the j722s support. It should also
> make use of this cleanup then, btw.
> 

Right, I'll sync with J722S efforts as well.

So is this series good to go?

> -michael
Michael Walle April 12, 2024, 11:43 a.m. UTC | #19
Hi,

On Fri Apr 12, 2024 at 5:03 AM CEST, Neha Malcom Francis wrote:
> On 05/04/24 13:12, Michael Walle wrote:
> > On Thu Apr 4, 2024 at 11:10 AM CEST, Neha Malcom Francis wrote:
> >> But again in the interest of time... this would mean this cleaning up effort be
> >> kept on hold. If we can agree to move to using the generator later as the final
> >> solution, can we pick up this series for now?
> > 
> > Agreed. I just saw the new RFC for the j722s support. It should also
> > make use of this cleanup then, btw.
> > 
>
> Right, I'll sync with J722S efforts as well.
>
> So is this series good to go?

If the ultimate goal is to support the generator, sure.

-michael
diff mbox series

Patch

diff --git a/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi b/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
index cca0f44b7d8..fc1898f1510 100644
--- a/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
+++ b/arch/arm/dts/k3-am625-beagleplay-u-boot.dtsi
@@ -6,7 +6,11 @@ 
  * Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation
  */
 
-#include "k3-binman.dtsi"
+#define SPL_BOARD_DTB "spl/dts/k3-am625-beagleplay.dtb"
+#define BOARD_DESCRIPTION "k3-am625-beagleplay"
+#define UBOOT_BOARD_DESCRIPTION "U-Boot for AM625 BeaglePlay"
+
+#include "k3-am625-sk-binman.dtsi"
 
 / {
 	chosen {
@@ -61,155 +65,24 @@ 
 	>;
 };
 
-#ifdef CONFIG_TARGET_AM625_A53_BEAGLEPLAY
-
-#define SPL_NODTB "spl/u-boot-spl-nodtb.bin"
-#define SPL_AM625_BEAGLEPLAY_DTB "spl/dts/k3-am625-beagleplay.dtb"
-#define UBOOT_NODTB "u-boot-nodtb.bin"
-#define AM625_BEAGLEPLAY_DTB "arch/arm/dts/k3-am625-beagleplay.dtb"
+#ifndef CONFIG_ARM64
 
 &binman {
-	ti-dm {
-		filename = "ti-dm.bin";
-		blob-ext {
-			filename = "ti-dm/am62xx/ipc_echo_testb_mcu1_0_release_strip.xer5f";
-		};
+	tiboot3-am62x-gp {
+		insert-template = <&tiboot3_am62x_gp>;
 	};
+};
 
-	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 = "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";
-					};
-				};
-
-				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-0 {
-					description = "k3-am625-beagleplay";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					spl_am625_bp_dtb_unsigned: blob {
-						filename = SPL_AM625_BEAGLEPLAY_DTB;
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am625-beagleplay";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
-			};
-		};
+#else
+
+&binman {
+	tispl-unsigned {
+		insert-template = <&ti_spl_unsigned>;
 	};
 
-	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-0 {
-					description = "k3-am625-beagleplay";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					am625_bp_dtb_unsigned: blob {
-						filename = AM625_BEAGLEPLAY_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am625-beagleplay";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-			};
-		};
+	u-boot-unsigned {
+		insert-template = <&u_boot_unsigned>;
 	};
 };
+
 #endif
diff --git a/arch/arm/dts/k3-am625-phycore-som-binman.dtsi b/arch/arm/dts/k3-am625-phycore-som-binman.dtsi
index ed50bfeb031..14fc8468c56 100644
--- a/arch/arm/dts/k3-am625-phycore-som-binman.dtsi
+++ b/arch/arm/dts/k3-am625-phycore-som-binman.dtsi
@@ -6,309 +6,48 @@ 
  * Author: Wadim Egorov <w.egorov@phytec.de>
  */
 
-#include "k3-binman.dtsi"
+#define SPL_BOARD_DTB "spl/dts/k3-am625-phyboard-lyra-rdk.dtb"
+#define BOARD_DESCRIPTION "k3-am625-phyboard-lyra-rdk"
+#define UBOOT_BOARD_DESCRIPTION "U-Boot for phyCORE-AM62x"
+
+#include "k3-am625-sk-binman.dtsi"
 
 #ifdef CONFIG_TARGET_PHYCORE_AM62X_R5
 &binman {
 	tiboot3-am62x-hs-phycore-som.bin {
 		filename = "tiboot3-am62x-hs-phycore-som.bin";
-		ti-secure-rom {
-			content = <&u_boot_spl>, <&ti_fs_enc>, <&combined_tifs_cfg>,
-				<&combined_dm_cfg>, <&sysfw_inner_cert>;
-			combined;
-			dm-data;
-			sysfw-inner-cert;
-			keyfile = "custMpk.pem";
-			sw-rev = <1>;
-			content-sbl = <&u_boot_spl>;
-			content-sysfw = <&ti_fs_enc>;
-			content-sysfw-data = <&combined_tifs_cfg>;
-			content-sysfw-inner-cert = <&sysfw_inner_cert>;
-			content-dm-data = <&combined_dm_cfg>;
-			load = <0x43c00000>;
-			load-sysfw = <0x40000>;
-			load-sysfw-data = <0x67000>;
-			load-dm-data = <0x43c3a800>;
-		};
-		u_boot_spl: u-boot-spl {
-			no-expanded;
-		};
-		ti_fs_enc: ti-fs-enc.bin {
-			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-enc.bin";
-			type = "blob-ext";
-			optional;
-		};
-		combined_tifs_cfg: combined-tifs-cfg.bin {
-			filename = "combined-tifs-cfg.bin";
-			type = "blob-ext";
-		};
-		sysfw_inner_cert: sysfw-inner-cert {
-			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-cert.bin";
-			type = "blob-ext";
-			optional;
-		};
-		combined_dm_cfg: combined-dm-cfg.bin {
-			filename = "combined-dm-cfg.bin";
-			type = "blob-ext";
-		};
+		insert-template = <&tiboot3_am62x_hs>;
 	};
-};
 
-&binman {
 	tiboot3-am62x-hs-fs-phycore-som.bin {
 		filename = "tiboot3-am62x-hs-fs-phycore-som.bin";
-		symlink = "tiboot3.bin";
-		ti-secure-rom {
-			content = <&u_boot_spl_fs>, <&ti_fs_enc_fs>, <&combined_tifs_cfg_fs>,
-				<&combined_dm_cfg_fs>, <&sysfw_inner_cert_fs>;
-			combined;
-			dm-data;
-			sysfw-inner-cert;
-			keyfile = "custMpk.pem";
-			sw-rev = <1>;
-			content-sbl = <&u_boot_spl_fs>;
-			content-sysfw = <&ti_fs_enc_fs>;
-			content-sysfw-data = <&combined_tifs_cfg_fs>;
-			content-sysfw-inner-cert = <&sysfw_inner_cert_fs>;
-			content-dm-data = <&combined_dm_cfg_fs>;
-			load = <0x43c00000>;
-			load-sysfw = <0x40000>;
-			load-sysfw-data = <0x67000>;
-			load-dm-data = <0x43c3a800>;
-		};
-		u_boot_spl_fs: u-boot-spl {
-			no-expanded;
-		};
-		ti_fs_enc_fs: ti-fs-enc.bin {
-			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-fs-enc.bin";
-			type = "blob-ext";
-			optional;
-		};
-		combined_tifs_cfg_fs: combined-tifs-cfg.bin {
-			filename = "combined-tifs-cfg.bin";
-			type = "blob-ext";
-		};
-		sysfw_inner_cert_fs: sysfw-inner-cert {
-			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-fs-cert.bin";
-			type = "blob-ext";
-			optional;
-		};
-		combined_dm_cfg_fs: combined-dm-cfg.bin {
-			filename = "combined-dm-cfg.bin";
-			type = "blob-ext";
-		};
+		insert-template = <&tiboot3_am62x_hs_fs>;
 	};
-};
 
-&binman {
 	tiboot3-am62x-gp-phycore-som.bin {
 		filename = "tiboot3-am62x-gp-phycore-som.bin";
-		ti-secure-rom {
-			content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
-				<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
-			combined;
-			dm-data;
-			content-sbl = <&u_boot_spl_unsigned>;
-			load = <0x43c00000>;
-			content-sysfw = <&ti_fs_gp>;
-			load-sysfw = <0x40000>;
-			content-sysfw-data = <&combined_tifs_cfg_gp>;
-			load-sysfw-data = <0x67000>;
-			content-dm-data = <&combined_dm_cfg_gp>;
-			load-dm-data = <0x43c3a800>;
-			sw-rev = <1>;
-			keyfile = "ti-degenerate-key.pem";
-		};
-		u_boot_spl_unsigned: u-boot-spl {
-			no-expanded;
-		};
-		ti_fs_gp: ti-fs-gp.bin {
-			filename = "ti-sysfw/ti-fs-firmware-am62x-gp.bin";
-			type = "blob-ext";
-			optional;
-		};
-		combined_tifs_cfg_gp: combined-tifs-cfg-gp.bin {
-			filename = "combined-tifs-cfg.bin";
-			type = "blob-ext";
-		};
-		combined_dm_cfg_gp: combined-dm-cfg-gp.bin {
-			filename = "combined-dm-cfg.bin";
-			type = "blob-ext";
-		};
+		insert-template = <&tiboot3_am62x_gp>;
 	};
 };
 #endif /* CONFIG_TARGET_PHYCORE_AM62X_R5 */
 
 #ifdef CONFIG_TARGET_PHYCORE_AM62X_A53
-#define SPL_AM625_PHYBOARD_LYRA_DTB "spl/dts/k3-am625-phyboard-lyra-rdk.dtb"
-#define AM625_PHYBOARD_LYRA_DTB "u-boot.dtb"
 
 &binman {
-	ti-dm {
-		filename = "ti-dm.bin";
-		blob-ext {
-			filename = "ti-dm/am62xx/ipc_echo_testb_mcu1_0_release_strip.xer5f";
-		};
+	tispl {
+		insert-template = <&ti_spl>;
 	};
-	ti-spl {
-		insert-template = <&ti_spl_template>;
-
-		fit {
-
-			images {
-				dm {
-					ti-secure {
-						content = <&dm>;
-						keyfile = "custMpk.pem";
-					};
-					dm: blob-ext {
-						filename = "ti-dm.bin";
-					};
-				};
-
-				fdt-0 {
-					description = "k3-am625-phyboard-lyra-rdk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&spl_am625_phyboard_lyra_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					spl_am625_phyboard_lyra_dtb: blob-ext {
-						filename = SPL_AM625_PHYBOARD_LYRA_DTB;
-					};
-				};
-			};
 
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am625-phyboard-lyra-rdk";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
-			};
-		};
-	};
-};
-
-&binman {
 	u-boot {
-		insert-template = <&u_boot_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for phyCORE-AM62x";
-				};
-
-				fdt-0 {
-					description = "k3-am625-phyboard-lyra-rdk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&am625_phyboard_lyra_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					am625_phyboard_lyra_dtb: blob-ext {
-						filename = AM625_PHYBOARD_LYRA_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am625-phyboard-lyra-rdk";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-			};
-		};
+		insert-template = <&u_boot>;
 	};
-};
-
-&binman {
-	ti-spl_unsigned {
-		insert-template = <&ti_spl_unsigned_template>;
-
-		fit {
-			images {
-				dm {
-					blob-ext {
-						filename = "ti-dm.bin";
-					};
-				};
-
-				fdt-0 {
-					description = "k3-am625-phyboard-lyra-rdk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					spl_am625_phyboard_lyra_dtb_unsigned: blob {
-						filename = SPL_AM625_PHYBOARD_LYRA_DTB;
-					};
-				};
-			};
 
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am625-phyboard-lyra-rdk";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
-			};
-		};
+	tispl-unsigned {
+		insert-template = <&ti_spl_unsigned>;
 	};
-};
-
-&binman {
-	u-boot_unsigned {
-		insert-template = <&u_boot_unsigned_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for phyCORE-AM62x";
-				};
-
-				fdt-0 {
-					description = "k3-am625-phyboard-lyra-rdk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					am625_phyboard_lyra_dtb_unsigned: blob {
-						filename = AM625_PHYBOARD_LYRA_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
 
-				conf-0 {
-					description = "k3-am625-phyboard-lyra-rdk";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-			};
-		};
+	u-boot-unsigned {
+		insert-template = <&u_boot_unsigned>;
 	};
 };
 #endif /* CONFIG_TARGET_PHYCORE_AM62X_A53 */
diff --git a/arch/arm/dts/k3-am625-r5-beagleplay.dts b/arch/arm/dts/k3-am625-r5-beagleplay.dts
index 9db58f093c8..1f450f55c1d 100644
--- a/arch/arm/dts/k3-am625-r5-beagleplay.dts
+++ b/arch/arm/dts/k3-am625-r5-beagleplay.dts
@@ -75,42 +75,3 @@ 
 &main_bcdma {
 	ti,sci = <&dm_tifs>;
 };
-
-&binman {
-	tiboot3-am62x-gp-evm.bin {
-		filename = "tiboot3-am62x-gp-evm.bin";
-		ti-secure-rom {
-			content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
-				<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
-			combined;
-			dm-data;
-			content-sbl = <&u_boot_spl_unsigned>;
-			load = <0x43c00000>;
-			content-sysfw = <&ti_fs_gp>;
-			load-sysfw = <0x40000>;
-			content-sysfw-data = <&combined_tifs_cfg_gp>;
-			load-sysfw-data = <0x67000>;
-			content-dm-data = <&combined_dm_cfg_gp>;
-			load-dm-data = <0x43c3a800>;
-			sw-rev = <1>;
-			keyfile = "ti-degenerate-key.pem";
-		};
-		u_boot_spl_unsigned: u-boot-spl {
-			no-expanded;
-		};
-		ti_fs_gp: ti-fs-gp.bin {
-			filename = "ti-sysfw/ti-fs-firmware-am62x-gp.bin";
-			type = "blob-ext";
-			optional;
-		};
-		combined_tifs_cfg_gp: combined-tifs-cfg-gp.bin {
-			filename = "combined-tifs-cfg.bin";
-			type = "blob-ext";
-		};
-		combined_dm_cfg_gp: combined-dm-cfg-gp.bin {
-			filename = "combined-dm-cfg.bin";
-			type = "blob-ext";
-		};
-
-	};
-};
diff --git a/arch/arm/dts/k3-am625-sk-binman.dtsi b/arch/arm/dts/k3-am625-sk-binman.dtsi
index 5b058bd03a0..7b67eb2d8d4 100644
--- a/arch/arm/dts/k3-am625-sk-binman.dtsi
+++ b/arch/arm/dts/k3-am625-sk-binman.dtsi
@@ -5,11 +5,12 @@ 
 
 #include "k3-binman.dtsi"
 
-#ifdef CONFIG_TARGET_AM625_R5_EVM
+#ifndef CONFIG_ARM64
 
 &binman {
-	tiboot3-am62x-hs-evm.bin {
+	tiboot3_am62x_hs: template-9 {
 		filename = "tiboot3-am62x-hs-evm.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl>, <&ti_fs_enc>, <&combined_tifs_cfg>,
 				<&combined_dm_cfg>, <&sysfw_inner_cert>;
@@ -49,13 +50,15 @@ 
 			filename = "combined-dm-cfg.bin";
 			type = "blob-ext";
 		};
+		};
 	};
 };
 
 &binman {
-	tiboot3-am62x-hs-fs-evm.bin {
+	tiboot3_am62x_hs_fs: template-10 {
 		filename = "tiboot3-am62x-hs-fs-evm.bin";
 		symlink = "tiboot3.bin";
+		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>;
@@ -96,11 +99,13 @@ 
 			type = "blob-ext";
 		};
 	};
+	};
 };
 
 &binman {
-	tiboot3-am62x-gp-evm.bin {
+	tiboot3_am62x_gp: template-11 {
 		filename = "tiboot3-am62x-gp-evm.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
 				<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
@@ -133,16 +138,11 @@ 
 			filename = "combined-dm-cfg.bin";
 			type = "blob-ext";
 		};
-
+	};
 	};
 };
 
-#endif
-
-#ifdef CONFIG_TARGET_AM625_A53_EVM
-
-#define SPL_AM625_SK_DTB "spl/dts/k3-am625-sk.dtb"
-#define AM625_SK_DTB "u-boot.dtb"
+#else
 
 &binman {
 	ti-dm {
@@ -151,7 +151,7 @@ 
 			filename = "ti-dm/am62xx/ipc_echo_testb_mcu1_0_release_strip.xer5f";
 		};
 	};
-	ti-spl {
+	ti_spl: template-12 {
 		insert-template = <&ti_spl_template>;
 
 		fit {
@@ -165,154 +165,36 @@ 
 						filename = "ti-dm.bin";
 					};
 				};
-
-				fdt-0 {
-					description = "k3-am625-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&spl_am625_sk_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					spl_am625_sk_dtb: blob-ext {
-						filename = SPL_AM625_SK_DTB;
-					};
-
-				};
-
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am625-sk";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot {
+	u_boot: template-13 {
 		insert-template = <&u_boot_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for AM625 Board";
-				};
-
-				fdt-0 {
-					description = "k3-am625-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&am625_sk_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					am625_sk_dtb: blob-ext {
-						filename = AM625_SK_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am625-sk";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-
-			};
-		};
 	};
 };
 
 &binman {
-	ti-spl_unsigned {
+	ti_spl_unsigned: template-14 {
 		insert-template = <&ti_spl_unsigned_template>;
 
 		fit {
 			images {
-
 				dm {
 					ti-dm {
 						filename = "ti-dm.bin";
 					};
 				};
-
-				fdt-0 {
-					description = "k3-am625-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					spl_am625_sk_dtb_unsigned: blob {
-						filename = SPL_AM625_SK_DTB;
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am625-sk";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot_unsigned {
+	u_boot_unsigned: template-15 {
 		insert-template = <&u_boot_unsigned_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for AM625 Board";
-				};
-
-				fdt-0 {
-					description = "k3-am625-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					am625_sk_dtb_unsigned: blob {
-						filename = AM625_SK_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am625-sk";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-			};
-		};
 	};
 };
 #endif
diff --git a/arch/arm/dts/k3-am625-sk-u-boot.dtsi b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
index fa778b0ff4c..3871359bf43 100644
--- a/arch/arm/dts/k3-am625-sk-u-boot.dtsi
+++ b/arch/arm/dts/k3-am625-sk-u-boot.dtsi
@@ -4,6 +4,10 @@ 
  * Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/
  */
 
+#define SPL_BOARD_DTB "spl/dts/k3-am625-sk.dtb"
+#define BOARD_DESCRIPTION "k3-am625-sk"
+#define UBOOT_BOARD_DESCRIPTION "U-Boot for AM625 SK"
+
 #include "k3-am625-sk-binman.dtsi"
 
 / {
@@ -46,3 +50,41 @@ 
 &cpsw_port2 {
 	status = "disabled";
 };
+
+#ifndef CONFIG_ARM64
+
+&binman {
+	tiboot3-am62x-hs {
+		insert-template = <&tiboot3_am62x_hs>;
+	};
+
+	tiboot3-am62x-hs-fs {
+		insert-template = <&tiboot3_am62x_hs_fs>;
+	};
+
+	tiboot3-am62x-gp {
+		insert-template = <&tiboot3_am62x_gp>;
+	};
+};
+
+#else
+
+&binman {
+	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
diff --git a/arch/arm/dts/k3-am625-verdin-wifi-dev-binman.dtsi b/arch/arm/dts/k3-am625-verdin-wifi-dev-binman.dtsi
index 4e3704809a6..0a2ae7cd19c 100644
--- a/arch/arm/dts/k3-am625-verdin-wifi-dev-binman.dtsi
+++ b/arch/arm/dts/k3-am625-verdin-wifi-dev-binman.dtsi
@@ -3,136 +3,28 @@ 
  * Copyright 2023 Toradex
  */
 
-#include "k3-binman.dtsi"
+#define SPL_BOARD_DTB "spl/dts/k3-am625-verdin-wifi-dev.dtb"
+#define BOARD_DESCRIPTION "k3-am625-verdin-wifi-dev"
+#define UBOOT_BOARD_DESCRIPTION "U-Boot fot AM625 Verdin Board"
+
+#include "k3-am625-sk-binman.dtsi"
 
 #ifdef CONFIG_TARGET_VERDIN_AM62_R5
 
 &binman {
 	tiboot3-am62x-hs-verdin.bin {
 		filename = "tiboot3-am62x-hs-verdin.bin";
-		ti-secure-rom {
-			content = <&u_boot_spl>, <&ti_fs_enc>, <&combined_tifs_cfg>,
-				<&combined_dm_cfg>, <&sysfw_inner_cert>;
-			combined;
-			dm-data;
-			sysfw-inner-cert;
-			keyfile = "custMpk.pem";
-			sw-rev = <1>;
-			content-sbl = <&u_boot_spl>;
-			content-sysfw = <&ti_fs_enc>;
-			content-sysfw-data = <&combined_tifs_cfg>;
-			content-sysfw-inner-cert = <&sysfw_inner_cert>;
-			content-dm-data = <&combined_dm_cfg>;
-			load = <0x43c00000>;
-			load-sysfw = <0x40000>;
-			load-sysfw-data = <0x67000>;
-			load-dm-data = <0x43c3a800>;
-		};
-		u_boot_spl: u-boot-spl {
-			no-expanded;
-		};
-		ti_fs_enc: ti-fs-enc.bin {
-			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-enc.bin";
-			type = "blob-ext";
-			optional;
-		};
-		combined_tifs_cfg: combined-tifs-cfg.bin {
-			filename = "combined-tifs-cfg.bin";
-			type = "blob-ext";
-		};
-		sysfw_inner_cert: sysfw-inner-cert {
-			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-cert.bin";
-			type = "blob-ext";
-			optional;
-		};
-		combined_dm_cfg: combined-dm-cfg.bin {
-			filename = "combined-dm-cfg.bin";
-			type = "blob-ext";
-		};
+		insert-template = <&tiboot3_am62x_hs>;
 	};
-};
 
-&binman {
-	tiboot3-am62x-hs-fs-verdin.bin {
+	tiboot3-am62x-hs-fs-verdin {
 		filename = "tiboot3-am62x-hs-fs-verdin.bin";
-		symlink = "tiboot3.bin";
-		ti-secure-rom {
-			content = <&u_boot_spl_fs>, <&ti_fs_enc_fs>, <&combined_tifs_cfg_fs>,
-				<&combined_dm_cfg_fs>, <&sysfw_inner_cert_fs>;
-			combined;
-			dm-data;
-			sysfw-inner-cert;
-			keyfile = "custMpk.pem";
-			sw-rev = <1>;
-			content-sbl = <&u_boot_spl_fs>;
-			content-sysfw = <&ti_fs_enc_fs>;
-			content-sysfw-data = <&combined_tifs_cfg_fs>;
-			content-sysfw-inner-cert = <&sysfw_inner_cert_fs>;
-			content-dm-data = <&combined_dm_cfg_fs>;
-			load = <0x43c00000>;
-			load-sysfw = <0x40000>;
-			load-sysfw-data = <0x67000>;
-			load-dm-data = <0x43c3a800>;
-		};
-		u_boot_spl_fs: u-boot-spl {
-			no-expanded;
-		};
-		ti_fs_enc_fs: ti-fs-enc.bin {
-			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-fs-enc.bin";
-			type = "blob-ext";
-			optional;
-		};
-		combined_tifs_cfg_fs: combined-tifs-cfg.bin {
-			filename = "combined-tifs-cfg.bin";
-			type = "blob-ext";
-		};
-		sysfw_inner_cert_fs: sysfw-inner-cert {
-			filename = "ti-sysfw/ti-fs-firmware-am62x-hs-fs-cert.bin";
-			type = "blob-ext";
-			optional;
-		};
-		combined_dm_cfg_fs: combined-dm-cfg.bin {
-			filename = "combined-dm-cfg.bin";
-			type = "blob-ext";
-		};
+		insert-template = <&tiboot3_am62x_hs_fs>;
 	};
-};
 
-&binman {
-	tiboot3-am62x-gp-verdin.bin {
+	tiboot3-am62x-gp-verdin {
 		filename = "tiboot3-am62x-gp-verdin.bin";
-		ti-secure-rom {
-			content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
-				<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
-			combined;
-			dm-data;
-			content-sbl = <&u_boot_spl_unsigned>;
-			load = <0x43c00000>;
-			content-sysfw = <&ti_fs_gp>;
-			load-sysfw = <0x40000>;
-			content-sysfw-data = <&combined_tifs_cfg_gp>;
-			load-sysfw-data = <0x67000>;
-			content-dm-data = <&combined_dm_cfg_gp>;
-			load-dm-data = <0x43c3a800>;
-			sw-rev = <1>;
-			keyfile = "ti-degenerate-key.pem";
-		};
-		u_boot_spl_unsigned: u-boot-spl {
-			no-expanded;
-		};
-		ti_fs_gp: ti-fs-gp.bin {
-			filename = "ti-sysfw/ti-fs-firmware-am62x-gp.bin";
-			type = "blob-ext";
-			optional;
-		};
-		combined_tifs_cfg_gp: combined-tifs-cfg-gp.bin {
-			filename = "combined-tifs-cfg.bin";
-			type = "blob-ext";
-		};
-		combined_dm_cfg_gp: combined-dm-cfg-gp.bin {
-			filename = "combined-dm-cfg.bin";
-			type = "blob-ext";
-		};
+		insert-template = <&tiboot3_am62x_gp>;
 	};
 };
 
@@ -140,175 +32,21 @@ 
 
 #ifdef CONFIG_TARGET_VERDIN_AM62_A53
 
-#define SPL_VERDIN_AM62_DTB "spl/dts/k3-am625-verdin-wifi-dev.dtb"
-#define VERDIN_AM62_DTB "u-boot.dtb"
-
 &binman {
-	ti-dm {
-		filename = "ti-dm.bin";
-		blob-ext {
-			filename = "ti-dm/am62xx/ipc_echo_testb_mcu1_0_release_strip.xer5f";
-		};
+	tispl {
+		insert-template = <&ti_spl>;
 	};
-	ti-spl {
-		insert-template = <&ti_spl_template>;
-
-		fit {
-
-			images {
-				dm {
-					ti-secure {
-						content = <&dm>;
-						keyfile = "custMpk.pem";
-					};
-					dm: ti-dm {
-						filename = "ti-dm.bin";
-					};
-				};
 
-				fdt-0 {
-					description = "k3-am625-verdin-wifi-dev";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&spl_verdin_am62_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					spl_verdin_am62_dtb: blob-ext {
-						filename = SPL_VERDIN_AM62_DTB;
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am625-verdin-wifi-dev";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
-			};
-		};
-	};
-};
-
-&binman {
 	u-boot {
-		insert-template = <&u_boot_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot fot AM625 Verdin Board";
-				};
-
-				fdt-0 {
-					description = "k3-am625-verdin-wifi-dev";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&verdin_am62_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					verdin_am62_dtb: blob-ext {
-						filename = VERDIN_AM62_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am625-verdin-wifi-dev";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-			};
-		};
+		insert-template = <&u_boot>;
 	};
-};
-
-&binman {
-	ti-spl_unsigned {
-		insert-template = <&ti_spl_unsigned_template>;
-
-		fit {
-			images {
-				dm {
-					ti-dm {
-						filename = "ti-dm.bin";
-					};
-				};
-
-				fdt-0 {
-					description = "k3-am625-verdin-wifi-dev";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = SPL_VERDIN_AM62_DTB;
-					};
-				};
-			};
 
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am625-verdin-wifi-dev";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
-			};
-		};
+	tispl-unsigned {
+		insert-template = <&ti_spl_unsigned>;
 	};
-};
-
-&binman {
-	u-boot_unsigned {
-		insert-template = <&u_boot_unsigned_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for AM625 Verdin Board";
-				};
-
-				fdt-0 {
-					description = "k3-am625-verdin-wifi-dev";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = VERDIN_AM62_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
 
-				conf-0 {
-					description = "k3-am625-verdin-wifi-dev";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-			};
-		};
+	u-boot-unsigned {
+		insert-template = <&u_boot_unsigned>;
 	};
 };
 
diff --git a/arch/arm/dts/k3-am62a-sk-binman.dtsi b/arch/arm/dts/k3-am62a-sk-binman.dtsi
index ec3bf7ce913..1fc0b3ef14c 100644
--- a/arch/arm/dts/k3-am62a-sk-binman.dtsi
+++ b/arch/arm/dts/k3-am62a-sk-binman.dtsi
@@ -5,14 +5,15 @@ 
 
 #include "k3-binman.dtsi"
 
-#ifdef CONFIG_TARGET_AM62A7_R5_EVM
+#ifndef CONFIG_ARM64
 
 &rcfg_yaml_tifs {
 	config = "tifs-rm-cfg.yaml";
 };
 
 &binman {
-	tiboot3-am62ax-hs-evm.bin {
+	tiboot3_am62ax_hs: template-9 {
+		section {
 		filename = "tiboot3-am62ax-hs-evm.bin";
 		ti-secure-rom {
 			content = <&u_boot_spl>, <&ti_fs_enc>, <&combined_tifs_cfg>,
@@ -53,13 +54,15 @@ 
 			filename = "combined-dm-cfg.bin";
 			type = "blob-ext";
 		};
+		};
 	};
 };
 
 &binman {
-	tiboot3-am62ax-hs-fs-evm.bin {
+	tiboot3_am62ax_hs_fs: template-10 {
 		filename = "tiboot3-am62ax-hs-fs-evm.bin";
 		symlink = "tiboot3.bin";
+		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>;
@@ -99,12 +102,14 @@ 
 			filename = "combined-dm-cfg.bin";
 			type = "blob-ext";
 		};
+		};
 	};
 };
 
 &binman {
-	tiboot3-am62ax-gp-evm.bin {
+	tiboot3_am62ax_gp: template-11 {
 		filename = "tiboot3-am62ax-gp-evm.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
 				<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
@@ -137,15 +142,11 @@ 
 			filename = "combined-dm-cfg.bin";
 			type = "blob-ext";
 		};
+		};
 	};
 };
 
-#endif
-
-#ifdef CONFIG_TARGET_AM62A7_A53_EVM
-
-#define SPL_AM62A7_SK_DTB "spl/dts/k3-am62a7-sk.dtb"
-#define AM62A7_SK_DTB "u-boot.dtb"
+#else
 
 &binman {
 	ti-dm {
@@ -154,7 +155,7 @@ 
 			filename = "ti-dm/am62axx/ipc_echo_testb_mcu1_0_release_strip.xer5f";
 		};
 	};
-	ti-spl {
+	ti_spl: template-12 {
 		insert-template = <&ti_spl_template>;
 
 		fit {
@@ -168,83 +169,19 @@ 
 						filename = "ti-dm.bin";
 					};
 				};
-
-				fdt-0 {
-					description = "k3-am62a7-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&spl_am62a7_sk_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					spl_am62a7_sk_dtb: blob-ext {
-						filename = SPL_AM62A7_SK_DTB;
-					};
-
-				};
-
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am62a7-sk";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot {
+	u_boot: template-13 {
 		insert-template = <&u_boot_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for AM62Ax Board";
-				};
-
-				fdt-0 {
-					description = "k3-am62a7-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&am62a7_sk_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					am62a7_sk_dtb: blob-ext {
-						filename = AM62A7_SK_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am62a7-sk";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-
-			};
-		};
 	};
 };
 
 &binman {
-	ti-spl_unsigned {
+	ti_spl_unsigned: template-14 {
 		insert-template = <&ti_spl_unsigned_template>;
 
 		fit {
@@ -254,67 +191,14 @@ 
 						filename = "ti-dm.bin";
 					};
 				};
-
-				fdt-0 {
-					description = "k3-am62a7-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = SPL_AM62A7_SK_DTB;
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am62a7-sk";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot_unsigned {
+	u_boot_unsigned: template-15 {
 		insert-template = <&u_boot_unsigned_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for AM62Ax Board";
-				};
-
-				fdt-0 {
-					description = "k3-am62a7-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = AM62A7_SK_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am62a7-sk";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-			};
-		};
 	};
 };
 #endif
diff --git a/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi b/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi
index 31b89b41748..d8ee892dcd5 100644
--- a/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi
+++ b/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi
@@ -4,6 +4,10 @@ 
  * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/
  */
 
+#define SPL_BOARD_DTB "spl/dts/k3-am62a7-sk.dtb"
+#define BOARD_DESCRIPTION "k3-am62a7-sk"
+#define UBOOT_BOARD_DESCRIPTION "U-Boot for AM62Ax SK"
+
 #include "k3-am62a-sk-binman.dtsi"
 
 / {
@@ -187,3 +191,41 @@ 
 &cpsw_port1 {
 	bootph-all;
 };
+
+#ifndef CONFIG_ARM64
+
+&binman {
+	tiboot3-am62ax-hs-sk {
+		insert-template = <&tiboot3_am62ax_hs>;
+	};
+
+	tiboot3-am62ax-hs-fs-sk {
+		insert-template = <&tiboot3_am62ax_hs_fs>;
+	};
+
+	tiboot3-am62ax-gp-sk {
+		insert-template = <&tiboot3_am62ax_gp>;
+	};
+};
+
+#else
+
+&binman {
+	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
diff --git a/arch/arm/dts/k3-am642-evm-u-boot.dtsi b/arch/arm/dts/k3-am642-evm-u-boot.dtsi
index ee6656774d6..4e9a2d4bd4a 100644
--- a/arch/arm/dts/k3-am642-evm-u-boot.dtsi
+++ b/arch/arm/dts/k3-am642-evm-u-boot.dtsi
@@ -3,6 +3,10 @@ 
  * Copyright (C) 2020-2021 Texas Instruments Incorporated - https://www.ti.com/
  */
 
+#define SPL_BOARD_DTB "spl/dts/ti/k3-am642-evm.dtb"
+#define BOARD_DESCRIPTION "k3-am642-evm"
+#define UBOOT_BOARD_DESCRIPTION "U-Boot for AM642 EVM"
+
 #include "k3-am64x-binman.dtsi"
 
 / {
@@ -88,3 +92,41 @@ 
 		bootph-all;
 	};
 };
+
+#ifndef CONFIG_ARM64
+
+&binman {
+	tiboot3-am64x-sr2-hs-evm {
+		insert-template = <&tiboot3_am64x_sr2_hs_evm>;
+	};
+
+	tiboot3-am64x-sr2-hs-fs-evm {
+		insert-template = <&tiboot3_am64x_sr2_hs_fs_evm>;
+	};
+
+	tiboot3-am64x-gp-evm {
+		insert-template = <&tiboot3_am64x_gp_evm>;
+	};
+};
+
+#else
+
+&binman {
+	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
diff --git a/arch/arm/dts/k3-am642-sk-u-boot.dtsi b/arch/arm/dts/k3-am642-sk-u-boot.dtsi
index 7e6b2981346..7b5a8640cc6 100644
--- a/arch/arm/dts/k3-am642-sk-u-boot.dtsi
+++ b/arch/arm/dts/k3-am642-sk-u-boot.dtsi
@@ -3,6 +3,10 @@ 
  * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
  */
 
+#define SPL_BOARD_DTB "spl/dts/ti/k3-am642-sk.dtb"
+#define BOARD_DESCRIPTION "k3-am642-sk"
+#define UBOOT_BOARD_DESCRIPTION "U-Boot for AM642 SK"
+
 #include "k3-am64x-binman.dtsi"
 
 / {
@@ -133,3 +137,41 @@ 
 		bootph-all;
 	};
 };
+
+#ifndef CONFIG_ARM64
+
+&binman {
+	tiboot3-am64x-sr2-hs-sk {
+		insert-template = <&tiboot3_am64x_sr2_hs_evm>;
+	};
+
+	tiboot3-am64x-sr2-hs-fs-sk {
+		insert-template = <&tiboot3_am64x_sr2_hs_fs_evm>;
+	};
+
+	tiboot3-am64x-gp-sk {
+		insert-template = <&tiboot3_am64x_gp_evm>;
+	};
+};
+
+#else
+
+&binman {
+	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
diff --git a/arch/arm/dts/k3-am64x-binman.dtsi b/arch/arm/dts/k3-am64x-binman.dtsi
index 37817ba60d2..c8ae6250129 100644
--- a/arch/arm/dts/k3-am64x-binman.dtsi
+++ b/arch/arm/dts/k3-am64x-binman.dtsi
@@ -3,11 +3,12 @@ 
 
 #include "k3-binman.dtsi"
 
-#ifdef CONFIG_TARGET_AM642_R5_EVM
+#ifndef CONFIG_ARM64
 
 &binman {
-	tiboot3-am64x_sr2-hs-evm.bin {
+	tiboot3_am64x_sr2_hs_evm: template-9 {
 		filename = "tiboot3-am64x_sr2-hs-evm.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl>, <&ti_sci_enc>,
 				<&combined_sysfw_cfg>, <&sysfw_inner_cert>;
@@ -40,14 +41,15 @@ 
 			type = "blob-ext";
 			optional;
 		};
-
+	};
 	};
 };
 
 &binman {
-	tiboot3-am64x_sr2-hs-fs-evm.bin {
+	tiboot3_am64x_sr2_hs_fs_evm: template-10 {
 		filename = "tiboot3-am64x_sr2-hs-fs-evm.bin";
 		symlink = "tiboot3.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl_fs>, <&ti_sci_enc_fs>,
 				<&combined_sysfw_cfg_fs>, <&sysfw_inner_cert_fs>;
@@ -80,13 +82,14 @@ 
 			type = "blob-ext";
 			optional;
 		};
-
+	};
 	};
 };
 
 &binman {
-	tiboot3-am64x-gp-evm.bin {
+	tiboot3_am64x_gp_evm: template-11 {
 		filename = "tiboot3-am64x-gp-evm.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl_unsigned>, <&ti_sci_gp>, <&combined_sysfw_cfg_gp>;
 			combined;
@@ -112,157 +115,35 @@ 
 			type = "blob-ext";
 		};
 	};
+	};
 };
 
-#endif
-
-#ifdef CONFIG_TARGET_AM642_A53_EVM
-
-#define SPL_AM642_EVM_DTB "spl/dts/ti/k3-am642-evm.dtb"
-#define SPL_AM642_SK_DTB "spl/dts/ti/k3-am642-sk.dtb"
-
-#define AM642_EVM_DTB "u-boot.dtb"
-#define AM642_SK_DTB "dts/upstream/src/arm64/ti/k3-am642-sk.dtb"
+#else
 
 &binman {
-	ti-spl {
+	ti_spl: template-12 {
 		insert-template = <&ti_spl_template>;
 
 		fit {
-			description = "Configuration to load ATF and SPL";
-			#address-cells = <1>;
-
 			images {
 				dm {
 					blob-ext {
 						filename = "/dev/null";
 					};
 				};
-
-
-				fdt-0 {
-					description = "k3-am642-evm";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&spl_am64x_evm_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					spl_am64x_evm_dtb: blob-ext {
-						filename = SPL_AM642_EVM_DTB;
-					};
-
-				};
-
-				fdt-1 {
-					description = "k3-am642-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&spl_am64x_sk_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					spl_am64x_sk_dtb: blob-ext {
-						filename = SPL_AM642_SK_DTB;
-					};
-
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am642-evm";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
-
-				conf-1 {
-					description = "k3-am642-sk";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-1";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot {
+	u_boot: template-13 {
 		insert-template = <&u_boot_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for AM64 Board";
-				};
-
-				fdt-0 {
-					description = "k3-am642-evm";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&am64x_evm_dtb>;
-						keyfile = "custMpk.pem";
-
-					};
-					am64x_evm_dtb: blob-ext {
-						filename = AM642_EVM_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-
-				fdt-1 {
-					description = "k3-am642-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&am64x_sk_dtb>;
-						keyfile = "custMpk.pem";
-
-					};
-					am64x_sk_dtb: blob-ext {
-						filename = AM642_SK_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am642-evm";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-
-				conf-1 {
-					description = "k3-am642-sk";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-1";
-				};
-			};
-		};
 	};
 };
 
 &binman {
-	ti-spl_unsigned {
+	ti_spl_unsigned: template-14 {
 		insert-template = <&ti_spl_unsigned_template>;
 
 		fit {
@@ -273,104 +154,14 @@ 
 						filename = "/dev/null";
 					};
 				};
-
-				fdt-0 {
-					description = "k3-am642-evm";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = SPL_AM642_EVM_DTB;
-					};
-				};
-
-				fdt-1 {
-					description = "k3-am642-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = SPL_AM642_SK_DTB;
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am642-evm";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
-
-				conf-1 {
-					description = "k3-am642-sk";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-1";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot_unsigned {
+	u_boot_unsigned: template-15 {
 		insert-template = <&u_boot_unsigned_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for AM64 Board";
-				};
-
-				fdt-0 {
-					description = "k3-am642-evm";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = AM642_EVM_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-
-				fdt-1 {
-					description = "k3-am642-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = AM642_SK_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am642-evm";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-
-				conf-1 {
-					description = "k3-am642-sk";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-1";
-				};
-			};
-		};
 	};
 };
 #endif
diff --git a/arch/arm/dts/k3-am654-base-board-u-boot.dtsi b/arch/arm/dts/k3-am654-base-board-u-boot.dtsi
index 4fd188fa191..8899e5599ec 100644
--- a/arch/arm/dts/k3-am654-base-board-u-boot.dtsi
+++ b/arch/arm/dts/k3-am654-base-board-u-boot.dtsi
@@ -3,6 +3,11 @@ 
  * Copyright (C) 2018-2021 Texas Instruments Incorporated - https://www.ti.com/
  */
 
+#define SPL_BOARD_DTB "spl/dts/k3-am654-base-board.dtb"
+#define BOARD_DESCRIPTION "k3-am654-base-board"
+
+#define UBOOT_BOARD_DESCRIPTION "U-Boot for AM654 Base Board"
+
 #include "k3-am65x-binman.dtsi"
 
 / {
@@ -274,3 +279,47 @@ 
 	reg-names = "gcfg", "rchanrt", "tchanrt",
 		    "tchan", "rchan", "rflow";
 };
+
+#ifndef CONFIG_ARM64
+
+&binman {
+	tiboot3-am65x-sr2-hs-evm {
+		insert-template = <&tiboot3_am65x_sr2_hs_evm>;
+	};
+
+	itb-am65x-sr2-hs-evm {
+		insert-template = <&itb>;
+	};
+};
+
+&binman {
+	tiboot3-am65x-sr2-gp-evm {
+		insert-template = <&tiboot3_am65x_sr2_gp_evm>;
+	};
+
+	itb-am65x-sr2-gp-evm {
+		insert-template = <&itb_gp>;
+	};
+};
+
+#else
+
+&binman {
+	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
diff --git a/arch/arm/dts/k3-am65x-binman.dtsi b/arch/arm/dts/k3-am65x-binman.dtsi
index 8cc24da1f3f..f1f0093bbb1 100644
--- a/arch/arm/dts/k3-am65x-binman.dtsi
+++ b/arch/arm/dts/k3-am65x-binman.dtsi
@@ -5,11 +5,12 @@ 
 
 #include "k3-binman.dtsi"
 
-#ifdef CONFIG_TARGET_AM654_R5_EVM
+#ifndef CONFIG_ARM64
 
 &binman {
-	tiboot3-am65x_sr2-hs-evm.bin {
+	tiboot3_am65x_sr2_hs_evm: template-9 {
 		filename = "tiboot3-am65x_sr2-hs-evm.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl>;
 			core = "public";
@@ -20,6 +21,7 @@ 
 			no-expanded;
 		};
 	};
+	};
 	sysfw {
 		filename = "sysfw.bin";
 		ti-secure-rom {
@@ -40,16 +42,17 @@ 
 			optional;
 		};
 	};
-	itb {
+	itb: template-10 {
 		filename = "sysfw-am65x_sr2-hs-evm.itb";
 		insert-template = <&itb_template>;
 	};
 };
 
 &binman {
-	tiboot3-am65x_sr2-gp-evm.bin {
+	tiboot3_am65x_sr2_gp_evm: template-11 {
 		filename = "tiboot3-am65x_sr2-gp-evm.bin";
 		symlink = "tiboot3.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl_unsigned>;
 			core = "public";
@@ -61,6 +64,7 @@ 
 			no-expanded;
 		};
 	};
+	};
 	sysfw_gp {
 		filename = "sysfw.bin_gp";
 		ti-secure-rom {
@@ -76,7 +80,7 @@ 
 			optional;
 		};
 	};
-	itb_gp {
+	itb_gp: template-12 {
 		filename = "sysfw-am65x_sr2-gp-evm.itb";
 		symlink = "sysfw.itb";
 		insert-template = <&itb_unsigned_template>;
@@ -91,15 +95,11 @@ 
 		};
 	};
 };
-#endif
-
-#ifdef CONFIG_TARGET_AM654_A53_EVM
 
-#define SPL_AM654_EVM_DTB "spl/dts/k3-am654-base-board.dtb"
-#define AM654_EVM_DTB "u-boot.dtb"
+#else
 
 &binman {
-	ti-spl {
+	ti_spl: template-13 {
 		insert-template = <&ti_spl_template>;
 
 		fit {
@@ -110,82 +110,19 @@ 
 						filename = "/dev/null";
 					};
 				};
-
-				fdt-0 {
-					description = "k3-am654-base-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&spl_am65x_evm_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					spl_am65x_evm_dtb: blob-ext {
-						filename = SPL_AM654_EVM_DTB;
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am654-base-board";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot {
+	u_boot: template-14 {
 		insert-template = <&u_boot_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for AM65 Board";
-				};
-
-				fdt-0 {
-					description = "k3-am654-base-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&am65x_evm_dtb>;
-						keyfile = "custMpk.pem";
-
-					};
-					am65x_evm_dtb: blob-ext {
-						filename = AM654_EVM_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am654-base-board";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-			};
-		};
 	};
 };
 
 &binman {
-	ti-spl_unsigned {
+	ti_spl_unsigned: template-15 {
 		insert-template = <&ti_spl_unsigned_template>;
 
 		fit {
@@ -195,67 +132,14 @@ 
 						filename = "/dev/null";
 					};
 				};
-
-				fdt-0 {
-					description = "k3-j721e-common-proc-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = SPL_AM654_EVM_DTB;
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am654-base-board";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot_unsigned {
+	u_boot_unsigned: template-16 {
 		insert-template = <&u_boot_unsigned_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for AM65 Board";
-				};
-
-				fdt-0 {
-					description = "k3-am654-base-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = AM654_EVM_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-am654-base-board";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-			};
-		};
 	};
 };
 #endif
diff --git a/arch/arm/dts/k3-am68-sk-base-board-u-boot.dtsi b/arch/arm/dts/k3-am68-sk-base-board-u-boot.dtsi
index 4f34347586e..0ade1ef53cb 100644
--- a/arch/arm/dts/k3-am68-sk-base-board-u-boot.dtsi
+++ b/arch/arm/dts/k3-am68-sk-base-board-u-boot.dtsi
@@ -3,6 +3,10 @@ 
  * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
  */
 
+#define SPL_BOARD_DTB "spl/dts/k3-am68-sk-base-board.dtb"
+#define BOARD_DESCRIPTION "k3-am68-sk-base-board"
+#define UBOOT_BOARD_DESCRIPTION "U-Boot for AM68 SK"
+
 #include "k3-j721s2-binman.dtsi"
 
 &wkup_i2c0 {
@@ -133,3 +137,25 @@ 
 	dr_mode = "peripheral";
 	bootph-all;
 };
+
+#ifndef CONFIG_ARM64
+
+&binman {
+	tiboot3-am68-sk {
+		insert-template = <&tiboot3_j721s2_hs_fs_evm>;
+	};
+};
+
+#else
+
+&binman {
+	tispl {
+		insert-template = <&ti_spl>;
+	};
+
+	u-boot {
+		insert-template = <&u_boot>;
+	};
+};
+
+#endif
diff --git a/arch/arm/dts/k3-am69-sk-u-boot.dtsi b/arch/arm/dts/k3-am69-sk-u-boot.dtsi
index bed330e6d4e..866836909df 100644
--- a/arch/arm/dts/k3-am69-sk-u-boot.dtsi
+++ b/arch/arm/dts/k3-am69-sk-u-boot.dtsi
@@ -3,6 +3,10 @@ 
  * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
  */
 
+#define SPL_BOARD_DTB "spl/dts/ti/k3-am69-sk.dtb"
+#define BOARD_DESCRIPTION "k3-am68-sk"
+#define UBOOT_BOARD_DESCRIPTION "U-Boot for AM69 SK"
+
 #include "k3-j784s4-binman.dtsi"
 
 / {
@@ -30,25 +34,24 @@ 
 	};
 };
 
-#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"
+#ifndef CONFIG_ARM64
 
-&spl_j784s4_evm_dtb {
-	filename = SPL_AM69_SK_DTB;
+&binman {
+	tiboot3-am69-sk {
+		insert-template = <&tiboot3_j784s4_hs_fs_evm>;
+	};
 };
 
-&j784s4_evm_dtb {
-	filename = AM69_SK_DTB;
-};
+#else
 
-&spl_j784s4_evm_dtb_unsigned {
-	filename = SPL_AM69_SK_DTB;
-};
+&binman {
+	tispl {
+		insert-template = <&ti_spl>;
+	};
 
-&j784s4_evm_dtb_unsigned {
-	filename = AM69_SK_DTB;
+	u-boot {
+		insert-template = <&u_boot>;
+	};
 };
 
 #endif
diff --git a/arch/arm/dts/k3-binman.dtsi b/arch/arm/dts/k3-binman.dtsi
index 5163161b94d..eb920c092ef 100644
--- a/arch/arm/dts/k3-binman.dtsi
+++ b/arch/arm/dts/k3-binman.dtsi
@@ -325,6 +325,27 @@ 
 					};
 				};
 
+				fdt-0 {
+					description = BOARD_DESCRIPTION;
+					ti-secure {
+						content = <&spl_board_dtb>;
+						keyfile = "custMpk.pem";
+					};
+					spl_board_dtb: blob-ext {
+						filename = SPL_BOARD_DTB;
+					};
+				};
+			};
+
+			configurations {
+				default = "conf-0";
+
+				conf-0 {
+					description = BOARD_DESCRIPTION;
+					firmware = "atf";
+					loadables = "tee", "dm", "spl";
+					fdt = "fdt-0";
+				};
 			};
 		};
 	};
@@ -387,6 +408,27 @@ 
 						filename = "spl/u-boot-spl-nodtb.bin";
 					};
 				};
+
+				fdt-0 {
+					description = BOARD_DESCRIPTION;
+					type = "flat_dt";
+					arch = "arm";
+					compression = "none";
+					blob {
+						filename = SPL_BOARD_DTB;
+					};
+				};
+			};
+
+			configurations {
+				default = "conf-0";
+
+				conf-0 {
+					description = BOARD_DESCRIPTION;
+					firmware = "atf";
+					loadables = "tee", "dm", "spl";
+					fdt = "fdt-0";
+				};
 			};
 		};
 	};
@@ -399,6 +441,7 @@ 
 
 			images {
 				uboot {
+					description = UBOOT_BOARD_DESCRIPTION;
 					type = "firmware";
 					os = "u-boot";
 					arch = "arm";
@@ -414,6 +457,35 @@ 
 						algo = "crc32";
 					};
 				};
+
+				fdt-0 {
+					description = BOARD_DESCRIPTION;
+					type = "flat_dt";
+					arch = "arm";
+					compression = "none";
+					ti-secure {
+						content = <&board_dtb>;
+						keyfile = "custMpk.pem";
+
+					};
+					board_dtb: blob {
+						filename = "u-boot.dtb";
+					};
+					hash {
+						algo = "crc32";
+					};
+				};
+			};
+
+			configurations {
+				default = "conf-0";
+
+				conf-0 {
+					description = BOARD_DESCRIPTION;
+					firmware = "uboot";
+					loadables = "uboot";
+					fdt = "fdt-0";
+				};
 			};
 		};
 	};
@@ -426,6 +498,7 @@ 
 
 			images {
 				uboot {
+					description = UBOOT_BOARD_DESCRIPTION;
 					type = "firmware";
 					os = "u-boot";
 					arch = "arm";
@@ -438,6 +511,29 @@ 
 						algo = "crc32";
 					};
 				};
+
+				fdt-0 {
+					description = BOARD_DESCRIPTION;
+					type = "flat_dt";
+					arch = "arm";
+					compression = "none";
+					u-boot-dtb {
+					};
+					hash {
+						algo = "crc32";
+					};
+				};
+			};
+
+			configurations {
+				default = "conf-0";
+
+				conf-0 {
+					description = BOARD_DESCRIPTION;
+					firmware = "uboot";
+					loadables = "uboot";
+					fdt = "fdt-0";
+				};
 			};
 		};
 	};
diff --git a/arch/arm/dts/k3-j7200-binman.dtsi b/arch/arm/dts/k3-j7200-binman.dtsi
index 06db8659876..69efa81942a 100644
--- a/arch/arm/dts/k3-j7200-binman.dtsi
+++ b/arch/arm/dts/k3-j7200-binman.dtsi
@@ -5,7 +5,7 @@ 
 
 #include "k3-binman.dtsi"
 
-#ifdef CONFIG_TARGET_J7200_R5_EVM
+#ifndef CONFIG_ARM64
 
 &bcfg_yaml {
 	config = "board-cfg_j7200.yaml";
@@ -48,8 +48,9 @@ 
 };
 
 &binman {
-	tiboot3-j7200_sr2-hs-evm.bin {
+	tiboot3_j7200_sr2_hs_evm: template-9 {
 		filename = "tiboot3-j7200_sr2-hs-evm.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl>, <&ti_fs_enc>, <&combined_tifs_cfg>,
 				<&combined_dm_cfg>, <&sysfw_inner_cert>;
@@ -90,11 +91,13 @@ 
 			type = "blob-ext";
 		};
 	};
+	};
 };
 
 &binman {
-	tiboot3-j7200_sr2-hs-fs-evm.bin {
+	tiboot3_j7200_sr2_hs_fs_evm: template-10 {
 		filename = "tiboot3-j7200_sr2-hs-fs-evm.bin";
+		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>;
@@ -135,12 +138,14 @@ 
 			type = "blob-ext";
 		};
 	};
+	};
 };
 
 &binman {
-	tiboot3-j7200-gp-evm.bin {
+	tiboot3_j7200_gp_evm: template-11 {
 		filename = "tiboot3-j7200-gp-evm.bin";
 		symlink = "tiboot3.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
 				<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
@@ -173,15 +178,11 @@ 
 			filename = "combined-dm-cfg.bin";
 			type = "blob-ext";
 		};
+		};
 	};
 };
 
-#endif
-
-#ifdef CONFIG_TARGET_J7200_A72_EVM
-
-#define SPL_J7200_EVM_DTB "spl/dts/k3-j7200-common-proc-board.dtb"
-#define J7200_EVM_DTB "u-boot.dtb"
+#else
 
 &binman {
 	ti-dm {
@@ -190,7 +191,7 @@ 
 			filename = "ti-dm/j7200/ipc_echo_testb_mcu1_0_release_strip.xer5f";
 		};
 	};
-	ti-spl {
+	ti_spl: template-12 {
 		insert-template = <&ti_spl_template>;
 
 		fit {
@@ -294,82 +295,19 @@ 
 						filename = "ti-dm.bin";
 					};
 				};
-
-				fdt-0 {
-					description = "k3-j7200-common-proc-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&spl_j7200_evm_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					spl_j7200_evm_dtb: blob-ext {
-						filename = SPL_J7200_EVM_DTB;
-					};
-				};
-
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j7200-common-proc-board";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot {
+	u_boot: template-13 {
 		insert-template = <&u_boot_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for J7200 Board";
-				};
-
-				fdt-0 {
-					description = "k3-j7200-common-proc-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&j7200_evm_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					j7200_evm_dtb: blob-ext {
-						filename = J7200_EVM_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j7200-common-proc-board";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-
-			};
-		};
 	};
 };
 
 &binman {
-	ti-spl_unsigned {
+	ti_spl_unsigned: template-14 {
 		insert-template = <&ti_spl_unsigned_template>;
 
 		fit {
@@ -379,67 +317,14 @@ 
 						filename = "ti-dm.bin";
 					};
 				};
-
-				fdt-1 {
-					description = "k3-j7200-common-proc-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = SPL_J7200_EVM_DTB;
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-1";
-
-				conf-1 {
-					description = "k3-j7200-common-proc-board";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-1";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot_unsigned {
+	u_boot_unsigned: template-15 {
 		insert-template = <&u_boot_unsigned_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for J7200 Board";
-				};
-
-				fdt-1 {
-					description = "k3-j7200-common-proc-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = J7200_EVM_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-1";
-
-				conf-1 {
-					description = "k3-j7200-common-proc-board";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-1";
-				};
-			};
-		};
 	};
 };
 #endif
diff --git a/arch/arm/dts/k3-j7200-common-proc-board-u-boot.dtsi b/arch/arm/dts/k3-j7200-common-proc-board-u-boot.dtsi
index c9fee0ea99b..c09672104d5 100644
--- a/arch/arm/dts/k3-j7200-common-proc-board-u-boot.dtsi
+++ b/arch/arm/dts/k3-j7200-common-proc-board-u-boot.dtsi
@@ -3,6 +3,10 @@ 
  * Copyright (C) 2020-2023 Texas Instruments Incorporated - https://www.ti.com/
  */
 
+#define SPL_BOARD_DTB "spl/dts/k3-j7200-common-proc-board.dtb"
+#define BOARD_DESCRIPTION "k3-j7200-common-proc-board"
+#define UBOOT_BOARD_DESCRIPTION "U-Boot for J7200 EVM"
+
 #include "k3-j7200-binman.dtsi"
 
 / {
@@ -212,3 +216,39 @@ 
 &serdes0 {
 	bootph-all;
 };
+
+#ifndef CONFIG_ARM64
+
+&binman {
+	tiboot3-j7200-sr2-hs-evm {
+		insert-template = <&tiboot3_j7200_sr2_hs_evm>;
+	};
+	tiboot3-j7200-sr2-hs-fs-evm {
+		insert-template = <&tiboot3_j7200_sr2_hs_fs_evm>;
+	};
+	tiboot3-j7200-gp-evm {
+		insert-template = <&tiboot3_j7200_gp_evm>;
+	};
+};
+
+#else
+
+&binman {
+	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
diff --git a/arch/arm/dts/k3-j721e-beagleboneai64-u-boot.dtsi b/arch/arm/dts/k3-j721e-beagleboneai64-u-boot.dtsi
index 116ee373118..2059ace6c5b 100644
--- a/arch/arm/dts/k3-j721e-beagleboneai64-u-boot.dtsi
+++ b/arch/arm/dts/k3-j721e-beagleboneai64-u-boot.dtsi
@@ -7,7 +7,11 @@ 
  * Copyright (C) 2022-2023 Robert Nelson, BeagleBoard.org Foundation
  */
 
-#include "k3-binman.dtsi"
+#define SPL_BOARD_DTB "spl/dts/k3-j721e-beagleboneai64.dtb"
+#define BOARD_DESCRIPTION "k3-j721e-beagleboneai64"
+#define UBOOT_BOARD_DESCRIPTION "U-Boot for J721E BeagleBoneAI64"
+
+#include "k3-j721e-binman.dtsi"
 
 / {
 	memory@80000000 {
@@ -205,154 +209,14 @@ 
 
 #ifdef CONFIG_TARGET_J721E_A72_BEAGLEBONEAI64
 
-#define SPL_NODTB "spl/u-boot-spl-nodtb.bin"
-#define SPL_J721E_BBAI64_DTB "spl/dts/k3-j721e-beagleboneai64.dtb"
-
-#define UBOOT_NODTB "u-boot-nodtb.bin"
-#define J721E_BBAI64_DTB "arch/arm/dts/k3-j721e-beagleboneai64.dtb"
-
 &binman {
-	ti-dm {
-		filename = "ti-dm.bin";
-		blob-ext {
-			filename = "ti-dm/j721e/ipc_echo_testb_mcu1_0_release_strip.xer5f";
-		};
-	};
 
-	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 = "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";
-					};
-				};
-
-				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-ext {
-						filename = SPL_NODTB;
-					};
-				};
-
-				fdt-0 {
-					description = "k3-j721e-beagleboneai64";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = SPL_J721E_BBAI64_DTB;
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j721e-beagleboneai64";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
-			};
-		};
+	tispl-unsigned {
+		insert-template = <&ti_spl_unsigned>;
 	};
 
-	u-boot_unsigned {
-		filename = "u-boot.img_unsigned";
-		pad-byte = <0xff>;
-
-		fit {
-			description = "FIT image with multiple configurations";
-
-			images {
-				uboot {
-					description = "U-Boot for j721e board";
-					type = "firmware";
-					os = "u-boot";
-					arch = "arm";
-					compression = "none";
-					load = <CONFIG_TEXT_BASE>;
-					blob {
-						filename = UBOOT_NODTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-
-				fdt-0 {
-					description = "k3-j721e-beagleboneai64";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = J721E_BBAI64_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j721e-beagleboneai64";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-			};
-		};
+	u-boot-unsigned {
+		insert-template = <&u_boot_unsigned>;
 	};
 };
 #endif
diff --git a/arch/arm/dts/k3-j721e-binman.dtsi b/arch/arm/dts/k3-j721e-binman.dtsi
index 75a6e9599b9..fb0f645774b 100644
--- a/arch/arm/dts/k3-j721e-binman.dtsi
+++ b/arch/arm/dts/k3-j721e-binman.dtsi
@@ -5,11 +5,12 @@ 
 
 #include "k3-binman.dtsi"
 
-#ifdef CONFIG_TARGET_J721E_R5_EVM
+#ifndef CONFIG_ARM64
 
 &binman {
-	tiboot3-j721e_sr1_1-hs-evm.bin {
+	tiboot3_j721e_sr1_1_hs: template-9 {
 		filename = "tiboot3-j721e_sr1_1-hs-evm.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl>;
 			core = "public";
@@ -19,10 +20,12 @@ 
 		u_boot_spl: u-boot-spl {
 			no-expanded;
 		};
+		};
 	};
 
-	tiboot3-j721e_sr2-hs-evm.bin {
+	tiboot3_j721e_sr2_hs: template-10 {
 		filename = "tiboot3-j721e_sr2-hs-evm.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl_sr2>;
 			core = "public";
@@ -32,10 +35,12 @@ 
 		u_boot_spl_sr2: u-boot-spl {
 			no-expanded;
 		};
+		};
 	};
 
-	sysfw {
+	sysfw: template-11 {
 		filename = "sysfw.bin";
+		section {
 		ti-secure-rom {
 			content = <&ti_fs_cert>;
 			core = "secure";
@@ -53,10 +58,12 @@ 
 			type = "blob-ext";
 			optional;
 		};
+		};
 	};
 
-	sysfw_sr2 {
+	sysfw_sr2: template-12 {
 		filename = "sysfw.bin_sr2";
+		section {
 		ti-secure-rom {
 			content = <&ti_fs_cert_sr2>;
 			core = "secure";
@@ -74,15 +81,17 @@ 
 			type = "blob-ext";
 			optional;
 		};
+		};
 	};
 
-	itb {
+	itb: template-13 {
 		filename = "sysfw-j721e_sr1_1-hs-evm.itb";
 		insert-template = <&itb_template>;
 	};
 
-	itb_sr2 {
+	itb_sr2: template-14 {
 		filename = "sysfw-j721e_sr2-hs-evm.itb";
+		section {
 		insert-template = <&itb_template>;
 		fit {
 			images {
@@ -127,11 +136,13 @@ 
 			};
 		};
 	};
+	};
 };
 
 &binman {
-	tiboot3-j721e_sr2-hs-fs-evm.bin {
+	tiboot3_j721e_sr2_hs_fs: template-15 {
 		filename = "tiboot3-j721e_sr2-hs-fs-evm.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl_fs>;
 			core = "public";
@@ -141,9 +152,11 @@ 
 		u_boot_spl_fs: u-boot-spl {
 			no-expanded;
 		};
+		};
 	};
-	sysfw_fs {
+	sysfw_fs: template-16 {
 		filename = "sysfw.bin_fs";
+		section {
 		ti-fs-cert-fs.bin {
 			filename = "ti-sysfw/ti-fs-firmware-j721e_sr2-hs-fs-cert.bin";
 			type = "blob-ext";
@@ -154,17 +167,19 @@ 
 			type = "blob-ext";
 			optional;
 		};
+		};
 	};
-	itb_fs {
+	itb_fs: template-17 {
 		filename = "sysfw-j721e_sr2-hs-fs-evm.itb";
 		insert-template = <&itb_unsigned_template>;
 	};
 };
 
 &binman {
-	tiboot3-j721e-gp-evm.bin {
+	tiboot3_j721e_gp: template-18 {
 		filename = "tiboot3-j721e-gp-evm.bin";
 		symlink = "tiboot3.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl_unsigned>;
 			core = "public";
@@ -175,9 +190,11 @@ 
 		u_boot_spl_unsigned: u-boot-spl {
 			no-expanded;
 		};
+		};
 	};
-	sysfw_gp {
+	sysfw_gp: template-19 {
 		filename = "sysfw.bin_gp";
+		section {
 		ti-secure-rom {
 			content = <&ti_fs>;
 			core = "secure";
@@ -190,10 +207,12 @@ 
 			type = "blob-ext";
 			optional;
 		};
+		};
 	};
-	itb_gp {
+	itb_gp: template-20 {
 		filename = "sysfw-j721e-gp-evm.itb";
 		symlink = "sysfw.itb";
+		section {
 		insert-template = <&itb_unsigned_template>;
 
 		fit {
@@ -205,17 +224,11 @@ 
 				};
 			};
 		};
+		};
 	};
 };
-#endif
-
-#ifdef CONFIG_TARGET_J721E_A72_EVM
 
-#define SPL_J721E_EVM_DTB "spl/dts/k3-j721e-common-proc-board.dtb"
-#define SPL_J721E_SK_DTB "spl/dts/k3-j721e-sk.dtb"
-
-#define J721E_EVM_DTB "u-boot.dtb"
-#define J721E_SK_DTB "arch/arm/dts/k3-j721e-sk.dtb"
+#else
 
 &binman {
 	ti-dm {
@@ -224,7 +237,7 @@ 
 			filename = "ti-dm/j721e/ipc_echo_testb_mcu1_0_release_strip.xer5f";
 		};
 	};
-	ti-spl {
+	ti_spl: template-21 {
 		insert-template = <&ti_spl_template>;
 
 		fit {
@@ -354,128 +367,19 @@ 
 						filename = "ti-dm.bin";
 					};
 				};
-
-				fdt-0 {
-					description = "k3-j721e-common-proc-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&spl_j721e_evm_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					spl_j721e_evm_dtb: blob-ext {
-						filename = SPL_J721E_EVM_DTB;
-					};
-				};
-
-				fdt-1 {
-					description = "k3-j721e-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&spl_j721e_sk_dtb>;
-						keyfile = "custMpk.pem";
-
-					};
-					spl_j721e_sk_dtb: blob-ext {
-						filename = SPL_J721E_SK_DTB;
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j721e-common-proc-board";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
-
-				conf-1 {
-					description = "k3-j721e-sk";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-1";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot {
+	u_boot: template-22 {
 		insert-template = <&u_boot_template>;
-		fit {
-
-			images {
-				uboot {
-					description = "U-Boot for J721E Board";
-				};
-
-				fdt-0 {
-					description = "k3-j721e-common-proc-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&j721e_evm_dtb>;
-						keyfile = "custMpk.pem";
-
-					};
-					j721e_evm_dtb: blob-ext {
-						filename = J721E_EVM_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-
-				fdt-1 {
-					description = "k3-j721e-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&j721e_sk_dtb>;
-						keyfile = "custMpk.pem";
-
-					};
-					j721e_sk_dtb: blob-ext {
-						filename = J721E_SK_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j721e-common-proc-board";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-
-				conf-1 {
-					description = "k3-j721e-sk";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-1";
-				};
-			};
-		};
 	};
 };
 
 &binman {
-	ti-spl_unsigned {
+	ti_spl_unsigned: template-23 {
 		insert-template = <&ti_spl_unsigned_template>;
 
 		fit {
@@ -485,104 +389,14 @@ 
 						filename = "ti-dm.bin";
 					};
 				};
-
-				fdt-0 {
-					description = "k3-j721e-common-proc-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = SPL_J721E_EVM_DTB;
-					};
-				};
-
-				fdt-1 {
-					description = "k3-j721e-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = SPL_J721E_SK_DTB;
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j721e-common-proc-board";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
-
-				conf-1 {
-					description = "k3-j721e-sk";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-1";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot_unsigned {
+	u_boot_unsigned: template-24 {
 		insert-template = <&u_boot_unsigned_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for J721E Board";
-				};
-
-				fdt-0 {
-					description = "k3-j721e-common-proc-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = J721E_EVM_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-
-				fdt-1 {
-					description = "k3-j721e-sk";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = J721E_SK_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j721e-common-proc-board";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-
-				conf-1 {
-					description = "k3-j721e-sk";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-1";
-				};
-			};
-		};
 	};
 };
 #endif
diff --git a/arch/arm/dts/k3-j721e-common-proc-board-u-boot.dtsi b/arch/arm/dts/k3-j721e-common-proc-board-u-boot.dtsi
index 9433f3bafae..1db18044756 100644
--- a/arch/arm/dts/k3-j721e-common-proc-board-u-boot.dtsi
+++ b/arch/arm/dts/k3-j721e-common-proc-board-u-boot.dtsi
@@ -3,6 +3,10 @@ 
  * Copyright (C) 2018 Texas Instruments Incorporated - https://www.ti.com/
  */
 
+#define SPL_BOARD_DTB "spl/dts/k3-j721e-common-proc-board.dtb"
+#define BOARD_DESCRIPTION "k3-j721e-common-proc-board"
+#define UBOOT_BOARD_DESCRIPTION "U-Boot for J721E EVM"
+
 #include "k3-j721e-binman.dtsi"
 
 &cbass_main {
@@ -187,3 +191,83 @@ 
 &mcu_fss0_ospi1_pins_default {
 	bootph-all;
 };
+
+#ifndef CONFIG_ARM64
+
+&binman {
+	tiboot3-j721e-sr1-1-hs-evm {
+		insert-template = <&tiboot3_j721e_sr1_1_hs>;
+	};
+
+	sysfw-j721e-sr1-1-hs-evm {
+		insert-template = <&sysfw>;
+	};
+
+	itb-j721e-sr1-1-hs-evm {
+		insert-template = <&itb>;
+	};
+};
+
+&binman {
+	tiboot3-j721e-sr2-hs-evm {
+		insert-template = <&tiboot3_j721e_sr2_hs>;
+	};
+
+	sysfw-j721e-sr2-hs-evm {
+		insert-template = <&sysfw_sr2>;
+	};
+
+	itb-j721e-sr2-hs-evm {
+		insert-template = <&itb_sr2>;
+	};
+};
+
+&binman {
+	tiboot3-j721e-sr2-hs-fs-evm {
+		insert-template = <&tiboot3_j721e_sr2_hs_fs>;
+	};
+
+	sysfw-j721e-sr2-hs-fs-evm {
+		insert-template = <&sysfw_fs>;
+	};
+
+	itb-j721e-sr2-hs-fs-evm {
+		insert-template = <&itb_fs>;
+	};
+};
+
+&binman {
+	tiboot3-j721e-gp-evm {
+		insert-template = <&tiboot3_j721e_gp>;
+	};
+
+	sysfw-j721e-gp-evm {
+		insert-template = <&sysfw_gp>;
+	};
+
+	itb-j721e-gp-evm {
+		insert-template = <&itb_gp>;
+	};
+};
+
+#else
+
+&binman {
+	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
diff --git a/arch/arm/dts/k3-j721e-r5-beagleboneai64.dts b/arch/arm/dts/k3-j721e-r5-beagleboneai64.dts
index 43da4dafba8..c75f8aac302 100644
--- a/arch/arm/dts/k3-j721e-r5-beagleboneai64.dts
+++ b/arch/arm/dts/k3-j721e-r5-beagleboneai64.dts
@@ -95,91 +95,20 @@ 
 	bootph-pre-ram;
 };
 
+#ifndef CONFIG_ARM64
+
 &binman {
-	tiboot3-j721e-gp-evm.bin {
-		filename = "tiboot3-j721e-gp-evm.bin";
-		symlink = "tiboot3.bin";
-		ti-secure-rom {
-			content = <&u_boot_spl_unsigned>;
-			core = "public";
-			load = <CONFIG_SPL_TEXT_BASE>;
-			sw-rev = <CONFIG_K3_X509_SWRV>;
-			keyfile = "ti-degenerate-key.pem";
-		};
-		u_boot_spl_unsigned: u-boot-spl {
-			no-expanded;
-		};
+	tiboot3-j721e-beagleboneai64 {
+		insert-template = <&tiboot3_j721e_gp>;
 	};
 
-	sysfw_gp {
-		filename = "sysfw.bin_gp";
-		ti-secure-rom {
-			content = <&ti_fs>;
-			core = "secure";
-			load = <0x40000>;
-			sw-rev = <CONFIG_K3_X509_SWRV>;
-			keyfile = "ti-degenerate-key.pem";
-		};
-		ti_fs: ti-fs.bin {
-			filename = "ti-sysfw/ti-fs-firmware-j721e-gp.bin";
-			type = "blob-ext";
-			optional;
-		};
+	sysfw-j721e-beagleboneai64 {
+		insert-template = <&sysfw_gp>;
 	};
 
-	itb_gp {
-		filename = "sysfw-j721e-gp-evm.itb";
-		symlink = "sysfw.itb";
-		fit {
-			description = "SYSFW and Config fragments";
-			#address-cells = <1>;
-			images {
-				sysfw.bin {
-					description = "sysfw";
-					type = "firmware";
-					arch = "arm";
-					compression = "none";
-					blob-ext {
-					    filename = "sysfw.bin_gp";
-					};
-				};
-				board-cfg.bin {
-					description = "board-cfg";
-					type = "firmware";
-					arch = "arm";
-					compression = "none";
-					blob-ext {
-						filename = "board-cfg.bin";
-					};
-				};
-				pm-cfg.bin {
-					description = "pm-cfg";
-					type = "firmware";
-					arch = "arm";
-					compression = "none";
-					blob-ext {
-						filename = "pm-cfg.bin";
-					};
-				};
-				rm-cfg.bin {
-					description = "rm-cfg";
-					type = "firmware";
-					arch = "arm";
-					compression = "none";
-					blob-ext {
-						filename = "rm-cfg.bin";
-					};
-				};
-				sec-cfg.bin {
-					description = "sec-cfg";
-					type = "firmware";
-					arch = "arm";
-					compression = "none";
-					blob-ext {
-						filename = "sec-cfg.bin";
-					};
-				};
-			};
-		};
+	itb-j721e-beagleboneai64 {
+		insert-template = <&itb_gp>;
 	};
 };
+
+#endif
diff --git a/arch/arm/dts/k3-j721e-sk-u-boot.dtsi b/arch/arm/dts/k3-j721e-sk-u-boot.dtsi
index 8b205553cdf..644a11005ed 100644
--- a/arch/arm/dts/k3-j721e-sk-u-boot.dtsi
+++ b/arch/arm/dts/k3-j721e-sk-u-boot.dtsi
@@ -3,6 +3,10 @@ 
  * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
  */
 
+#define SPL_BOARD_DTB "spl/dts/k3-j721e-sk.dtb"
+#define BOARD_DESCRIPTION "k3-j721e-sk"
+#define UBOOT_BOARD_DESCRIPTION "U-Boot for J721E SK"
+
 #include "k3-j721e-binman.dtsi"
 
 &cbass_main {
@@ -159,3 +163,83 @@ 
 		bootph-all;
 	};
 };
+
+#ifndef CONFIG_ARM64
+
+&binman {
+	tiboot3-j721e-sr1-1-sk {
+		insert-template = <&tiboot3_j721e_sr1_1_hs>;
+	};
+
+	sysfw-j721e-sr1-1-hs-sk {
+		insert-template = <&sysfw>;
+	};
+
+	itb-j721e-sr1-1-hs-sk {
+		insert-template = <&itb>;
+	};
+};
+
+&binman {
+	tiboot3-j721e-sr2-hs-sk {
+		insert-template = <&tiboot3_j721e_sr2_hs>;
+	};
+
+	sysfw-j721e-sr2-hs-sk {
+		insert-template = <&sysfw_sr2>;
+	};
+
+	itb-j721e-sr2-hs-sk {
+		insert-template = <&itb_sr2>;
+	};
+};
+
+&binman {
+	tiboot3-j721e-sr2-hs-fs-sk {
+		insert-template = <&tiboot3_j721e_sr2_hs_fs>;
+	};
+
+	sysfw-j721e-sr2-hs-fs-sk {
+		insert-template = <&sysfw_fs>;
+	};
+
+	itb-j721e-sr2-hs-fs-sk {
+		insert-template = <&itb_fs>;
+	};
+};
+
+&binman {
+	tiboot3-j721e-gp-sk {
+		insert-template = <&tiboot3_j721e_gp>;
+	};
+
+	sysfw-j721e-gp-sk {
+		insert-template = <&sysfw_gp>;
+	};
+
+	itb-j721e-gp-sk {
+		insert-template = <&itb_gp>;
+	};
+};
+
+#else
+
+&binman {
+	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
diff --git a/arch/arm/dts/k3-j721s2-binman.dtsi b/arch/arm/dts/k3-j721s2-binman.dtsi
index 7efb135bdff..57521f2d356 100644
--- a/arch/arm/dts/k3-j721s2-binman.dtsi
+++ b/arch/arm/dts/k3-j721s2-binman.dtsi
@@ -5,11 +5,12 @@ 
 
 #include "k3-binman.dtsi"
 
-#ifdef CONFIG_TARGET_J721S2_R5_EVM
+#ifndef CONFIG_ARM64
 
 &binman {
-	tiboot3-j721s2-hs-evm.bin {
+	tiboot3_j721s2_hs_evm: template-9 {
 		filename = "tiboot3-j721s2-hs-evm.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl>, <&ti_fs_enc>, <&combined_tifs_cfg>,
 				<&combined_dm_cfg>, <&sysfw_inner_cert>;
@@ -49,12 +50,14 @@ 
 			filename = "combined-dm-cfg.bin";
 			type = "blob-ext";
 		};
+		};
 	};
 };
 
 &binman {
-	tiboot3-j721s2-hs-fs-evm.bin {
+	tiboot3_j721s2_hs_fs_evm: template-10 {
 		filename = "tiboot3-j721s2-hs-fs-evm.bin";
+		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>;
@@ -94,13 +97,15 @@ 
 			filename = "combined-dm-cfg.bin";
 			type = "blob-ext";
 		};
+		};
 	};
 };
 
 &binman {
-	tiboot3-j721s2-gp-evm.bin {
+	tiboot3_j721s2_gp_evm: template-11 {
 		filename = "tiboot3-j721s2-gp-evm.bin";
 		symlink = "tiboot3.bin";
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
 				<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
@@ -133,19 +138,11 @@ 
 			filename = "combined-dm-cfg.bin";
 			type = "blob-ext";
 		};
-
+		};
 	};
 };
 
-#endif
-
-#ifdef CONFIG_TARGET_J721S2_A72_EVM
-
-#define SPL_J721S2_EVM_DTB "spl/dts/k3-j721s2-common-proc-board.dtb"
-#define SPL_AM68_SK_DTB "spl/dts/k3-am68-sk-base-board.dtb"
-
-#define J721S2_EVM_DTB "u-boot.dtb"
-#define AM68_SK_DTB "arch/arm/dts/k3-am68-sk-base-board.dtb"
+#else
 
 &binman {
 	ti-dm {
@@ -154,7 +151,7 @@ 
 			filename = "ti-dm/j721s2/ipc_echo_testb_mcu1_0_release_strip.xer5f";
 		};
 	};
-	ti-spl {
+	ti_spl: template-12 {
 		insert-template = <&ti_spl_template>;
 
 		fit {
@@ -291,129 +288,19 @@ 
 						filename = "ti-dm.bin";
 					};
 				};
-
-				fdt-0 {
-					description = "k3-j721s2-common-proc-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&spl_j721s2_evm_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					spl_j721s2_evm_dtb: blob-ext {
-						filename = SPL_J721S2_EVM_DTB;
-					};
-
-				};
-
-				fdt-1 {
-					description = "k3-am68-sk-base-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&spl_am68_sk_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					spl_am68_sk_dtb: blob-ext {
-						filename = SPL_AM68_SK_DTB;
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j721s2-common-proc-board";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
-
-				conf-1 {
-					description = "k3-am68-sk-base-board";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-1";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot {
+	u_boot: template-13 {
 		insert-template = <&u_boot_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for J721S2 Board";
-				};
-
-				fdt-0 {
-					description = "k3-j721s2-common-proc-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&j721s2_evm_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					j721s2_evm_dtb: blob-ext {
-						filename = J721S2_EVM_DTB;
-					};
-
-					hash {
-						algo = "crc32";
-					};
-				};
-
-				fdt-1 {
-					description = "k3-am68-sk-base-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					ti-secure {
-						content = <&am68_sk_dtb>;
-						keyfile = "custMpk.pem";
-					};
-					am68_sk_dtb: blob-ext {
-						filename = AM68_SK_DTB;
-					};
-
-					hash {
-						algo = "crc32";
-					};
-				};
-
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j721s2-common-proc-board";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-				conf-1 {
-					description = "k3-am68-sk-base-board";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-1";
-				};
-
-			};
-		};
 	};
 };
 
 &binman {
-	ti-spl_unsigned {
+	ti_spl_unsigned: template-14 {
 		insert-template = <&ti_spl_unsigned_template>;
 
 		fit {
@@ -423,102 +310,14 @@ 
 						filename = "ti-dm.bin";
 					};
 				};
-
-				fdt-0 {
-					description = "k3-j721s2-common-proc-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = SPL_J721S2_EVM_DTB;
-					};
-				};
-				fdt-1 {
-					description = "k3-am68-sk-base-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = SPL_AM68_SK_DTB;
-					};
-				};
-
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j721s2-common-proc-board";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
-				conf-1 {
-					description = "k3-am68-sk-base-board";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-1";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot_unsigned {
+	u_boot_unsigned: template-15 {
 		insert-template = <&u_boot_unsigned_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for J721S2 Board";
-				};
-
-				fdt-0 {
-					description = "k3-j721s2-common-proc-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = J721S2_EVM_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-				fdt-1 {
-					description = "k3-am68-sk-base-board";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-					blob {
-						filename = AM68_SK_DTB;
-					};
-					hash {
-						algo = "crc32";
-					};
-				};
-
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j721s2-common-proc-board";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-				conf-1 {
-					description = "k3-am68-sk-base-board";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-1";
-				};
-			};
-		};
 	};
 };
 #endif
diff --git a/arch/arm/dts/k3-j721s2-common-proc-board-u-boot.dtsi b/arch/arm/dts/k3-j721s2-common-proc-board-u-boot.dtsi
index a3ebf5996ea..4ef8f54b87e 100644
--- a/arch/arm/dts/k3-j721s2-common-proc-board-u-boot.dtsi
+++ b/arch/arm/dts/k3-j721s2-common-proc-board-u-boot.dtsi
@@ -3,6 +3,10 @@ 
  * Copyright (C) 2021-2023 Texas Instruments Incorporated - https://www.ti.com/
  */
 
+#define SPL_BOARD_DTB "spl/dts/k3-j721s2-common-proc-board.dtb"
+#define BOARD_DESCRIPTION "k3-j721s2-common-proc-board"
+#define UBOOT_BOARD_DESCRIPTION "U-Boot for J721S2 EVM"
+
 #include "k3-j721s2-binman.dtsi"
 
 &wkup_i2c0 {
@@ -125,3 +129,41 @@ 
 	dr_mode = "peripheral";
 	bootph-all;
 };
+
+#ifndef CONFIG_ARM64
+
+&binman {
+	tiboot3-j721s2-hs-evm {
+		insert-template = <&tiboot3_j721s2_hs_evm>;
+	};
+
+	tiboot3-j721s2-hs-fs-evm {
+		insert-template = <&tiboot3_j721s2_hs_fs_evm>;
+	};
+
+	tiboot3-j721s2-gp-evm {
+		insert-template = <&tiboot3_j721s2_gp_evm>;
+	};
+};
+
+#else
+
+&binman {
+	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
diff --git a/arch/arm/dts/k3-j784s4-binman.dtsi b/arch/arm/dts/k3-j784s4-binman.dtsi
index e4dd6e14a66..afe9829e62f 100644
--- a/arch/arm/dts/k3-j784s4-binman.dtsi
+++ b/arch/arm/dts/k3-j784s4-binman.dtsi
@@ -5,16 +5,16 @@ 
 
 #include "k3-binman.dtsi"
 
-#ifdef CONFIG_TARGET_J784S4_R5_EVM
+#ifndef CONFIG_ARM64
 
 &rcfg_yaml_tifs {
 	config = "tifs-rm-cfg.yaml";
 };
 
 &binman {
-	tiboot3-j784s4-hs-evm.bin {
+	tiboot3_j784s4_hs_evm: template-9 {
 		filename = "tiboot3-j784s4-hs-evm.bin";
-
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl>, <&ti_fs_enc>, <&combined_tifs_cfg>,
 				<&combined_dm_cfg>, <&sysfw_inner_cert>;
@@ -59,13 +59,14 @@ 
 			filename = "combined-dm-cfg.bin";
 			type = "blob-ext";
 		};
+		};
 	};
 };
 
 &binman {
-	tiboot3-j784s4-hs-fs-evm.bin {
+	tiboot3_j784s4_hs_fs_evm: template-10 {
 		filename = "tiboot3-j784s4-hs-fs-evm.bin";
-
+		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>;
@@ -110,14 +111,15 @@ 
 			filename = "combined-dm-cfg.bin";
 			type = "blob-ext";
 		};
+		};
 	};
 };
 
 &binman {
-	tiboot3-j784s4-gp-evm.bin {
+	tiboot3_j784s4_gp_evm: template-11 {
 		filename = "tiboot3-j784s4-gp-evm.bin";
 		symlink = "tiboot3.bin";
-
+		section {
 		ti-secure-rom {
 			content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
 				<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
@@ -154,15 +156,11 @@ 
 			filename = "combined-dm-cfg.bin";
 			type = "blob-ext";
 		};
-
+		};
 	};
 };
-#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 {
@@ -173,7 +171,7 @@ 
 		};
 	};
 
-	ti-spl {
+	ti_spl: template-12 {
 		insert-template = <&ti_spl_template>;
 
 		fit {
@@ -188,85 +186,19 @@ 
 						filename = "ti-dm.bin";
 					};
 				};
-
-				fdt-0 {
-					description = "k3-j784s4-evm";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-
-					ti-secure {
-						content = <&spl_j784s4_evm_dtb>;
-						keyfile = "custMpk.pem";
-					};
-
-					spl_j784s4_evm_dtb: blob-ext {
-						filename = SPL_J784S4_EVM_DTB;
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j784s4-evm";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot {
+	u_boot: template-13 {
 		insert-template = <&u_boot_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for J784S4 board";
-				};
-
-				fdt-0 {
-					description = "k3-j784s4-evm";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-
-					ti-secure {
-						content = <&j784s4_evm_dtb>;
-						keyfile = "custMpk.pem";
-					};
-
-					j784s4_evm_dtb: blob-ext {
-						filename = J784S4_EVM_DTB;
-					};
-
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j784s4-evm";
-					firmware = "uboot";
-					loadables = "uboot";
-					fdt = "fdt-0";
-				};
-			};
-		};
 	};
 };
 
 &binman {
-	ti-spl_unsigned {
+	ti_spl_unsigned: template-14 {
 		insert-template = <&ti_spl_unsigned_template>;
 
 		fit {
@@ -276,70 +208,14 @@ 
 						filename = "ti-dm.bin";
 					};
 				};
-
-				fdt-0 {
-					description = "k3-j784s4-evm";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-
-					spl_j784s4_evm_dtb_unsigned: blob {
-						filename = SPL_J784S4_EVM_DTB;
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j784s4-evm";
-					firmware = "atf";
-					loadables = "tee", "dm", "spl";
-					fdt = "fdt-0";
-				};
 			};
 		};
 	};
 };
 
 &binman {
-	u-boot_unsigned {
+	u_boot_unsigned: template-15 {
 		insert-template = <&u_boot_unsigned_template>;
-
-		fit {
-			images {
-				uboot {
-					description = "U-Boot for J784S4 board";
-				};
-
-				fdt-0 {
-					description = "k3-j784s4-evm";
-					type = "flat_dt";
-					arch = "arm";
-					compression = "none";
-
-					j784s4_evm_dtb_unsigned: blob {
-						filename = J784S4_EVM_DTB;
-					};
-
-					hash {
-						algo = "crc32";
-					};
-				};
-			};
-
-			configurations {
-				default = "conf-0";
-
-				conf-0 {
-					description = "k3-j784s4-evm";
-					firmware = "uboot";
-					loadables = "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 ac749782bfc..e5e5a6c75be 100644
--- a/arch/arm/dts/k3-j784s4-evm-u-boot.dtsi
+++ b/arch/arm/dts/k3-j784s4-evm-u-boot.dtsi
@@ -3,6 +3,10 @@ 
  * 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 EVM"
+
 #include "k3-j784s4-binman.dtsi"
 
 / {
@@ -29,3 +33,41 @@ 
 		bootph-pre-ram;
 	};
 };
+
+#ifndef CONFIG_ARM64
+
+&binman {
+	tiboot3-j784s4-hs-evm {
+		insert-template = <&tiboot3_j784s4_hs_evm>;
+	};
+
+	tiboot3-j784s4-hs-fs-evm {
+		insert-template = <&tiboot3_j784s4_hs_fs_evm>;
+	};
+
+	tiboot3-j784s4-gp-evm {
+		insert-template = <&tiboot3_j784s4_gp_evm>;
+	};
+};
+
+#else
+
+&binman {
+	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