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

Roger Quadros rogerq at kernel.org
Wed Jun 1 12:55:03 CEST 2022



On 01/06/2022 13:42, Neha Malcom Francis wrote:
> Hi Roger,
> 
> On 01/06/22 14:53, Roger Quadros wrote:
>> Hi,
>>
>> On 01/06/2022 09:08, Neha Malcom Francis wrote:
>>> Hi Roger,
>>>
>>> On 31/05/22 16:32, Roger Quadros wrote:
>>>>
>>>>
>>>> On 06/05/2022 07:37, 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.
>>>>>
>>>>> k3-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-sahu at ti.com>
>>>>> [n-francis at ti.com: prepared patch for upstreaming]
>>>>> Signed-off-by: Neha Malcom Francis <n-francis at ti.com>
>>>>> ---
>>>>>    arch/arm/dts/k3-j721e-a72-binman.dtsi         | 86 +++++++++++++++++++
>>>>>    .../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, 88 insertions(+), 37 deletions(-)
>>>>>    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
>>>>> @@ -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;
>>>>> +    };
>>>>> +};
>>>>> +
>>>>> +&binman {
>>>>> +    tispl {
>>>>> +        filename = "tispl.bin";
>>>>> +        fit {
>>>>> +            description = "FIT IMAGE";
>>>>> +            #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 {
>>>>> +                    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..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/arch/arm/mach-k3/config.mk b/arch/arm/mach-k3/config.mk
>>>>> index 49f80ae79b..e0d9ea97c9 100644
>>>>> --- a/arch/arm/mach-k3/config.mk
>>>>> +++ b/arch/arm/mach-k3/config.mk
>>>>> @@ -52,38 +52,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 \
>>>>> -    $(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
>>>>
>>>> You can't yet remove these as all K3 platforms are not converted to use binman.
>>>> Please include them under #ifndef CONFIG_BINMAN...#endif
>>>>
>>>> One more question I have is that how are _HS binaries being created with binman?
>>>>
>>>
>>> I will make the changes accordingly that do not affect any of the other builds. _HS binaries are not being created with binman in this series.
>>>
>>> But there is a patch series that does create HS images (tispl.bin and u-boot.img) using binman for AM64x: https://patchwork.ozlabs.org/project/uboot/patch/20220509072936.12899-4-rogerq@kernel.org/
>>
>> That series still depends on "TI_SECURE_DEV_PKG//scripts/secure-binary-image.sh"
>> to sign the image.
>>
>> Funny thing is that I'm no longer able to download the above package from ti.com
>> to see what it is doing. Any pointers on how to get it?
>>
>> cheers,
>> -roger
>>
> 
> Did you try to access using the browser using https link?
> 
> I am able to access the script by cloning git://git.ti.com/security-development-tools/core-secdev-k3.git
> 

Aha! sure I can access that.
But according to doc/README.ti-secure I should be getting it from
http://www.ti.com/mysecuresoftware
And I couldn't get anything there.

Looks like we need to update the doc to point to the git repo instead?

>>>
>>>>> 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 6ad82cecfb..5f8a8487c5 100644
>>>>> --- a/scripts/Makefile.spl
>>>>> +++ b/scripts/Makefile.spl
>>>>> @@ -577,7 +577,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
>>>>
>>>> Please don't remove this but include it under #ifndef CONFIG_BINMAN...#endif
>>>>
>>>> cheers,
>>>> -roger
>>>
> 

cheers,
-roger


More information about the U-Boot mailing list