[PATCH v5 12/17] arm: dts: Introduce j784s4 u-boot dts files

Manorit Chawdhry m-chawdhry at ti.com
Fri Dec 1 05:18:53 CET 2023


Hi Andrew,

On 09:11-20231130, Andrew Davis wrote:
> On 11/30/23 5:55 AM, Apurva Nandan wrote:
> > Introduce the base dts files needed for u-boot or to augment the linux
> > dtbs for use in the u-boot-spl and u-boot binaries.
> > 
> > Signed-off-by: Hari Nagalla <hnagalla at ti.com>
> > [ add binman and ddr dtsi files ]
> > Signed-off-by: Neha Malcom Francis <n-francis at ti.com>
> > Signed-off-by: Dasnavis Sabiya <sabiya.d at ti.com>
> > Signed-off-by: Apurva Nandan <a-nandan at ti.com>
> > ---
> >   arch/arm/dts/Makefile                        |    3 +-
> >   arch/arm/dts/k3-j784s4-binman.dtsi           |  346 +
> >   arch/arm/dts/k3-j784s4-ddr-evm-lp4-4266.dtsi | 8757 +++++++++++++++++
> >   arch/arm/dts/k3-j784s4-ddr.dtsi              | 8858 ++++++++++++++++++
> >   arch/arm/dts/k3-j784s4-evm-u-boot.dtsi       |   25 +
> >   arch/arm/dts/k3-j784s4-r5-evm.dts            |  105 +
> >   6 files changed, 18093 insertions(+), 1 deletion(-)
> >   create mode 100644 arch/arm/dts/k3-j784s4-binman.dtsi
> >   create mode 100644 arch/arm/dts/k3-j784s4-ddr-evm-lp4-4266.dtsi
> >   create mode 100644 arch/arm/dts/k3-j784s4-ddr.dtsi
> >   create mode 100644 arch/arm/dts/k3-j784s4-evm-u-boot.dtsi
> >   create mode 100644 arch/arm/dts/k3-j784s4-r5-evm.dts
> > 
> > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> > index 1a63ccba8e..b73f8a9230 100644
> > --- a/arch/arm/dts/Makefile
> > +++ b/arch/arm/dts/Makefile
> > @@ -1409,7 +1409,8 @@ dtb-$(CONFIG_SOC_K3_J721S2) += k3-am68-sk-base-board.dtb\
> >   			       k3-j721s2-common-proc-board.dtb\
> >   			       k3-j721s2-r5-common-proc-board.dtb
> >   dtb-$(CONFIG_SOC_K3_J784S4) += k3-am69-sk.dtb\
> > -			       k3-j784s4-evm.dtb
> > +			       k3-j784s4-evm.dtb\
> > +			       k3-j784s4-r5-evm.dtb
> >   dtb-$(CONFIG_SOC_K3_AM642) += k3-am642-evm.dtb \
> >   			      k3-am642-r5-evm.dtb \
> >   			      k3-am642-sk.dtb \
> > diff --git a/arch/arm/dts/k3-j784s4-binman.dtsi b/arch/arm/dts/k3-j784s4-binman.dtsi
> > new file mode 100644
> > index 0000000000..7349c2ba38
> > --- /dev/null
> > +++ b/arch/arm/dts/k3-j784s4-binman.dtsi
> > @@ -0,0 +1,346 @@
> > +// SPDX-License-Identifier: GPL-2.0-only
> > +/*
> > + * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
> > + */
> > +
> > +#include "k3-binman.dtsi"
> > +
> > +#ifdef CONFIG_TARGET_J784S4_R5_EVM
> > +
> > +&rcfg_yaml_tifs {
> > +	config = "tifs-rm-cfg.yaml";
> > +};
> > +
> > +&binman {
> > +	tiboot3-j784s4-hs-evm.bin {
> > +		filename = "tiboot3-j784s4-hs-evm.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 = <0x41c00000>;
> > +			load-sysfw = <0x40000>;
> > +			load-sysfw-data = <0x66800>;
> > +			load-dm-data = <0x41c80000>;
> > +		};
> > +
> > +		u_boot_spl: u-boot-spl {
> > +			no-expanded;
> > +		};
> > +
> > +		ti_fs_enc: ti-fs-enc.bin {
> > +			filename = "ti-sysfw/ti-fs-firmware-j784s4-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-j784s4-hs-cert.bin";
> > +			type = "blob-ext";
> > +			optional;
> > +		};
> > +
> > +		combined_dm_cfg: combined-dm-cfg.bin {
> > +			filename = "combined-dm-cfg.bin";
> > +			type = "blob-ext";
> > +		};
> > +	};
> > +};
> > +
> > +&binman {
> > +	tiboot3-j784s4-hs-fs-evm.bin {
> > +		filename = "tiboot3-j784s4-hs-fs-evm.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 = <0x41c00000>;
> > +			load-sysfw = <0x40000>;
> > +			load-sysfw-data = <0x66800>;
> > +			load-dm-data = <0x41c80000>;
> > +		};
> > +
> > +		u_boot_spl_fs: u-boot-spl {
> > +			no-expanded;
> > +		};
> > +
> > +		ti_fs_enc_fs: ti-fs-enc.bin {
> > +			filename = "ti-sysfw/ti-fs-firmware-j784s4-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-j784s4-hs-fs-cert.bin";
> > +			type = "blob-ext";
> > +			optional;
> > +		};
> > +
> > +		combined_dm_cfg_fs: combined-dm-cfg.bin {
> > +			filename = "combined-dm-cfg.bin";
> > +			type = "blob-ext";
> > +		};
> > +	};
> > +};
> > +
> > +&binman {
> > +	tiboot3-j784s4-gp-evm.bin {
> > +		filename = "tiboot3-j784s4-gp-evm.bin";
> > +		symlink = "tiboot3.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 = <0x41c00000>;
> > +			content-sysfw = <&ti_fs_gp>;
> > +			load-sysfw = <0x40000>;
> > +			content-sysfw-data = <&combined_tifs_cfg_gp>;
> > +			load-sysfw-data = < 0x66800>;
> > +			content-dm-data = <&combined_dm_cfg_gp>;
> > +			load-dm-data = <0x41c80000>;
> > +			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-j784s4-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";
> > +		};
> > +
> > +	};
> > +};
> > +#endif
> > +
> > +#ifdef CONFIG_TARGET_J784S4_A72_EVM
> > +
> > +#define SPL_J784S4_EVM_DTB "spl/dts/k3-j784s4-evm.dtb"
> > +
> > +#define J784S4_EVM_DTB "u-boot.dtb"
> > +
> 
> Why not define this as "arch/arm/dts/k3-j784s4-evm.dtb"? Seems we use this
> as a hacky way to change this item based on CONFIG_DEFAULT_DEVICE_TREE as
> that DT will be renamed "u-boot.dtb". But I'm not sure what that gains us.
> And why only do it for U-Boot and not SPL_? If runtime selection is not
> working then we still have the wrong DTB for SPL just the same.
> 
> It also means we have in some builds we have a node named "j784s4_evm_dtb"
> that contains the SK DTB, and the node called "am69_sk_dtb" *also* contains
> the SK DTB..
> 

This is required for FIT Signature generation actually, FIT Signature
doesn't sign multiple DTBs and we use u-boot.dtb at the moment for
signing nodes in it. U-boot makefile has a flag of EXT_DTB that actually
gets propagated to u-boot.dtb at the end and this is how the signature
node is being compiled back to u-boot by the OEs.

Though going forward, it looks like we don't plan on having
the same support for SKs and EVMs and we'll end up changing
CONFIG_DEFAULT_DEVICE_TREE in the defconfigs/config_fragments for this
support. If that is the case then I think it's better to start using
u-boot.dtb and something similar for SPL if one exists as I am not sure
if we are going for runtime detection anymore that requires packing
multiple DTBs.

Regards,
Manorit

> Andrew


More information about the U-Boot mailing list