[PATCH v2 2/6] rockchip: Use an external TPL binary on RK3568

Jonas Karlman jonas at kwiboo.se
Wed Feb 15 10:54:43 CET 2023


On 2023-02-14 20:48, Simon Glass wrote:
> On Tue, 14 Feb 2023 at 03:33, Jonas Karlman <jonas at kwiboo.se> wrote:
>>
>> Rockchip SoCs typically use U-Boot TPL to initialize DRAM, then jumps
>> back to BootRom to load next stage, U-Boot SPL, into DRAM. BootRom then
>> jumps to U-Boot SPL to continue the normal boot flow.
>>
>> However, there is no support to initialize DRAM on RK35xx SoCs using
>> U-Boot TPL and instead an external TPL binary must be used to generate a
>> bootable u-boot-rockchip.bin image.
>>
>> Add CONFIG_ROCKCHIP_EXTERNAL_TPL to indicate that an external TPL should
>> be used. Build U-Boot with ROCKCHIP_TPL=/path/to/ddr.bin to generate a
>> bootable u-boot-rockchip.bin image for RK3568.
>>
>> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
>> ---
>> v2:
>> - rename external-tpl-path to rockchip-tpl-path
>> - rename EXTERNAL_TPL to ROCKCHIP_TPL
>> - add CONFIG_ROCKCHIP_EXTERNAL_TPL option
>>
>>  Makefile                          |  1 +
>>  arch/arm/dts/rockchip-u-boot.dtsi | 10 ++++++++--
>>  arch/arm/mach-rockchip/Kconfig    |  4 ++++
>>  3 files changed, 13 insertions(+), 2 deletions(-)
> 
> Reviewed-by: Simon Glass <sjg at chromium.org>
> 
> Please add help for Kconfig

Thanks, will add help text.

Regards,
Jonas

> 
> 
>>
>> diff --git a/Makefile b/Makefile
>> index 54f894dab841..58f8c7a35335 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -1335,6 +1335,7 @@ cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \
>>                 -a opensbi-path=${OPENSBI} \
>>                 -a default-dt=$(default_dt) \
>>                 -a scp-path=$(SCP) \
>> +               -a rockchip-tpl-path=$(ROCKCHIP_TPL) \
>>                 -a spl-bss-pad=$(if $(CONFIG_SPL_SEPARATE_BSS),,1) \
>>                 -a tpl-bss-pad=$(if $(CONFIG_TPL_SEPARATE_BSS),,1) \
>>                 -a spl-dtb=$(CONFIG_SPL_OF_REAL) \
>> diff --git a/arch/arm/dts/rockchip-u-boot.dtsi b/arch/arm/dts/rockchip-u-boot.dtsi
>> index 6c662a72d4f9..2878b80926c4 100644
>> --- a/arch/arm/dts/rockchip-u-boot.dtsi
>> +++ b/arch/arm/dts/rockchip-u-boot.dtsi
>> @@ -20,9 +20,12 @@
>>                 mkimage {
>>                         filename = "idbloader.img";
>>                         args = "-n", CONFIG_SYS_SOC, "-T", "rksd";
>> -#ifdef CONFIG_TPL
>>                         multiple-data-files;
>>
>> +#ifdef CONFIG_ROCKCHIP_EXTERNAL_TPL
>> +                       rockchip-tpl {
>> +                       };
>> +#elif defined(CONFIG_TPL)
>>                         u-boot-tpl {
>>                         };
>>  #endif
>> @@ -134,9 +137,12 @@
>>                 mkimage {
>>                         filename = "idbloader-spi.img";
>>                         args = "-n", CONFIG_SYS_SOC, "-T", "rkspi";
>> -#ifdef CONFIG_TPL
>>                         multiple-data-files;
>>
>> +#ifdef CONFIG_ROCKCHIP_EXTERNAL_TPL
>> +                       rockchip-tpl {
>> +                       };
>> +#elif defined(CONFIG_TPL)
>>                         u-boot-tpl {
>>                         };
>>  #endif
>> diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
>> index b678ec41318e..4a5415403446 100644
>> --- a/arch/arm/mach-rockchip/Kconfig
>> +++ b/arch/arm/mach-rockchip/Kconfig
>> @@ -377,6 +377,10 @@ config TPL_ROCKCHIP_BACK_TO_BROM
>>            SPL will return to the boot rom, which will then load the U-Boot
>>            binary to keep going on.
>>
>> +config ROCKCHIP_EXTERNAL_TPL
>> +       bool "Use external TPL binary"
>> +       default y if ROCKCHIP_RK3568
>> +
>>  config ROCKCHIP_COMMON_BOARD
>>         bool "Rockchip common board file"
>>         help
>> --
>> 2.39.1
>>



More information about the U-Boot mailing list