Re: [RFC PATCH v2 0/8] Build Rockchip final images using binman

Alper Nebi Yasak
2022-05-19T11:39:30Z

On 16/05/2022 14:07, Andrew Abbott wrote:
> My original goal was to produce SPI images for Rockchip platforms (specifically
> for me, ROCKPro64, and in the future ROCK64). Looking into it, it seemed nicer
> to just switch the SD/MMC image generation over to binman as well in the
> process.
>
> This is my attempt to move Rockchip final full image generation to binman,
> adding the option to make full SPI images as well.
>
> Other questions:
>
> - I noticed that ATF generation for ARM64 Rockchip is done via a Python script
> instead of binman. I don't currently know how to change that over to binman,
> but is that something worth pursuing as part of this?

Simon was working on that in [1] (see patches 22-26 which weren't
applied), but images produced by that don't exactly work (see comments
on earlier versions [2]). Then, things got stalled/postponed because of
various issues in binman AFAICT.

The crux of the problem there is the binman-wise design of splitting
bl31.elf into parts and putting them into the FIT. I have some weird
ideas about generic mechanisms that would allow us to do it nicely, but
nothing I could flesh out.

Recently I've been thinking we might be able to sidestep it by putting
the unsplit ELF directly into FIT (as a new IH_TYPE_ELF for mkimage?)
and do the split-loading at runtime. I didn't have time to experiment on
that, though. I'd appreciate it if you tried, but don't worry about it
if you don't have the time.

[1] binman: rockchip: Migrate from rockchip SPL_FIT_GENERATOR script
https://lore.kernel.org/u-boot/20220306031917.3005215-1-sjg@chromium.org/

[2] rockchip: Support building the all output files in binman
https://lore.kernel.org/u-boot/CAPnjgZ37wnb4r7zkkBMfAeGDir147R4kxMwUWAE0nj6iSYdZBQ@mail.gmail.com/

> Please give me your feedback!
>
> Changes in v2:
> - Revert u-boot-rockchip-sdmmc.bin name to u-boot-rockchip.bin, to
> keep the name the same as before.
> - Fix whitespace issues.
> - Remove note from docs about different offsets in SPI flash for
> different SoCs - this was a bad assumption on my part, it doesn't work
> this way.
> - Update name of SD/MMC image in the docs from u-boot-rockchip-sdmmc.bin
> to u-boot-rockchip.bin.
>
> Andrew Abbott (8):
> binman: mkimage: Support ':'-separated inputs
> rockchip: Add binman definitions for final images
> soc: rockchip: Include common U-Boot dtsi file
> board: rockchip: Move SPI U-Boot offset to config
> rockchip: Remove obsolete Makefile targets
> rockchip: Enable binman for ARM64
> doc: rockchip: Update for new binman image generation
> board: rockpro64: Enable building SPI image
>
> Kconfig | 4 +-
> Makefile | 31 ++----------
> arch/arm/Kconfig | 2 +-
> arch/arm/dts/rk3308-u-boot.dtsi | 2 +
> arch/arm/dts/rk3328-u-boot.dtsi | 2 +
> arch/arm/dts/rk3368-lion-haikou-u-boot.dtsi | 1 -
> arch/arm/dts/rk3368-u-boot.dtsi | 1 +
> arch/arm/dts/rk3399-pinebook-pro-u-boot.dtsi | 4 --
> arch/arm/dts/rk3399-puma-haikou-u-boot.dtsi | 1 -
> arch/arm/dts/rk3399-roc-pc-u-boot.dtsi | 4 --
> arch/arm/dts/rk3399-rockpro64-u-boot.dtsi | 4 --
> arch/arm/dts/rk3568-u-boot.dtsi | 2 +
> arch/arm/dts/rockchip-u-boot.dtsi | 53 ++++++++++++++++++--
> arch/arm/mach-rockchip/Kconfig | 7 ++-
> arch/arm/mach-rockchip/rk3399/Kconfig | 1 +
> configs/lion-rk3368_defconfig | 1 +
> configs/pinebook-pro-rk3399_defconfig | 1 +
> configs/puma-rk3399_defconfig | 2 +-
> configs/roc-pc-rk3399_defconfig | 1 +
> configs/rockpro64-rk3399_defconfig | 1 +
> doc/board/rockchip/rockchip.rst | 29 +++--------
> tools/binman/etype/mkimage.py | 33 +++++++-----
> 22 files changed, 100 insertions(+), 87 deletions(-)
>