On 2023-02-23 10:05, Jonas Karlman wrote: > Hi Kever, > On 2023-02-23 05:38, Kever Yang wrote: >> Hi Jonas, Simon, >> >> I got below error in buildman with BINMAN_ALLOW_MISSING=1 >> >> Building current source for 1 boards (1 thread, 16 jobs per thread) >> aarch64: + evb-rk3568 >> +binman: Filename 'rockchip-tpl' bbb not found in input path >> (.,/home/kever/src/u-boot,board/rockchip/evb_rk3568,arch/arm/dts) >> (cwd='/home/kever/src/.bm-work/00/build') >> +make[1]: *** [Makefile:1107: .binman_stamp] Error 1 >> +make: *** [Makefile:177: sub-make] Error 2 >> >> It should be like atf-bl31, only below warining is output, anything >> is missing? > > This is a known issue, builds only work with ROCKCHIP_TPL/rockchip-tpl-path > defined, the allow-missing flag is not fully functional for the mkimage > entry in binman. Fixing that issue grew into its own series, see [1].
I have just sent out a v5 that includes the required parts of [1] to solve the issue with allow-missing flag, hopefully the CI pipeline can succeed with the required parts moved back to this series. Regards, Jonas > > [1] > https://patchwork.ozlabs.org/project/uboot/cover/20230219220158.4160763-1-jo...@kwiboo.se/ > > Regards, > Jonas > >> >> Building current source for 1 boards (1 thread, 16 jobs per thread) >> aarch64: w+ evb-rk3399 >> +Image 'simple-bin' aaais missing external blobs and is non-functional: >> atf-bl31 >> + >> +/binman/simple-bin/fit/images/@atf-SEQ/atf-bl31: >> + See the documentation for your board. You may need to build ARM Trusted >> + Firmware and build with BL31=/path/to/bl31.bin >> +Some images are invalid >> 0 1 0 /1 evb-rk3399 >> >> Thanks, >> >> - Kever >> >> On 2023/2/19 23:06, Jonas Karlman wrote: >>> 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 normal boot flow. >>> >>> However, there is no support to initialize DRAM on RK35xx SoCs using >>> U-Boot TPL and instead an external TPL binary must be used to generate a >>> bootable u-boot-rockchip.bin image. >>> >>> Add CONFIG_ROCKCHIP_EXTERNAL_TPL to indicate that an external TPL should >>> be used. Build U-Boot with ROCKCHIP_TPL=/path/to/ddr.bin to generate a >>> bootable u-boot-rockchip.bin image for RK3568. >>> >>> Signed-off-by: Jonas Karlman <jo...@kwiboo.se> >>> Reviewed-by: Simon Glass <s...@chromium.org> >>> Reviewed-by: Kever Yang <kever.y...@rock-chips.com> >>> Tested-by: Eugen Hristev <eugen.hris...@collabora.com> >>> --- >>> v4: >>> - No change >>> >>> v3: >>> - Add help text to Kconfig option >>> - Add build step for rk3568 to documentation >>> - Collect r-b and t-b tags >>> >>> v2: >>> - Rename external-tpl-path to rockchip-tpl-path >>> - Rename EXTERNAL_TPL to ROCKCHIP_TPL >>> - Add CONFIG_ROCKCHIP_EXTERNAL_TPL option >>> >>> Makefile | 1 + >>> arch/arm/dts/rockchip-u-boot.dtsi | 10 ++++++++-- >>> arch/arm/mach-rockchip/Kconfig | 8 ++++++++ >>> doc/board/rockchip/rockchip.rst | 11 +++++++++++ >>> 4 files changed, 28 insertions(+), 2 deletions(-) >>> >>> diff --git a/Makefile b/Makefile >>> index 54f894dab841..58f8c7a35335 100644 >>> --- a/Makefile >>> +++ b/Makefile >>> @@ -1335,6 +1335,7 @@ cmd_binman = $(srctree)/tools/binman/binman $(if >>> $(BINMAN_DEBUG),-D) \ >>> -a opensbi-path=${OPENSBI} \ >>> -a default-dt=$(default_dt) \ >>> -a scp-path=$(SCP) \ >>> + -a rockchip-tpl-path=$(ROCKCHIP_TPL) \ >>> -a spl-bss-pad=$(if $(CONFIG_SPL_SEPARATE_BSS),,1) \ >>> -a tpl-bss-pad=$(if $(CONFIG_TPL_SEPARATE_BSS),,1) \ >>> -a spl-dtb=$(CONFIG_SPL_OF_REAL) \ >>> diff --git a/arch/arm/dts/rockchip-u-boot.dtsi >>> b/arch/arm/dts/rockchip-u-boot.dtsi >>> index 6c662a72d4f9..2878b80926c4 100644 >>> --- a/arch/arm/dts/rockchip-u-boot.dtsi >>> +++ b/arch/arm/dts/rockchip-u-boot.dtsi >>> @@ -20,9 +20,12 @@ >>> mkimage { >>> filename = "idbloader.img"; >>> args = "-n", CONFIG_SYS_SOC, "-T", "rksd"; >>> -#ifdef CONFIG_TPL >>> multiple-data-files; >>> >>> +#ifdef CONFIG_ROCKCHIP_EXTERNAL_TPL >>> + rockchip-tpl { >>> + }; >>> +#elif defined(CONFIG_TPL) >>> u-boot-tpl { >>> }; >>> #endif >>> @@ -134,9 +137,12 @@ >>> mkimage { >>> filename = "idbloader-spi.img"; >>> args = "-n", CONFIG_SYS_SOC, "-T", "rkspi"; >>> -#ifdef CONFIG_TPL >>> multiple-data-files; >>> >>> +#ifdef CONFIG_ROCKCHIP_EXTERNAL_TPL >>> + rockchip-tpl { >>> + }; >>> +#elif defined(CONFIG_TPL) >>> u-boot-tpl { >>> }; >>> #endif >>> diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig >>> index b678ec41318e..0b191b364264 100644 >>> --- a/arch/arm/mach-rockchip/Kconfig >>> +++ b/arch/arm/mach-rockchip/Kconfig >>> @@ -401,6 +401,14 @@ config TPL_ROCKCHIP_COMMON_BOARD >>> common board is a basic TPL board init which can be shared for most >>> of SoCs to avoid copy-paste for different SoCs. >>> >>> +config ROCKCHIP_EXTERNAL_TPL >>> + bool "Use external TPL binary" >>> + default y if ROCKCHIP_RK3568 >>> + help >>> + Some Rockchip SoCs require an external TPL to initialize DRAM. >>> + Enable this option and build with ROCKCHIP_TPL=/path/to/ddr.bin to >>> + include the external TPL in the image built by binman. >>> + >>> config ROCKCHIP_BOOT_MODE_REG >>> hex "Rockchip boot mode flag register address" >>> help >>> diff --git a/doc/board/rockchip/rockchip.rst >>> b/doc/board/rockchip/rockchip.rst >>> index 28c837a38200..ac4dcce1a77d 100644 >>> --- a/doc/board/rockchip/rockchip.rst >>> +++ b/doc/board/rockchip/rockchip.rst >>> @@ -86,6 +86,8 @@ List of mainline supported Rockchip boards: >>> - Radxa ROCK Pi 4 (rock-pi-4-rk3399) >>> - Rockchip Evb-RK3399 (evb_rk3399) >>> - Theobroma Systems RK3399-Q7 SoM - Puma (puma_rk3399) >>> +* rk3568 >>> + - Rockchip Evb-RK3568 (evb-rk3568) >>> * rv1108 >>> - Rockchip Evb-rv1108 (evb-rv1108) >>> - Elgin-R1 (elgin-rv1108) >>> @@ -167,6 +169,15 @@ To build rk3399 boards: >>> make evb-rk3399_defconfig >>> make CROSS_COMPILE=aarch64-linux-gnu- >>> >>> +To build rk3568 boards: >>> + >>> +.. code-block:: bash >>> + >>> + export BL31=../rkbin/bin/rk35/rk3568_bl31_v1.34.elf >>> + export ROCKCHIP_TPL=../rkbin/bin/rk35/rk3568_ddr_1560MHz_v1.13.bin >>> + make evb-rk3568_defconfig >>> + make CROSS_COMPILE=aarch64-linux-gnu- >>> + >>> Flashing >>> -------- >>> >