On 08/02/2022 21:50, Simon Glass wrote:
> Add the required binman images to replace the Makefile rules which are
> currently used. This includes subsuming:
> 
>    - tpl/u-boot-tpl-rockchip.bin if TPL is enabled
>    - idbloader.img if either or both of SPL and TPL are enabled
>    - u-boot.itb2 if SPL_FIT is enabled
>    - u-boot-rockchip.bin if SPL is used, either using u-boot.itb2 when
>      SPL_FIT is enabled or u-boot.img when it isn't
> 
> For now u-boot.itb2 is used as the FIT filename to avoid conflicting with
> the current u-boot.itb file. This will be updated in a future patch.

I don't see a u-boot.itb2 anywhere. Something from an earlier revision
or does binman append the number to avoid overwriting existing files?

> 
> Note that the intermediate files are dropped with binman, since it
> producing everything in one pass. This means that
> tpl/u-boot-tpl-rockchip.bin is not created, for example.
> 
> Note that for some 32-bit rk3288 boards, rockchip-optee.dtsi is included.
> 
> Signed-off-by: Simon Glass <s...@chromium.org>
> ---
> 
>  arch/arm/dts/rockchip-u-boot.dtsi | 84 ++++++++++++++++++++++++++++++-
>  1 file changed, 82 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/dts/rockchip-u-boot.dtsi 
> b/arch/arm/dts/rockchip-u-boot.dtsi
> index eae3ee715d..6246ca12b7 100644
> --- a/arch/arm/dts/rockchip-u-boot.dtsi
> +++ b/arch/arm/dts/rockchip-u-boot.dtsi
> @@ -17,13 +17,93 @@
>               filename = "u-boot-rockchip.bin";
>               pad-byte = <0xff>;
>  
> -             blob {
> -                     filename = "idbloader.img";
> +#ifdef CONFIG_TPL
> +             mkimage {
> +                     args = "-n", CONFIG_SYS_SOC, "-T rksd";
> +
> +                     u-boot-tpl {
> +                     };
> +             };
> +
> +             u-boot-spl {
>               };
> +#elif defined(CONFIG_SPL) /* SPL only */
> +             mkimage {
> +                     args = "-n", CONFIG_SYS_SOC, "-T rksd";
> +
> +                     u-boot-spl {
> +                     };
> +             };
> +#endif
> +#if defined(CONFIG_SPL_FIT) && defined(CONFIG_ARM64)
> +             fit: fit {
> +                     description = "FIT image for U-Boot with bl31 (TF-A)";
> +                     #address-cells = <1>;
> +                     fit,fdt-list = "of-list";
> +                     fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
> +                     images {
> +                             u-boot {
> +                                     description = "U-Boot (64-bit)";
> +                                     type = "standalone";
> +                                     os = "U-Boot";
> +                                     arch = "arm64";
> +                                     compression = "none";
> +                                     load = <CONFIG_SYS_TEXT_BASE>;
> +                                     u-boot-nodtb {
> +                                     };
> +                             };
>  
> +                             @atf-SEQ {
> +                                     fit,operation = "split-elf";
> +                                     description = "ARM Trusted Firmware";
> +                                     type = "firmware";
> +                                     arch = "arm64";
> +                                     os = "arm-trusted-firmware";
> +                                     compression = "none";
> +                                     fit,load;
> +                                     fit,entry;
> +                                     fit,data;
> +
> +                                     atf-bl31 {
> +                                     };
> +                             };
> +                             @tee-SEQ {
> +                                     fit,operation = "split-elf";
> +                                     description = "TEE";
> +                                     type = "tee";
> +                                     arch = "arm64";
> +                                     os = "tee";
> +                                     compression = "none";
> +                                     fit,load;
> +                                     fit,entry;
> +                                     fit,data;
> +
> +                                     op-tee {
> +                                     };
> +                             };
> +
> +                             @fdt-SEQ {
> +                                     description = "fdt-NAME";
> +                                     compression = "none";
> +                                     type = "flat_dt";
> +                             };
> +                     };
> +
> +                     configurations {
> +                             default = "@config-DEFAULT-SEQ";
> +                             @config-SEQ {
> +                                     description = "NAME.dtb";
> +                                     fdt = "fdt-SEQ";
> +                                     firmware = "u-boot";
> +                                     fit,loadables;
> +                             };
> +                     };
> +             };
> +#else

This should be done for the SPI ROM image in rk3399-u-boot.dtsi as well,
and with that my chromebook_kevin can boot into Linux or EFI GRUB quite
nicely.

I changed the "rksd" parts to "rkspi", and as I wrote on a different
patch I had to change the firmware and loadables like so (where I wasn't
passing in an op-tee at all):

    configurations {
            default = "@config-DEFAULT-SEQ";
            @config-SEQ {
                    description = "NAME.dtb";
                    fdt = "fdt-SEQ";
                    firmware = "atf-1";
                    loadables = "u-boot", "atf-2", "atf-3";
            };
    };

I also had to use the same offset as the u-boot-img there, so maybe this
needs the offset below as well.

>               u-boot-img {
>                       offset = <CONFIG_SPL_PAD_TO>;
>               };
> +#endif /* CONFIG_ARM64 */
>       };
>  };
>  #endif

Reply via email to