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

Jonas Karlman jonas at kwiboo.se
Sat Feb 25 20:01:33 CET 2023


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 boot flow.

For RK356x there is no support to initialize DRAM using U-Boot
TPL and instead an external TPL binary must be used to generate a
bootable u-boot-rockchip.bin image.

This adds a new rockchip-tpl entry to binman and make use of this new
entry in rockchip-u-boot.dtsi.

Build U-Boot with ROCKCHIP_TPL=/path/to/ddr.bin to generate a
bootable u-boot-rockchip.bin image for RK356x.

The last patch fixes an allow-missing issue for mkimage entry,
something that needs to be working for CI pipeline. The patch is based
on [1] from the "binman: Show missing blob message" series at [2].

Changes in v5:
- Add patch to fix issue with allow-missing
- Split init size limit patch in two

Changes in v4:
- Only change init size limit for rk3328 and rk3568
- Drop update evb-rk3568_defconfig patch

Changes in v3:
- Move test function last
- Add help text to Kconfig option
- Add build step for rk3568 to documentation
- Resync init size limit table
- Drop missing message RFC patch

Changes in v2:
- Renamed external-tpl to rockchip-tpl
- Renamed EXTERNAL_TPL to ROCKCHIP_TPL
- Add CONFIG_ROCKCHIP_EXTERNAL_TPL Kconfig option
- New patch to sync init size limit in mkimage
- New RFC patch to improve allow-missing/fake-ext-blobs handling for
  binman mkimage entry

[1] https://patchwork.ozlabs.org/project/uboot/patch/20230219220158.4160763-7-jonas@kwiboo.se/
[2] https://patchwork.ozlabs.org/project/uboot/cover/20230219220158.4160763-1-jonas@kwiboo.se/

Jonas Karlman (6):
  binman: Add support for a rockchip-tpl entry
  rockchip: Use an external TPL binary on RK3568
  Revert "board: rockchip: Fix binman_init failure on EVB-RK3568"
  rockchip: mkimage: Update init size limit for RK3328
  rockchip: mkimage: Update init size limit for RK3568
  binman: Mark mkimage entry missing when its subnodes is missing

 Makefile                                      |  1 +
 arch/arm/dts/rockchip-u-boot.dtsi             | 10 ++++++--
 arch/arm/mach-rockchip/Kconfig                |  8 +++++++
 configs/evb-rk3568_defconfig                  |  1 -
 doc/board/rockchip/rockchip.rst               | 11 +++++++++
 tools/binman/entries.rst                      | 14 +++++++++++
 tools/binman/etype/mkimage.py                 | 24 ++++++++++++++++++-
 tools/binman/etype/rockchip_tpl.py            | 20 ++++++++++++++++
 tools/binman/ftest.py                         | 18 ++++++++++++++
 tools/binman/missing-blob-help                |  5 ++++
 tools/binman/test/277_rockchip_tpl.dts        | 16 +++++++++++++
 .../test/278_mkimage_missing_multiple.dts     | 19 +++++++++++++++
 tools/rkcommon.c                              |  4 ++--
 13 files changed, 145 insertions(+), 6 deletions(-)
 create mode 100644 tools/binman/etype/rockchip_tpl.py
 create mode 100644 tools/binman/test/277_rockchip_tpl.dts
 create mode 100644 tools/binman/test/278_mkimage_missing_multiple.dts

-- 
2.39.2



More information about the U-Boot mailing list