[PATCH 09/12] rockchip: puma-rk3399: migrate to TPL

Kever Yang kever.yang at rock-chips.com
Thu Sep 1 15:05:58 CEST 2022


On 2022/7/23 00:06, Quentin Schulz wrote:
> From: Quentin Schulz <quentin.schulz at theobroma-systems.com>
>
> Depending on the toolchain used to compile the SPL for Puma RK3399-Q7
> module, the board does not boot because the resulting binary is too big
> to fit in SRAM.
>
> Let's add a TPL so that there's no need to fiddle with or hack the
> defconfig to have a working bootloader.
>
> This follows what's been done for the majority of other RK3399-based
> boards.
>
> See the original commit for the first migrations:
> bdc00080111f "rockchip: rk3399: update defconfig for TPL"
>
> Unfortunately, the offset in SPI-NOR for U-Boot proper needs to be
> modified, since the move from SPL to TPL+SPL for idbloader.img (and the
> "only the first 2KB per 4KB blocks are written" "hack" for rkspi format)
> increased the size above 256KB. Let's move it to 512KB to, hopefully, be
> safe.
>
> Cc: Quentin Schulz <foss+uboot at 0leil.net>
> Signed-off-by: Quentin Schulz <quentin.schulz at theobroma-systems.com>

Reviewed-by: Kever Yang <kever.yang at rock-chips.com>

Thanks,
- Kever
> ---
>   arch/arm/dts/rk3399-puma-haikou-u-boot.dtsi | 2 +-
>   board/theobroma-systems/puma_rk3399/README  | 8 ++++----
>   configs/puma-rk3399_defconfig               | 4 ++--
>   3 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/arch/arm/dts/rk3399-puma-haikou-u-boot.dtsi b/arch/arm/dts/rk3399-puma-haikou-u-boot.dtsi
> index 5dc345bbe8..27a792fe6d 100644
> --- a/arch/arm/dts/rk3399-puma-haikou-u-boot.dtsi
> +++ b/arch/arm/dts/rk3399-puma-haikou-u-boot.dtsi
> @@ -14,7 +14,7 @@
>   
>   / {
>   	config {
> -		u-boot,spl-payload-offset = <0x40000>; /* @ 256KB */
> +		u-boot,spl-payload-offset = <0x80000>; /* @ 512KB */
>   		u-boot,mmc-env-offset = <0x4000>;      /* @  16KB */
>   		u-boot,efi-partition-entries-offset = <0x200000>; /* 2MB */
>   		u-boot,boot-led = "module_led";
> diff --git a/board/theobroma-systems/puma_rk3399/README b/board/theobroma-systems/puma_rk3399/README
> index 254c3bbe96..550bdfb1f4 100644
> --- a/board/theobroma-systems/puma_rk3399/README
> +++ b/board/theobroma-systems/puma_rk3399/README
> @@ -51,13 +51,13 @@ The SPL image for SD-Card/eMMC is readily available in idbloader.img at the
>   root of U-Boot after compilation.
>   
>   Creating an SPL image for SPI-NOR:
> -  > tools/mkimage -n rk3399 -T rkspi -d spl/u-boot-spl.bin idbloader-spi.img
> +  > tools/mkimage -n rk3399 -T rkspi -d tpl/u-boot-tpl.bin:spl/u-boot-spl.bin idbloader-spi.img
>   
>   Flash the image
>   ===============
>   
> -Copy the SPL to offset 32k for SD/eMMC, offset 0 for NOR-Flash and the FIT
> -image to offset 256k.
> +Copy the SPL to offset 32k and the FIT image to offset 256k for SD/eMMC.
> +Copy the SPL to offset 0 and the FIT image to offset 512k for NOR-Flash.
>   
>   SD-Card
>   -------
> @@ -98,4 +98,4 @@ help of the Rockchip loader binary.
>     > ./rkdeveloptool db rkbin/rk3399_loader_spinor_v1.25.114.bin
>     > ./rkdeveloptool ef
>     > ./rkdeveloptool wl 0 ../idbloader-spi.img
> -  > ./rkdeveloptool wl 512 ../u-boot.itb
> +  > ./rkdeveloptool wl 1024 ../u-boot.itb
> diff --git a/configs/puma-rk3399_defconfig b/configs/puma-rk3399_defconfig
> index 3567cd078b..c70dbe9ed5 100644
> --- a/configs/puma-rk3399_defconfig
> +++ b/configs/puma-rk3399_defconfig
> @@ -7,7 +7,6 @@ CONFIG_SPL_GPIO=y
>   CONFIG_NR_DRAM_BANKS=1
>   CONFIG_ENV_OFFSET=0x3F8000
>   CONFIG_DEFAULT_DEVICE_TREE="rk3399-puma-haikou"
> -CONFIG_SPL_TEXT_BASE=0xff8c2000
>   CONFIG_ROCKCHIP_RK3399=y
>   CONFIG_ROCKCHIP_BOOT_MODE_REG=0x0
>   CONFIG_TARGET_PUMA_RK3399=y
> @@ -22,11 +21,12 @@ CONFIG_DISPLAY_BOARDINFO_LATE=y
>   CONFIG_MISC_INIT_R=y
>   # CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
>   CONFIG_SPL_STACK_R=y
> -CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000
> +CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000
>   CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x200
>   CONFIG_SPL_I2C=y
>   CONFIG_SPL_POWER=y
>   CONFIG_SPL_SPI_LOAD=y
> +CONFIG_TPL=y
>   CONFIG_CMD_BOOTZ=y
>   CONFIG_CMD_GPT=y
>   CONFIG_CMD_I2C=y


More information about the U-Boot mailing list