[PATCH v2 0/4] Add support for RAM boot from maskrom mode

Mark Kettenis mark.kettenis at xs4all.nl
Sat Apr 5 18:02:37 CEST 2025


> From: Jonas Karlman <jonas at kwiboo.se>
> Date: Sat,  5 Apr 2025 15:38:20 +0000
> 
> The BootROM in Rockchip SoCs will enter maskrom mode when boot firmware
> cannot be found in nand/spi/mmc storage.
> 
> In maskrom mode the USB OTG port can accept one of two custom commands.
> 
> Initially a 0x471 command to load TPL into SRAM. After TPL has been
> executed and it has returned back-to-BROM, a 0x472 command to load SPL
> into start of DRAM.
> 
> This series adds two binman images that can be used to RAM boot from
> maskrom mode:
> - u-boot-rockchip-usb471.bin that contains TPL to init DRAM.
> - u-boot-rockchip-usb472.bin that contains SPL and the normal FIT
>   payload with i.e. U-Boot proper, TF-A and FDT.
> 
> These images can be used with rkbin tools/boot_merger to create a loader
> image to be used with rkdeveloptool or rockusb tools, e.g.:
> 
>   Create loader image:
>     $ ../rkbin/tools/boot_merger ./RK3588MINIALL.ini
> 
>   Boot from maskrom:
>     $ rkdeveloptool db u-boot-rockchip-rk3588-loader.bin
>    or
>     $ rockusb download-boot u-boot-rockchip-rk3588-loader.bin
> 
> Or directly with tools such as rkflashtool or rkusbboot:
> 
>   $ rkflashtool l < u-boot-rockchip-usb471.bin
>   $ rkflashtool L < u-boot-rockchip-usb472.bin
>  or
>   $ rkusbboot u-boot-rockchip-usb471.bin u-boot-rockchip-usb472.bin

Hi Jonas,

Would be great if you could document this, maybe in
doc/README.rockchup and/or doc/board/rockchip/rockchip.rst?

Thanks,

Mark

> Changes in v2:
> - Rebase on top of "rockchip: binman: Use a template for FIT and other
>   improvements" series
> - Add patch to fix booting into Linux on RK3588 board with 16+ GiB DRAM
> 
> This series depends on the "rockchip: ROCKCHIP_COMMON_STACK_ADDR
> improvements" series [1] and the "rockchip: binman: Use a template for
> FIT and other improvements" series [2]. See [3] for a branch including
> both depends.
> 
> [1] https://patchwork.ozlabs.org/cover/2050003/
> [2] https://patchwork.ozlabs.org/cover/2066701/
> [3] https://source.denx.de/u-boot/contributors/kwiboo/u-boot/-/commits/ramboot-v2
> 
> Jonas Karlman (4):
>   rockchip: Move TEXT_BASE to 8 MiB offset from start of DRAM
>   rockchip: Add support for RAM boot from maskrom mode
>   rockchip: Enable RAM boot using ROCKCHIP_MASKROM_IMAGE
>   rockchip: sdram: Add fallback that fixup DRAM gaps on RK3588
> 
>  arch/arm/dts/rockchip-u-boot.dtsi       | 33 +++++++++++++++++++++++++
>  arch/arm/mach-rockchip/Kconfig          | 19 +++++++++++---
>  arch/arm/mach-rockchip/rk3308/Kconfig   |  3 ---
>  arch/arm/mach-rockchip/rk3568/Kconfig   |  3 ---
>  arch/arm/mach-rockchip/rk3588/Kconfig   |  3 ---
>  arch/arm/mach-rockchip/rk3588/rk3588.c  | 27 ++++++++++++++++++++
>  arch/arm/mach-rockchip/sdram.c          |  7 +++++-
>  arch/arm/mach-rockchip/spl-boot-order.c | 15 ++++++++---
>  boot/Kconfig                            |  3 +++
>  9 files changed, 97 insertions(+), 16 deletions(-)
> 
> -- 
> 2.49.0
> 
> 


More information about the U-Boot mailing list