Message ID | 20220722160655.3904213-10-foss+uboot@0leil.net |
---|---|
State | Superseded |
Delegated to: | Kever Yang |
Headers | show |
Series | Puma RK3399 migration to TPL and numerous fixes | expand |
On 2022/7/23 00:06, Quentin Schulz wrote: > From: Quentin Schulz <quentin.schulz@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@0leil.net> > Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Reviewed-by: Kever Yang <kever.yang@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
Hi Quentin, I got below error when apply this patch, please rebase this patch set. Applying: rockchip: puma-rk3399: migrate to TPL error: sha1 information is lacking or useless (configs/puma-rk3399_defconfig). error: could not build fake ancestor hint: Use 'git am --show-current-patch' to see the failed patch Patch failed at 0009 rockchip: puma-rk3399: migrate to TPL Thanks, - Kever On 2022/7/23 00:06, Quentin Schulz wrote: > From: Quentin Schulz <quentin.schulz@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@0leil.net> > Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> > --- > 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
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