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

Manorit Chawdhry m-chawdhry at ti.com
Mon Mar 25 10:20:28 CET 2024


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 at 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 at 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 */


More information about the U-Boot mailing list