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

Jonas Karlman jonas at kwiboo.se
Tue Feb 14 11:33:03 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.

I have included 3 new patches in v2:

First one to sync init size limit in mkimage with vendor u-boot and
SRAM size defined in TRM. Fixes running mkimage with latest vendor TPL
for RK3328.

Second one updates defconfig for evb-rk3568 with new options.

Last patch is an RFC patch to help mitigate an unexpected behavior with
using BINMAN_ALLOW_MISSING=1 and not supplying a value to the
rockchip-tpl-path option. See patch for more details.

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

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
  rockchip: evb-rk3568: Update defconfig
  RFC: binman: Improve allow missing for mkimage entry

 Makefile                               |  1 +
 arch/arm/dts/rockchip-u-boot.dtsi      | 10 +++++--
 arch/arm/mach-rockchip/Kconfig         |  4 +++
 configs/evb-rk3568_defconfig           | 14 +++++-----
 tools/binman/entries.rst               | 14 ++++++++++
 tools/binman/etype/mkimage.py          | 37 +++++++++++++++++++++++---
 tools/binman/etype/rockchip_tpl.py     | 20 ++++++++++++++
 tools/binman/ftest.py                  |  7 +++++
 tools/binman/missing-blob-help         |  5 ++++
 tools/binman/test/277_rockchip_tpl.dts | 16 +++++++++++
 tools/rkcommon.c                       | 16 +++++------
 11 files changed, 123 insertions(+), 21 deletions(-)
 create mode 100644 tools/binman/etype/rockchip_tpl.py
 create mode 100644 tools/binman/test/277_rockchip_tpl.dts

-- 
2.39.1



More information about the U-Boot mailing list