[PATCH 00/10] support for booting the compressed U-boot binary on Rockchip based SOC's

Jonas Karlman jonas at kwiboo.se
Fri Jun 30 17:45:21 CEST 2023


Hi,

On 2023-06-30 14:11, Manoj Sai wrote:
> This patchset adds the support on Rockchip based RK3399 and RK3328 SOC's 
> that  compress the U-BOOT proper along with dtb and ATF in FIT image format.
> Second stage bootloader(SPL) loads the compressed binaries, uncompress them and 
> handover control to the next stage.
>      
> The size difference observed between uncompressed and compressed FIT images is nearly 67
> to 70% and used two compression libraries,LZMA and GZIP. 

How much does this size difference and decompression affect boot times?

> 
> Patch 1/10  generate a GZIP-compressed raw U-boot binary using Makefile
> Patch 2/10  address to store compressed U-BOOT raw binary using Kconfig
> Patch 3/10  RAM location to store compressed U-BOOT raw binary for ROCKCHIP based RK3399 and RK3328 SOC's
> Patch 4/10  uncompress the gzip U-BOOT binary and load the binaries if gzip compression supoort is enabled
> Patch 5/10  generate a LZMA-compressed raw U-boot binary using Makefile
> Patch 6/10  uncompress the lzma U-BOOT binary and load the binaries if lzma compression supoort is enabled
> Patch 7/10  add u-boot-nodtb.bin.gz as an input binary in binman
> Patch 8/10  add the GZIP compressed uboot raw binary to FIT image
> Patch 9/10  add u-boot-nodtb.bin.lzma as an input binary in binman
> Patch 10/10 add the LZMA compressed uboot raw binary to FIT image

Instead of adding Makefile targets and custom binman etypes adding
support for on-the-fly compression to the fit etype if probably a better
option. E.g. when fit node has compression <> none, compress the data content
inside binman instead of relaying on binman nodes and Makefile output.

Regards,
Jonas

> 
> Manoj Sai (10):
>   Makefile: Add support to generate GZIP compressed raw u-boot binary
>   spl: Kconfig: Address support for compressed U-BOOT raw binary
>   rockchip: RAM location for the compressed U-BOOT raw binary
>   spl: fit: support for booting a GZIP-compressed U-boot raw binary
>   Makefile: Add support to generate LZMA compressed raw u-boot binary
>   spl: fit: support for booting a LZMA-compressed U-boot raw binary
>   binman: Add support for u-boot-nodtb.bin.gz as an input binary
>   rockchip: Add GZIP compressed uboot raw binary to FIT image
>   binman: Add support for u-boot-nodtb.bin.lzma as an input binary
>   rockchip: Add LZMA compressed uboot raw binary to FIT image
> 
>  Makefile                                     |  6 ++++
>  arch/arm/dts/rockchip-u-boot.dtsi            | 15 ++++++++
>  arch/arm/mach-rockchip/Kconfig               |  3 ++
>  common/spl/Kconfig                           | 15 ++++++++
>  common/spl/spl_fit.c                         | 36 +++++++++++++++-----
>  tools/binman/etype/283_u_boot_nodtb_lzma.dts | 11 ++++++
>  tools/binman/etype/u_boot_nodtb_gzip.py      | 28 +++++++++++++++
>  tools/binman/etype/u_boot_nodtb_lzma.py      | 28 +++++++++++++++
>  tools/binman/ftest.py                        | 11 ++++++
>  tools/binman/test/282_u_boot_nodtb_gzip.dts  | 11 ++++++
>  10 files changed, 156 insertions(+), 8 deletions(-)
>  create mode 100644 tools/binman/etype/283_u_boot_nodtb_lzma.dts
>  create mode 100644 tools/binman/etype/u_boot_nodtb_gzip.py
>  create mode 100644 tools/binman/etype/u_boot_nodtb_lzma.py
>  create mode 100644 tools/binman/test/282_u_boot_nodtb_gzip.dts
> 



More information about the U-Boot mailing list