
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-b... #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