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
>>>   --------
>>>   
> 

Reply via email to