[RFC PATCH 3/4] arm: dts: k3-j721e: Separate boot binary build
Manorit Chawdhry
m-chawdhry at ti.com
Fri Mar 1 06:26:38 CET 2024
Hi Neha,
On 16:50-20240228, Neha Malcom Francis wrote:
> Separate out the boot binaries built for J721E boards; J721E EVM and
> J721E SK by using the common templates in k3-j721e-binman.dtsi.
>
> Only the required boot binaries can be built from the templates in the
> boards' respective -u-boot.dtsi file. FDTs and configurations are also
> moved to the -u-boot.dtsi file to allow clear distinction between the
> SoC common stuff vs. what is needed to boot up a board.
>
> Signed-off-by: Neha Malcom Francis <n-francis at ti.com>
> ---
> Note: I have added "dummy" sections so that node for a phandle is found
> correctly. The node for a phandle is searched for among sub-nodes of a
> section (check tools/binman/etype/section.py GetContentsByPhandle) and
> having a template as the section instead, causes failure to find the
> phandle despite it being present in the FDT. So the dummy section
> bypasses this.
>
> Avoided correct DTS alignment for the RFC at least so that it's clear
> what is actually being changed.
>
> arch/arm/dts/k3-j721e-binman.dtsi | 178 +++++-------------
> .../k3-j721e-common-proc-board-u-boot.dtsi | 138 ++++++++++++++
> arch/arm/dts/k3-j721e-sk-u-boot.dtsi | 104 ++++++++++
> 3 files changed, 284 insertions(+), 136 deletions(-)
>
[snip]
> 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 7ae7cf3d4c9..ff96bc3f724 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
> @@ -187,3 +187,141 @@
> &mcu_fss0_ospi1_pins_default {
> bootph-all;
> };
> +
> +#ifdef CONFIG_TARGET_J721E_R5_EVM
> +
> +&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
> +
> +#define SPL_J721E_EVM_DTB "spl/dts/k3-j721e-common-proc-board.dtb"
> +
Trying to gauge the changes that are required for EVM to SK, I notice a
few only ( let me know if I missed ).
1. DTB
2. Description name.
Considering this, templating does seem good but I was thinking of a
different design as well. Let me know what you think about it.
I was thinking that the binman node can remain as is with some generic
macros like taking the fdt-0 node of tispl.bin
We can have something like this.
in arch/arm/dts/k3-j721e-binman.dtsi:
fit {
images {
fdt-0 {
description = BOARD_DESCRIPTION;
ti-secure {
content = <&spl_j721e_dtb>;
keyfile = "custMpk.pem";
}
spl_j721e_dtb: blob-ext {
filename = BOARD_SPL_DTB;
}
}
}
}
And then in the board specific -u-boot overrides, we can have something
like this -
in arch/arm/dts/k3-j721e-common-proc-board-u-boot.dtsi
#define BOARD_DESCRIPTION "k3-j721e-common-proc-board";
#define BOARD_SPL_DTB "spl/dts/k3-j721e-common-proc-board.dtb";
#include <k3-j721e-binman.dtsi>
in arch/arm/dts/k3-j721e-sk-u-boot.dtsi
#define BOARD_DESCRIPTION "k3-j721e-sk";
#define BOARD_SPL_DTB "spl/dts/k3-j721e-sk.dtb"
#include <k3-j721e-binman.dtsi>
I think if we have a less enough diff only between these two then I am
hoping something like this can be better maybe. Let me know what your
thoughts would be on that.
Regards,
Manorit
> +&binman {
> + tispl {
> + insert-template = <&ti_spl>;
> + fit {
> + images {
> + fdt-0 {
> + description = "k3-j721e-common-proc-board";
> + ti-secure {
> + content = <&spl_j721e_evm_dtb>;
> + keyfile = "custMpk.pem";
> + };
> + spl_j721e_evm_dtb: blob-ext {
> + filename = SPL_J721E_EVM_DTB;
> + };
> + };
> + };
> +
> + configurations {
> + conf-0 {
> + description = "k3-j721e-common-proc-board";
> + };
> + };
> + };
> + };
> +
> + u-boot {
> + insert-template = <&u_boot>;
> + fit {
> + images {
> + fdt-0 {
> + description = "k3-j721e-common-proc-board";
> + };
> + };
> +
> + configurations {
> + conf-0 {
> + description = "k3-j721e-common-proc-board";
> + };
> + };
> + };
> + };
> +
> + tispl-unsigned {
> + insert-template = <&ti_spl_unsigned>;
> +
> + fit {
> + images {
> + fdt-0 {
> + description = "k3-j721e-common-proc-board";
> + blob {
> + filename = SPL_J721E_EVM_DTB;
> + };
> + };
> + };
> +
> + configurations {
> + conf-0 {
> + description = "k3-j721e-common-proc-board";
> + };
> + };
> + };
> + };
> +
> + u-boot-unsigned {
> + insert-template = <&u_boot_unsigned>;
> +
> + fit {
> + images {
> + fdt-0 {
> + description = "k3-j721e-common-proc-board";
> + };
> + };
> +
> + configurations {
> + conf-0 {
> + description = "k3-j721e-common-proc-board";
> + };
> + };
> + };
> + };
> +};
> +
> +#endif
> diff --git a/arch/arm/dts/k3-j721e-sk-u-boot.dtsi b/arch/arm/dts/k3-j721e-sk-u-boot.dtsi
> index 479b7bcd6f8..ca18dd5f8ed 100644
> --- a/arch/arm/dts/k3-j721e-sk-u-boot.dtsi
> +++ b/arch/arm/dts/k3-j721e-sk-u-boot.dtsi
> @@ -163,3 +163,107 @@
> };
> };
> };
> +
> +#ifndef CONFIG_ARM64
> +
> +&binman {
> + tiboot3-j721e-gp-sk {
> + insert-template = <&tiboot3_j721e_gp>;
> + filename = "tiboot3-j721e-gp-sk.bin";
> + };
> + sysfw-j721e-gp-sk {
> + insert-template = <&sysfw_gp>;
> + };
> + itb-j721e-gp-sk {
> + insert-template = <&itb_gp>;
> + filename = "sysfw-j721e-gp-sk.itb";
> + };
> +};
> +
> +#else
> +
> +#define SPL_J721E_SK_DTB "spl/dts/k3-j721e-sk.dtb"
> +
> +&binman {
> + tispl {
> + insert-template = <&ti_spl>;
> + fit {
> + images {
> + fdt-0 {
> + description = "k3-j721e-sk";
> + ti-secure {
> + content = <&spl_j721e_sk_dtb>;
> + keyfile = "custMpk.pem";
> + };
> + spl_j721e_sk_dtb: blob-ext {
> + filename = SPL_J721E_SK_DTB;
> + };
> + };
> + };
> +
> + configurations {
> + conf-0 {
> + description = "k3-j721e-sk";
> + };
> + };
> + };
> + };
> +
> + u-boot {
> + insert-template = <&u_boot>;
> + fit {
> + images {
> + fdt-0 {
> + description = "k3-j721e-sk";
> + };
> + };
> +
> + configurations {
> + conf-0 {
> + description = "k3-j721e-sk";
> + };
> + };
> + };
> + };
> +
> + tispl-unsigned {
> + insert-template = <&ti_spl_unsigned>;
> +
> + fit {
> + images {
> + fdt-0 {
> + description = "k3-j721e-sk";
> + blob {
> + filename = SPL_J721E_SK_DTB;
> + };
> + };
> + };
> +
> + configurations {
> + conf-0 {
> + description = "k3-j721e-sk";
> + };
> + };
> + };
> + };
> +
> + u-boot-unsigned {
> + insert-template = <&u_boot_unsigned>;
> +
> + fit {
> + images {
> + fdt-0 {
> + description = "k3-j721e-sk";
> + };
> + };
> +
> + configurations {
> + conf-0 {
> + description = "k3-j721e-sk";
> + };
> + };
> + };
> + };
> +};
> +
> +#endif
> --
> 2.34.1
>
More information about the U-Boot
mailing list