
Hi Peter,
On 2023-05-17 21:14, Peter Robinson wrote:
On Wed, May 17, 2023 at 7:41 PM Jonas Karlman jonas@kwiboo.se wrote:
Enable CONFIG_ROCKCHIP_SPI_IMAGE to build u-boot-rockchip-spi.bin. Define CONFIG_SYS_SPI_U_BOOT_OFFS to write u-boot.itb at the expected
None of the other rk33* devices enable this offset yet my Pinebook Pro works fine booting from SPI flash, what does this fix/enable/change over the defaults?
Most other RK3399 devices define the offset in the device tree, even for the rockpro64. However, the CONFIG_SYS_SPI_U_BOOT_OFFS is used as the fallback when device tree value is missing, and also as the offset used when generating the u-boot-rockchip-spi.bin using binman.
puma-rk3399_defconfig is the only other RK3399 board that also generates a u-boot-rockchip-spi.bin, has CONFIG_ROCKCHIP_SPI_IMAGE=y. That board override the simple-bin-spi fit offset in rk3399-puma-haikou-u-boot.dtsi instead of using the Kconfig option.
offset. Enable CONFIG_LTO to reduce size of SPL so that the mkimage output fit before the 0x60000 offset in u-boot-rockchip-spi.bin.
The enabling of LTO seems like a separate change TBH, the changes seem to be independent and there's no mention of it in the subject.
Without LTO enabled the idbloader.img grows too large that it does not fit before the u-boot.itb payload at 0x60000 and bulding of u-boot-rockchip-spi.bin fails the u-boot build.
In order to generate a valid u-boot-rockchip-spi.bin, LTO was required to be enabled, there is also a short mention of it in the commit message. The alternative would be to move the payload offset to e.g. 0x80000 but that felt like a too big and risky change.
Regards, Jonas
=> sf probe SF: Detected gd25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB => load mmc 1:1 10000000 u-boot-rockchip-spi.bin 1442304 bytes read in 27 ms (50.9 MiB/s) => sf update $fileaddr 0 $filesize device 0 offset 0x0, size 0x160200 1421824 bytes written, 20480 bytes skipped in 9.501s, speed 155432 B/s
Signed-off-by: Jonas Karlman jonas@kwiboo.se Reviewed-by: Kever Yang kever.yang@rock-chips.com
v2:
- Collect r-b tag
configs/rockpro64-rk3399_defconfig | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig index 0ca2cecade25..f41c03067903 100644 --- a/configs/rockpro64-rk3399_defconfig +++ b/configs/rockpro64-rk3399_defconfig @@ -11,6 +11,7 @@ CONFIG_ENV_OFFSET=0x3F8000 CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" CONFIG_DM_RESET=y CONFIG_ROCKCHIP_RK3399=y +CONFIG_ROCKCHIP_SPI_IMAGE=y CONFIG_TARGET_ROCKPRO64_RK3399=y CONFIG_SPL_STACK=0x400000 CONFIG_DEBUG_UART_BASE=0xFF1A0000 @@ -20,6 +21,7 @@ CONFIG_SPL_SPI=y CONFIG_SYS_LOAD_ADDR=0x800800 CONFIG_PCI=y CONFIG_DEBUG_UART=y +CONFIG_LTO=y CONFIG_SPL_FIT_SIGNATURE=y CONFIG_BOOTSTAGE=y CONFIG_BOOTSTAGE_REPORT=y @@ -37,6 +39,7 @@ CONFIG_SPL_BSS_MAX_SIZE=0x2000 CONFIG_SPL_STACK_R=y CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 CONFIG_SPL_SPI_LOAD=y +CONFIG_SYS_SPI_U_BOOT_OFFS=0x60000 CONFIG_TPL=y CONFIG_CMD_BOOTZ=y CONFIG_CMD_GPT=y -- 2.40.1