Re: [PATCH RFC v3 10/11] ti: dtsi: j721e: Use binman to package tispl.bin

Roger Quadros
2022-06-15T14:25:38Z

Neha,

On 15/06/2022 09:48, Neha Malcom Francis wrote:
> tispl.bin must be packaged (with ATF, OPTEE, DM and A72 SPL) for J721E.
> Binman picks up and packages entries according to the
> description given in the device tree.
>
> k3-j721e-a72-binman.dtsi has been introduced for A72 specific binman
> node. It is included by k3-j721e-common-proc-board-u-boot.dtsi
>
> Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
> ---
> arch/arm/dts/k3-j721e-a72-binman.dtsi | 86 +++++++++++++++++++
> .../k3-j721e-common-proc-board-u-boot.dtsi | 1 +
> board/ti/j721e/Kconfig | 1 +
> 3 files changed, 88 insertions(+)
> create mode 100644 arch/arm/dts/k3-j721e-a72-binman.dtsi
>
> diff --git a/arch/arm/dts/k3-j721e-a72-binman.dtsi b/arch/arm/dts/k3-j721e-a72-binman.dtsi
> new file mode 100644
> index 0000000000..beb3424bb9
> --- /dev/null
> +++ b/arch/arm/dts/k3-j721e-a72-binman.dtsi

Will this file be used for all j721e-a72 boards or only common processor board?
It should be named accordingly.

You might as well combine the separate r5 and a72 binman files into one file.
You can use CONFIG_TARGET_J721E_R5_EVM and CONFIG_TARGET_J721E_A72_EVM
to selectively enable the required entries.

So, k3-j721e-common-proc-board-binman.dtsi?

> @@ -0,0 +1,86 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +// Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/
> +
> +#include <config.h>
> +
> +#ifdef CONFIG_ARM64

> +/ {
> + binman: binman {
> + multiple-images;
> + };
> +};
> +

#ifdef CONFIG_TARGET_J721E_A72_EVM

> +&binman {
> + tispl {
> + filename = "tispl.bin";
> + fit {
> + description = "FIT IMAGE";

This used to be "Configuration to load ATF and SPL", let's retain the description.

> + #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>;
> + atf-bl31 {
> + };
> + };
> + tee {
> + description = "OPTEE";
> + type = "tee";
> + arch = "arm64";
> + compression = "none";
> + os = "tee";
> + load = <0x9e800000>;
> + entry = <0x9e800000>;
> + tee-os {
> + };
> + };
> + dm {
> + description = "DM binary";
> + type = "firmware";
> + arch = "arm32";
> + compression = "none";
> + os = "DM";
> + load = <0x89000000>;
> + entry = <0x89000000>;
> + ti-dm {
> + };
> + };
> + spl {
> + description = "SPL (64-bit)";
> + type = "standalone";
> + os = "U-Boot";
> + arch = "arm64";
> + compression = "none";
> + load = <CONFIG_SPL_TEXT_BASE>;
> + entry = <CONFIG_SPL_TEXT_BASE>;
> + u-boot-spl-nodtb {
> + };
> + };
> + k3-j721e-common-proc-board.dtb {
> + description = "k3-j721e-common-proc-board";
> + type = "flat_dt";
> + arch = "arm";
> + compression = "none";
> + blob-ext {
> + filename = "spl/dts/k3-j721e-common-proc-board.dtb";
> + };
> + };
> + };
> + configurations {
> + default = "conf";

"conf-1"?
more confs can be added later

> + conf {
> + description = "k3-j721e-common-proc-board";
> + firmware = "atf";
> + loadables = "tee", "dm", "spl";
> + fdt = "k3-j721e-common-proc-board.dtb";
> + };
> + };
> + };
> + };
> +};
> +#endif

what about u-boot.img?

you need a binman entry for that else it won't be generated right?

> 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 677a72d2a2..6490d71f7e 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
> @@ -4,6 +4,7 @@
> */
>
> #include <dt-bindings/net/ti-dp83867.h>
> +#include "k3-j721e-a72-binman.dtsi"
>
> / {
> chosen {
> diff --git a/board/ti/j721e/Kconfig b/board/ti/j721e/Kconfig
> index a3a9d504ae..3cf05f0d3b 100644
> --- a/board/ti/j721e/Kconfig
> +++ b/board/ti/j721e/Kconfig
> @@ -14,6 +14,7 @@ config TARGET_J721E_A72_EVM
> select BOARD_LATE_INIT
> imply TI_I2C_BOARD_DETECT
> select SYS_DISABLE_DCACHE_OPS
> + select BINMAN
>
> config TARGET_J721E_R5_EVM
> bool "TI K3 based J721E EVM running on R5"

cheers,
-roger