[PATCH v7 04/10] arch: arm: k3-binman: add fit for falcon boot

Bryan Brattlof bb at ti.com
Fri Jun 6 13:57:19 CEST 2025


On June  3, 2025 thus sayeth Anshul Dalal:
> This adds creation of tispl_falcon.bin for the am62a, 62p and 62x.
> 
> The contents are the same as the existing tispl.bin but A53's spl and
> the fdt have been removed as they are not needed in falcon boot.
> 
> This reduces boot time since the payload size is smaller and we also
> aren't authenticating the spl and fdt in secure boot.
> 
> Signed-off-by: Anshul Dalal <anshuld at ti.com>
> ---
>  arch/arm/dts/k3-am625-sk-binman.dtsi | 64 ++++++++++++++++++++++++++++
>  arch/arm/dts/k3-am62a-sk-binman.dtsi | 64 ++++++++++++++++++++++++++++
>  arch/arm/dts/k3-am62p-sk-binman.dtsi | 51 ++++++++++++++++++++++
>  arch/arm/dts/k3-binman.dtsi          | 54 +++++++++++++++++++++++
>  4 files changed, 233 insertions(+)
> 
> diff --git a/arch/arm/dts/k3-am625-sk-binman.dtsi b/arch/arm/dts/k3-am625-sk-binman.dtsi
> index cc619f5920e..9544b9d1134 100644
> --- a/arch/arm/dts/k3-am625-sk-binman.dtsi
> +++ b/arch/arm/dts/k3-am625-sk-binman.dtsi

...

> +				dm {
> +					ti-secure {
> +						content = <&dm_falcon>;
> +						keyfile = "custMpk.pem";
> +					};
> +					dm_falcon: ti-dm {
> +						filename = "ti-dm.bin";
> +					};

When you build this are you using the TI_DM argument? Or are you using 
BINMAN_INDIRS to point to all the firmware? I think this will only look 
for "${BINMAN_INDIRS}/ti-dm.bin" and error out now that DM is mandatory 
unless you use TI_DM which will break a few distro builders' recipes

...

> diff --git a/arch/arm/dts/k3-binman.dtsi b/arch/arm/dts/k3-binman.dtsi
> index 5163161b94d..a678379dae9 100644
> --- a/arch/arm/dts/k3-binman.dtsi
> +++ b/arch/arm/dts/k3-binman.dtsi
> @@ -489,6 +489,60 @@
>  		end_address = <0x0 0x9fffffff>;
>  	};
>  
> +	ti_falcon_template: template-9 {
> +		filename = "tispl_falcon.bin";

Small nitpick: We could probably just call this tifalcon.bin or 
something shorter. It's not really an SPL now.

The bigger issue here (in my mind) is this requires our falcon.config 
fragment to work properly. I don't think it is wise of use to produce 
this image if that fragment isn't applied. It would be a debugging 
nightmare for others outside of the U-Boot space.

> +		pad-byte = <0xff>;
> +
> +		fit {
> +			description = "Configuration without SPL and FDT";
> +			#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>;
> +					ti-secure {
> +						content = <&atf_falcon>;
> +						keyfile = "custMpk.pem";
> +					};
> +					atf_falcon: atf-bl31 {
> +					};
> +				};
> +				tee {
> +					description = "OP-TEE";
> +					type = "tee";
> +					arch = "arm64";
> +					compression = "none";
> +					os = "tee";
> +					load = <CONFIG_K3_OPTEE_LOAD_ADDR>;
> +					entry = <CONFIG_K3_OPTEE_LOAD_ADDR>;
> +					ti-secure {
> +						content = <&tee_falcon>;
> +						keyfile = "custMpk.pem";
> +					};
> +					tee_falcon: tee-os {
> +						optional;
> +					};
> +				};
> +				dm {
> +					description = "DM binary";
> +					type = "firmware";
> +					arch = "arm32";
> +					compression = "none";
> +					os = "DM";
> +					load = <0x89000000>;
> +					entry = <0x89000000>;
> +				};
> +
> +			};
> +		};
> +	};
> +
>  };
>  
>  #endif
> -- 
> 2.49.0
> 


More information about the U-Boot mailing list