[PATCH 0/3] rockchip: Use external TPL binary to create a working firmware image

Jonas Karlman jonas at kwiboo.se
Wed Feb 8 15:53:07 CET 2023


Hi Simon,

On 2023-02-07 05:02, Simon Glass wrote:
> Hi Jonas,
> 
> On Sun, 5 Feb 2023 at 13:21, Jonas Karlman <jonas at kwiboo.se> wrote:
>>
>> Rockchip SoCs typically use U-Boot TPL to initialize DRAM, then jumps
>> back to boot-rom to load the next stage of the boot flow, U-Boot SPL.
>>
>> For RK356x there is currently no support to initialize DRAM using U-Boot
>> TPL and instead an external TPL binary must be used to generate a
>> working u-boot-rockchip.bin image.
> 
> Who is working on this suppose? Having a binary blob is a pain.

Not sure if anyone is working on this, but I am hoping that someday
someone will work on this :-)

> 
>>
>> This adds a new generic external-tpl entry to binman and make use of
>> this new entry in rockchip-u-boot.dtsi.
>>
>> Please note that the allow-missing flag and the added missing-msg entry
>> does not work as expected becuase the wrapping mkimage entry used
>> requires that the files to all child entries exists.
>> Instead without a provided EXTERNAL_TPL the build fails with:
>>
>>   ValueError: Filename 'ddr.bin' not found in input path (...)
>>
>> originating from
>>
>>   Entry_mkimage.ObtainContents:
>>     fnames.append(tools.get_input_filename(entry.GetDefaultFilename()))
>>
>> Not sure how to properly add support for allow-missing flag to mkimage
>> entry, possible something for another series?
> 
> If it's an input file, then Bincan supports creating a fake external
> blob, which should already be handled in mkimage.py
> 
> But if I misunderstand, or there is a bug, let me know.

I think there may be a bug, mkimage with multiple-data-files does not
handle missing/optional external blobs in a way that I was expecting.
Will take a closer look for v2, or at least create a testcase to
reproduce such issue.

Will also rename to rockchip-tpl and address rest of your comments in v2.

Regards,
Jonas

> 
> Eegards,
> SImon
> 
> 
> 
>>
>> Regards,
>> Jonas
>>
>> Jonas Karlman (3):
>>   binman: Add support for an external-tpl entry
>>   rockchip: Require an external TPL binary when TPL is missing
>>   Revert "board: rockchip: Fix binman_init failure on EVB-RK3568"
>>
>>  Makefile                               |  1 +
>>  arch/arm/dts/rockchip-u-boot.dtsi      | 16 ++++++++++++----
>>  configs/evb-rk3568_defconfig           |  1 -
>>  tools/binman/entries.rst               | 12 ++++++++++++
>>  tools/binman/etype/external_tpl.py     | 18 ++++++++++++++++++
>>  tools/binman/ftest.py                  |  7 +++++++
>>  tools/binman/missing-blob-help         |  5 +++++
>>  tools/binman/test/277_external_tpl.dts | 16 ++++++++++++++++
>>  8 files changed, 71 insertions(+), 5 deletions(-)
>>  create mode 100644 tools/binman/etype/external_tpl.py
>>  create mode 100644 tools/binman/test/277_external_tpl.dts
>>
>> --
>> 2.39.1
>>



More information about the U-Boot mailing list