Hi Kever,
On 1/31/23 03:53, Kever Yang wrote:
Hi
I think I do this modify for those soc not have TPL, or else it
will cause the CI build error.
TPL/ddr binary is mandatory in all rockchip SoCs now, but the mainline
U-Boot may not
able to provide the the available TPL, will need ddr init binary from
rockchip rkbin repository
instead.
So the policy is clear, the binary output on mainline U-Boot rockchip
platform:
- TPL available: u-boot-rockchip.bin with TPL, SPL, ATF, U-Boot proper;
- TPL not available: u-boot.itb with ATF, U-Boot proper.
idbloader.bin generate by the
TPL(ddr init binary instead) and SPL via mkimage cmd;
If I understand correctly, the TPL might not be generated by U-Boot but
externally provided by Rockchip in binary form? For those cases, the
defconfig is expected to only request an SPL build I assume. However,
idbloader.bin (from rockchip, U-Boot TPL replacement) shall still be
passed with U-Boot SPL to mkimage?
In that case, I guess we could have a Kconfig option like
CONFIG_EXTERNAL_TPL dependent on !TPL and have the user pass a TPL
external path environment variable (EXTERNAL_TPL) the same way we do for
BL31 or TEE in cmd_binman.
Then we should be able to adapt rockchip-u-boot.dtsi to manage this and
still build a valid u-boot-rockchip.bin, e.g. replace
https://source.denx.de/u-boot/u-boot/-/blob/master/arch/arm/dts/rockchip-u-boot.dtsi#L23
#ifdef CONFIG_TPL
multiple-data-files;
u-boot-tpl {
};
#endif
with
#if defined(CONFIG_TPL) || defined(CONFIG_EXTERNAL_TPL)
multiple-data-files;
# ifdef CONFIG_TPL
u-boot-tpl {
};
# else
blob-ext {
filename = "${EXTERNAL_TPL}"
};
# endif
#endif
or something more appropriate for binman, like adapting u-boot-tpl to
handle external blobs for example.
Cheers,
Quentin