On 15/06/2022 09:48, Neha Malcom Francis wrote:
> By providing entries in the binman node of the device tree, binman will
> be able to find and package board config binary artifacts generated by
> TIBoardConfig with sysfw.bin and generate the final image sysfw.itb.
> 
> k3-j721e-r5-binman.dtsi has been introduced for R5 specific binman node.
> It can be then be include by files that require it like
> k3-j721e-r5-common-proc-board-u-boot.dtsi.
> 
> Signed-off-by: Tarun Sahu <t-s...@ti.com>
> [n-fran...@ti.com: prepared patch for upstreaming]
> Signed-off-by: Neha Malcom Francis <n-fran...@ti.com>
> ---
>  arch/arm/dts/k3-j721e-r5-binman.dtsi          | 88 +++++++++++++++++++
>  .../k3-j721e-r5-common-proc-board-u-boot.dtsi |  1 +
>  board/ti/j721e/Kconfig                        |  1 +
>  3 files changed, 90 insertions(+)
>  create mode 100644 arch/arm/dts/k3-j721e-r5-binman.dtsi
> 
> diff --git a/arch/arm/dts/k3-j721e-r5-binman.dtsi 
> b/arch/arm/dts/k3-j721e-r5-binman.dtsi
> new file mode 100644
> index 0000000000..e3aeefb08f
> --- /dev/null
> +++ b/arch/arm/dts/k3-j721e-r5-binman.dtsi
> @@ -0,0 +1,88 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +// Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/
> +
> +#include <config.h>
> +
> +/ {
> +     binman: binman {
> +             multiple-images;
> +     };
> +};
> +
> +&binman {
> +     tiboot3 {
> +             filename = "tiboot3.bin";
> +             ti-x509-cert {
> +                     content = <&image1>;
> +                     core = <16>;
> +                     load = <CONFIG_SPL_TEXT_BASE>;
> +             };
> +             image1: u-boot-spl {
> +                     no-expanded;
> +             };

Please put empty lines between properties and nodes, and between each
node. Labels could be u_boot_spl, ti_sysfw instead of image1/2.

> +     };
> +     binary {
> +             filename = "sysfw.bin";
> +             ti-x509-cert {
> +                     content = <&image2>;
> +                     core = <0>;
> +                     load = <0x0040000>;
> +             };
> +             image2: ti-sysfw {
> +             };
> +     };
> +     itb {
> +             filename = "sysfw.itb";
> +             fit {
> +                     description = "SYSFW and Config Fragments";
> +                     #address-cells = <1>;
> +                     images {
> +                             sysfw.bin {
> +                                     description = "sysfw";
> +                                     type = "firmware";
> +                                     arch = "arm";
> +                                     compression = "none";
> +                                     blob {
> +                                             filename = "sysfw.bin";
> +                                     };
> +                             };

I dislike having the meaningless 'blob' and 'blob-ext' as node names.
Having the extension doesn't make much sense to me for the FIT entry,
but I like it for the blob itself:

    sysfw {
            description = "sysfw";
            type = "firmware";
            arch = "arm";
            compression = "none";

            sysfw.bin {
                    filename = "sysfw.bin";
                    type = "blob";
            };
    };

> +                             board-cfg.bin {
> +                                     description = "board-cfg";
> +                                     type = "firmware";
> +                                     arch = "arm";
> +                                     compression = "none";
> +                                     blob-ext {
> +                                             filename = "board-cfg.bin";
> +                                     };
> +                             };
> +                             pm-cfg.bin {
> +                                     description = "pm-cfg";
> +                                     type = "firmware";
> +                                     arch = "arm";
> +                                     compression = "none";
> +                                     blob-ext {
> +                                             filename = "pm-cfg.bin";
> +                                     };
> +                             };
> +                             rm-cfg.bin {
> +                                     description = "rm-cfg";
> +                                     type = "firmware";
> +                                     arch = "arm";
> +                                     compression = "none";
> +                                     blob-ext {
> +                                             filename = "rm-cfg.bin";
> +                                     };
> +                             };
> +                             sec-cfg.bin {
> +                                     description = "sec-cfg";
> +                                     type = "firmware";
> +                                     arch = "arm";
> +                                     compression = "none";
> +                                     blob-ext {
> +                                             filename = "sec-cfg.bin";
> +                                     };
> +                             };
> +                     };
> +             };
> +     };
> +};
> diff --git a/arch/arm/dts/k3-j721e-r5-common-proc-board-u-boot.dtsi 
> b/arch/arm/dts/k3-j721e-r5-common-proc-board-u-boot.dtsi
> index 48c6ddf672..75ec722e89 100644
> --- a/arch/arm/dts/k3-j721e-r5-common-proc-board-u-boot.dtsi
> +++ b/arch/arm/dts/k3-j721e-r5-common-proc-board-u-boot.dtsi
> @@ -4,6 +4,7 @@
>   */
>  
>  #include "k3-j721e-common-proc-board-u-boot.dtsi"
> +#include "k3-j721e-r5-binman.dtsi"
>  
>  / {
>       chosen {
> diff --git a/board/ti/j721e/Kconfig b/board/ti/j721e/Kconfig
> index c28752a658..a3a9d504ae 100644
> --- a/board/ti/j721e/Kconfig
> +++ b/board/ti/j721e/Kconfig
> @@ -24,6 +24,7 @@ config TARGET_J721E_R5_EVM
>       select RAM
>       select SPL_RAM
>       select K3_DDRSS
> +     select BINMAN
>       imply SYS_K3_SPL_ATF
>       imply TI_I2C_BOARD_DETECT
>  

Reply via email to