[PATCH 3/4] arm: dts: k3-*-binman.dtsi: Clean up and templatize boot binaries
Neha Malcom Francis
n-francis at ti.com
Mon Mar 25 11:20:24 CET 2024
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 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
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 */
--
Thanking You
Neha Malcom Francis
More information about the U-Boot
mailing list