[PATCH v2 2/3] rockchip: make rksd the default format for SPI images

Jonas Karlman jonas at kwiboo.se
Tue Dec 16 17:11:45 CET 2025


Hi Quentin,

On 12/16/2025 12:26 PM, Quentin Schulz wrote:
> From: Quentin Schulz <quentin.schulz at cherry.de>
> 
> I believe (hope) that the new SoCs should now have this fixed and not
> require the "hack" implemented in rkspi format which almost doubles the
> size of TPL+SPL (idbloader.img).
> 
> It's known to be fixed on RK3566/RK3568, RK3576 and RK3588(S) (according
> to the DTS setting the mkimage format for the SPI's idbloader.img to
> rksd explicitly).
> 
> Since I do not have any board with a bootable SPI flash except on RK3399
> where this work-around is required, I simply invert the logic by having
> rkspi explicitly set for all SoCs that didn't and remove rksd from SoCs
> that did. It doesn't mean that the SoC actually requires rkspi format,
> just that it's been the case until now (maybe because nobody tested).
> 
> Signed-off-by: Quentin Schulz <quentin.schulz at cherry.de>
> ---
>  arch/arm/dts/px30-u-boot.dtsi     | 12 ++++++++++++
>  arch/arm/dts/rk3036-u-boot.dtsi   | 13 +++++++++++++
>  arch/arm/dts/rk3066a-u-boot.dtsi  | 12 ++++++++++++
>  arch/arm/dts/rk3128-u-boot.dtsi   | 12 ++++++++++++
>  arch/arm/dts/rk3188-u-boot.dtsi   | 12 ++++++++++++
>  arch/arm/dts/rk322x-u-boot.dtsi   | 12 ++++++++++++
>  arch/arm/dts/rk3288-u-boot.dtsi   | 12 ++++++++++++
>  arch/arm/dts/rk3308-u-boot.dtsi   | 12 ++++++++++++
>  arch/arm/dts/rk3326-u-boot.dtsi   |  1 -
>  arch/arm/dts/rk3328-u-boot.dtsi   |  1 -
>  arch/arm/dts/rk3368-u-boot.dtsi   | 12 ++++++++++++
>  arch/arm/dts/rk3399-u-boot.dtsi   | 12 ++++++++++++
>  arch/arm/dts/rk3528-u-boot.dtsi   | 12 ++++++++++++
>  arch/arm/dts/rk356x-u-boot.dtsi   |  1 -
>  arch/arm/dts/rk3576-u-boot.dtsi   |  1 -
>  arch/arm/dts/rk3588s-u-boot.dtsi  |  1 -
>  arch/arm/dts/rockchip-u-boot.dtsi |  1 -
>  arch/arm/dts/rv1108-u-boot.dtsi   | 12 ++++++++++++
>  arch/arm/dts/rv1126-u-boot.dtsi   | 12 ++++++++++++
>  19 files changed, 157 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/arm/dts/px30-u-boot.dtsi b/arch/arm/dts/px30-u-boot.dtsi
> index 2f726b0aaba..7385de7d6ae 100644
> --- a/arch/arm/dts/px30-u-boot.dtsi
> +++ b/arch/arm/dts/px30-u-boot.dtsi
> @@ -27,6 +27,18 @@
>  	};
>  };
>  
> +#ifdef CONFIG_SPL
> +#ifdef CONFIG_ROCKCHIP_SPI_IMAGE
> +&binman {
> +	simple-bin-spi {
> +		mkimage {
> +			args = "-n", CONFIG_SYS_SOC, "-T", "rkspi";
> +		};
> +	};
> +};
> +#endif
> +#endif

This is probably wrong, rk3326 use rksd format.

Also seeing how the rk3308 has a later model number than PX30/RK3326
I would guess that this also applies to RK3308.

See USB_GADGET_PRODUCT_NUM:

	default 0x330a if ROCKCHIP_RK3368
	default 0x330c if ROCKCHIP_RK3399
	default 0x330d if ROCKCHIP_PX30
	default 0x330e if ROCKCHIP_RK3308
	default 0x350a if ROCKCHIP_RK3568
	default 0x350b if ROCKCHIP_RK3588
	default 0x350c if ROCKCHIP_RK3528
	default 0x350e if ROCKCHIP_RK3576

> +
>  &otp {
>  	bootph-some-ram;
>  };

[snip]

> diff --git a/arch/arm/dts/rk3528-u-boot.dtsi b/arch/arm/dts/rk3528-u-boot.dtsi
> index a18d33b3d36..f21d76b0e6e 100644
> --- a/arch/arm/dts/rk3528-u-boot.dtsi
> +++ b/arch/arm/dts/rk3528-u-boot.dtsi
> @@ -30,6 +30,18 @@
>  	};
>  };
>  
> +#ifdef CONFIG_SPL
> +#ifdef CONFIG_ROCKCHIP_SPI_IMAGE
> +&binman {
> +	simple-bin-spi {
> +		mkimage {
> +			args = "-n", CONFIG_SYS_SOC, "-T", "rkspi";
> +		};
> +	};
> +};
> +#endif
> +#endif

This is wrong, please drop for rk3528. I have commits pending for adding
proper SPI flash boot support on RK3528 once the E24C model lands in
upstream linux, see commits at [1].

[1] https://source.denx.de/u-boot/contributors/kwiboo/u-boot/-/commits/rk3528

Regards,
Jonas

> +
>  &cru {
>  	bootph-all;
>  };

[snip]


More information about the U-Boot mailing list