On 06/04/2022 15:29, Neha Malcom Francis wrote:
> Explicit make commands were earlier used to generate tispl.bin image,
> now it is replaced using binman.
> 
> Binman picks up and packages entries according to the description of
> entries given in the binman node in the device tree. The make commands
> that were earlier responsible for generating tispl.bin has been removed.
> 
> j721e-a72-binman.dtsi has been introduced for A72 specific binman node.
> It can be included in files that require it like
> k3-j721e-common-proc-board-u-boot.dtsi.
> 
> Note that make commands for secure devices has also been removed as
> focus is on general purpose devices at present time.
> 
> 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/j721e-a72-binman.dtsi            | 92 +++++++++++++++++++
>  .../k3-j721e-common-proc-board-u-boot.dtsi    |  1 +
>  arch/arm/mach-k3/config.mk                    | 33 -------
>  board/ti/j721e/Kconfig                        |  1 +
>  scripts/Makefile.spl                          |  4 -
>  5 files changed, 94 insertions(+), 37 deletions(-)
>  create mode 100644 arch/arm/dts/j721e-a72-binman.dtsi
> 
> diff --git a/arch/arm/dts/j721e-a72-binman.dtsi 
> b/arch/arm/dts/j721e-a72-binman.dtsi

I'd like a 'k3-' prefix also for this file.

> new file mode 100644
> index 0000000000..a01b1fcc6d
> --- /dev/null
> +++ b/arch/arm/dts/j721e-a72-binman.dtsi
> @@ -0,0 +1,92 @@
> +// 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;
> +     };
> +};
> +
> +&binman {
> +     tispl {
> +             filename = "tispl.bin";
> +             fit {
> +                     description = "FIT IMAGE";
> +                     #address-cells = <1>;
> +                     fit,fdt-list = "of-list";

I guess this prop isn't necessary as you aren't using @fdt-SEQ etc.

> +                     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 {
> +                                             filename = "bl31.bin";
> +                                     };

AFAICT, these named-by-arg blobs shouldn't need you to specify a
filename, they can be handled by environment variables like BL31 etc.
But I see a few instances of this in other files so I'm not sure.

> +                             };
> +                             tee {
> +                                     description = "OPTEE";
> +                                     type = "tee";
> +                                     arch = "arm64";
> +                                     compression = "none";
> +                                     os = "tee";
> +                                     load = <0x9e800000>;
> +                                     entry = <0x9e800000>;
> +                                     tee-os {
> +                                             filename = "tee-pager.bin";
> +                                             missing-msg = "tee-os";
> +                                     };
> +                             };
> +                             dm {
> +                                     description = "DM binary";
> +                                     type = "firmware";
> +                                     arch = "arm32";
> +                                     compression = "none";
> +                                     os = "DM";
> +                                     load = <0x89000000>;
> +                                     entry = <0x89000000>;
> +                                     ti-dm {
> +                                             filename = "dm.bin";
> +                                     };
> +                             };
> +                             spl {
> +                                     description = "SPL (64-bit)";
> +                                     type = "standalone";
> +                                     os = "U-Boot";
> +                                     arch = "arm64";
> +                                     compression = "none";
> +                                     load = <0x80080000>;
> +                                     entry = <0x80080000>;

Maybe these could be CONFIG_SPL_TEXT_BASE? I don't exactly know.

> +                                     blob-ext {
> +                                             filename = 
> "spl/u-boot-spl-nodtb.bin";
> +                                     };

This should be a u-boot-spl-nodtb entry.

> +                             };
> +                             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";
> +                                     };

And this should be a u-boot-spl-dtb entry, assuming this dtb is the same
as spl/u-boot-spl.dtb.

> +                             };
> +                     };
> +                     configurations {
> +                             default = "conf";
> +                             conf {
> +                                     description = 
> "k3-j721e-common-proc-board";
> +                                     firmware = "atf";
> +                                     loadables = "tee", "dm", "spl";
> +                                     fdt = "k3-j721e-common-proc-board.dtb";
> +                             };
> +                     };
> +             };
> +     };
> +};
> +#endif
> 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..78ec6b1d48 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 "j721e-a72-binman.dtsi"
>  
>  / {
>       chosen {
> diff --git a/arch/arm/mach-k3/config.mk b/arch/arm/mach-k3/config.mk
> index 5491fc4dc8..e4b94564b8 100644
> --- a/arch/arm/mach-k3/config.mk
> +++ b/arch/arm/mach-k3/config.mk
> @@ -72,38 +72,5 @@ ifeq ($(CONFIG_SOC_K3_J721E),)
>  export DM := /dev/null
>  endif
>  
> -ifeq ($(CONFIG_TI_SECURE_DEVICE),y)
> -SPL_ITS := u-boot-spl-k3_HS.its
> -$(SPL_ITS): export IS_HS=1
> -INPUTS-y     += tispl.bin_HS
> -else
> -SPL_ITS := u-boot-spl-k3.its
> -INPUTS-y     += tispl.bin
> -endif
> -
> -ifeq ($(CONFIG_SPL_OF_LIST),)
> -LIST_OF_DTB := $(CONFIG_DEFAULT_DEVICE_TREE)
> -else
> -LIST_OF_DTB := $(CONFIG_SPL_OF_LIST)
>  endif
> -
> -quiet_cmd_k3_mkits = MKITS   $@
> -cmd_k3_mkits = \
> -     $(srctree)/tools/k3_fit_atf.sh \

Doesn't look like anything else uses k3_fit_atf.sh, you might want to
remove the script in a new patch.

> -     $(CONFIG_K3_ATF_LOAD_ADDR) \
> -     $(patsubst %,$(obj)/dts/%.dtb,$(subst ",,$(LIST_OF_DTB))) > $@
> -
> -$(SPL_ITS): FORCE
> -     $(call cmd,k3_mkits)
>  endif
> -
> -else
> -
> -ifeq ($(CONFIG_TI_SECURE_DEVICE),y)
> -INPUTS-y     += u-boot.img_HS
> -else
> -INPUTS-y     += u-boot.img
> -endif
> -endif
> -
> -include $(srctree)/arch/arm/mach-k3/config_secure.mk
> 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"
> diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
> index 83a95ee4aa..21dc434449 100644
> --- a/scripts/Makefile.spl
> +++ b/scripts/Makefile.spl
> @@ -574,7 +574,3 @@ $(obj)/$(SPL_BIN).multidtb.fit.gz: 
> $(obj)/$(SPL_BIN).multidtb.fit
>  $(obj)/$(SPL_BIN).multidtb.fit.lzo: $(obj)/$(SPL_BIN).multidtb.fit
>       @lzop -f9 $< > $@
>  
> -ifdef CONFIG_ARCH_K3
> -tispl.bin: $(obj)/u-boot-spl-nodtb.bin $(SHRUNK_ARCH_DTB) $(SPL_ITS) FORCE
> -     $(call if_changed,mkfitimage)
> -endif

Reply via email to