[PATCH v4 11/25] rockchip: Add TPL alternatives

Jonas Karlman jonas at kwiboo.se
Sun May 25 20:56:49 CEST 2025


Hi Simon,

On 2025-05-25 12:47, Simon Glass wrote:
> The TPL image must be built for each board we need to support. It is the
> only part of the image which is board-specific.

This is most likely only a must for VBE/VPL use, make it clear that
these changes are related to VBE/VPL in the commit message.

> 
> This helps to save space and reduce the size of TPL, so that it can fit
> within the internal 192K IRAM of the RK3399 SoC.
> 
> As with other phases, the TPL devicetree is run through fdtgrep to
> remove unwanted nodes and properties and reduce its size.
> 
> Update the fdtmap so it is at the end of the image, since templates are
> added after existing nodes.
> 
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
> 
> Changes in v4:
> - Put the fdtmap at the end of the image
> - Update the comment at the end of the '#ifndef CONFIG_VPL' block
> 
> Changes in v2:
> - Mention RK3399 with respect to the memory limit
> - Move VPL things into a separate file
> 
>  arch/arm/dts/rockchip-u-boot.dtsi     |  3 ++-
>  arch/arm/dts/rockchip-vpl-u-boot.dtsi | 18 ++++++++++++++++++
>  2 files changed, 20 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/dts/rockchip-u-boot.dtsi b/arch/arm/dts/rockchip-u-boot.dtsi
> index 18669f73402..905706c68e7 100644
> --- a/arch/arm/dts/rockchip-u-boot.dtsi
> +++ b/arch/arm/dts/rockchip-u-boot.dtsi
> @@ -171,6 +171,7 @@
>  		filename = "u-boot-rockchip.bin";
>  		pad-byte = <0xff>;
>  
> +#ifndef CONFIG_VPL
>  		mkimage {
>  			filename = "idbloader.img";
>  			args = "-n", CONFIG_SYS_SOC, "-T", "rksd";
> @@ -196,10 +197,10 @@
>  #endif
>  			offset = <CONFIG_SPL_PAD_TO>;
>  		};
> -#endif

This was wrongly added in a prior patch.

>  
>  		fdtmap {
>  		};
> +#endif /* !VPL */

Since you are replacing everything inside simple-bin I think it would be
better to wrap the entire node and re-declare your own vpl/vbe variant
inside rockchip-vpl-u-boot.dtsi.

Regards,
Jonas

>  	};
>  
>  #ifdef CONFIG_ROCKCHIP_SPI_IMAGE
> diff --git a/arch/arm/dts/rockchip-vpl-u-boot.dtsi b/arch/arm/dts/rockchip-vpl-u-boot.dtsi
> index 0d767113408..c5d55b87164 100644
> --- a/arch/arm/dts/rockchip-vpl-u-boot.dtsi
> +++ b/arch/arm/dts/rockchip-vpl-u-boot.dtsi
> @@ -111,6 +111,22 @@
>  	};
>  
>  	simple-bin {
> +		alternates-fdt {
> +			fdt-list-dir = "dts/upstream/src/arm64/rockchip";
> +			filename-pattern = "alt-NAME.bin";
> +			fdt-phase = "tpl";
> +
> +			mkimage {
> +				filename = "idbloader.img";
> +				args = "-n", CONFIG_SYS_SOC, "-T", "rksd";
> +				multiple-data-files;
> +
> +				u-boot-tpl {
> +					symbols-base = <0>;
> +				};
> +			};
> +		};
> +
>  		vpl {
>  			type = "fit";
>  			offset = <(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 0x200 + 0x8000)>;
> @@ -199,5 +215,7 @@
>  			insert-template = <&fit_template>;
>  		};
>  # endif /* VBE method */
> +		fdtmap {
> +		};
>  	};
>  };



More information about the U-Boot mailing list