Message ID | 20240207000301.3270722-15-jonas@kwiboo.se |
---|---|
State | Superseded |
Delegated to: | Kever Yang |
Headers | show |
Series | rockchip: rk3328: Update defconfigs, DTs and enable boot from SPI | expand |
On 2024-02-07 01:02, Jonas Karlman wrote: > Add Kconfig options to enable support for booting from SPI NOR flash on > Pine64 Rock64. > > The generated bootable u-boot-rockchip-spi.bin that can be written to > 0x0 of SPI NOR flash. The FIT image is loaded from 0x60000, same as on > RK35xx boards. > > => 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 > 1359872 bytes read in 65 ms (20 MiB/s) > > => sf update $fileaddr 0 $filesize > device 0 offset 0x0, size 0x14c000 > 1118208 bytes written, 241664 bytes skipped in 8.516s, speed 163516 > B/s > > Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Looking good to me. I'm just not sure that we need to support multiple SPI chip brands, because I can't recall that the Rock64 has been shipped with different SPI chips, but perhaps better safe than sorry. Reviewed-by: Dragan Simic <dsimic@manjaro.org> > --- > configs/rock64-rk3328_defconfig | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/configs/rock64-rk3328_defconfig > b/configs/rock64-rk3328_defconfig > index 0157a1efe374..01e447448513 100644 > --- a/configs/rock64-rk3328_defconfig > +++ b/configs/rock64-rk3328_defconfig > @@ -13,6 +13,7 @@ CONFIG_DEFAULT_DEVICE_TREE="rk3328-rock64" > CONFIG_DM_RESET=y > CONFIG_ROCKCHIP_RK3328=y > CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y > +CONFIG_ROCKCHIP_SPI_IMAGE=y > CONFIG_TPL_LIBCOMMON_SUPPORT=y > CONFIG_TPL_LIBGENERIC_SUPPORT=y > CONFIG_SPL_STACK_R_ADDR=0x600000 > @@ -20,6 +21,8 @@ CONFIG_SPL_STACK=0x400000 > CONFIG_TPL_SYS_MALLOC_F_LEN=0x800 > CONFIG_DEBUG_UART_BASE=0xFF130000 > CONFIG_DEBUG_UART_CLOCK=24000000 > +CONFIG_SPL_SPI_FLASH_SUPPORT=y > +CONFIG_SPL_SPI=y > CONFIG_SYS_LOAD_ADDR=0x800800 > CONFIG_DEBUG_UART=y > # CONFIG_ANDROID_BOOT_IMAGE is not set > @@ -42,6 +45,8 @@ CONFIG_SPL_BSS_MAX_SIZE=0x2000 > CONFIG_SPL_STACK_R=y > CONFIG_SPL_I2C=y > CONFIG_SPL_POWER=y > +CONFIG_SPL_SPI_LOAD=y > +CONFIG_SYS_SPI_U_BOOT_OFFS=0x60000 > CONFIG_SPL_ATF=y > CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y > CONFIG_TPL_SYS_MALLOC_SIMPLE=y > @@ -76,7 +81,10 @@ CONFIG_MISC=y > CONFIG_ROCKCHIP_EFUSE=y > CONFIG_MMC_DW=y > CONFIG_MMC_DW_ROCKCHIP=y > +CONFIG_SPI_FLASH_SFDP_SUPPORT=y > CONFIG_SPI_FLASH_GIGADEVICE=y > +CONFIG_SPI_FLASH_MACRONIX=y > +CONFIG_SPI_FLASH_WINBOND=y > CONFIG_PHY_REALTEK=y > CONFIG_DM_ETH_PHY=y > CONFIG_ETH_DESIGNWARE=y
On 2024-02-10 19:31, Dragan Simic wrote: > On 2024-02-07 01:02, Jonas Karlman wrote: >> Add Kconfig options to enable support for booting from SPI NOR flash on >> Pine64 Rock64. >> >> The generated bootable u-boot-rockchip-spi.bin that can be written to >> 0x0 of SPI NOR flash. The FIT image is loaded from 0x60000, same as on >> RK35xx boards. >> >> => 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 >> 1359872 bytes read in 65 ms (20 MiB/s) >> >> => sf update $fileaddr 0 $filesize >> device 0 offset 0x0, size 0x14c000 >> 1118208 bytes written, 241664 bytes skipped in 8.516s, speed 163516 >> B/s >> >> Signed-off-by: Jonas Karlman <jonas@kwiboo.se> > > Looking good to me. I'm just not sure that we need to support multiple > SPI chip brands, because I can't recall that the Rock64 has been shipped > with different SPI chips, but perhaps better safe than sorry. Main reason was that rock64 v3 does not come with a spi flash, and the rock64 wiki link to datasheet for both gigadevice and winbond, and in order to keep consistent with the orangepi r1 plus board that use macronix in its schematics. Regards, Jonas > > Reviewed-by: Dragan Simic <dsimic@manjaro.org> > >> --- >> configs/rock64-rk3328_defconfig | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/configs/rock64-rk3328_defconfig >> b/configs/rock64-rk3328_defconfig >> index 0157a1efe374..01e447448513 100644 >> --- a/configs/rock64-rk3328_defconfig >> +++ b/configs/rock64-rk3328_defconfig >> @@ -13,6 +13,7 @@ CONFIG_DEFAULT_DEVICE_TREE="rk3328-rock64" >> CONFIG_DM_RESET=y >> CONFIG_ROCKCHIP_RK3328=y >> CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y >> +CONFIG_ROCKCHIP_SPI_IMAGE=y >> CONFIG_TPL_LIBCOMMON_SUPPORT=y >> CONFIG_TPL_LIBGENERIC_SUPPORT=y >> CONFIG_SPL_STACK_R_ADDR=0x600000 >> @@ -20,6 +21,8 @@ CONFIG_SPL_STACK=0x400000 >> CONFIG_TPL_SYS_MALLOC_F_LEN=0x800 >> CONFIG_DEBUG_UART_BASE=0xFF130000 >> CONFIG_DEBUG_UART_CLOCK=24000000 >> +CONFIG_SPL_SPI_FLASH_SUPPORT=y >> +CONFIG_SPL_SPI=y >> CONFIG_SYS_LOAD_ADDR=0x800800 >> CONFIG_DEBUG_UART=y >> # CONFIG_ANDROID_BOOT_IMAGE is not set >> @@ -42,6 +45,8 @@ CONFIG_SPL_BSS_MAX_SIZE=0x2000 >> CONFIG_SPL_STACK_R=y >> CONFIG_SPL_I2C=y >> CONFIG_SPL_POWER=y >> +CONFIG_SPL_SPI_LOAD=y >> +CONFIG_SYS_SPI_U_BOOT_OFFS=0x60000 >> CONFIG_SPL_ATF=y >> CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y >> CONFIG_TPL_SYS_MALLOC_SIMPLE=y >> @@ -76,7 +81,10 @@ CONFIG_MISC=y >> CONFIG_ROCKCHIP_EFUSE=y >> CONFIG_MMC_DW=y >> CONFIG_MMC_DW_ROCKCHIP=y >> +CONFIG_SPI_FLASH_SFDP_SUPPORT=y >> CONFIG_SPI_FLASH_GIGADEVICE=y >> +CONFIG_SPI_FLASH_MACRONIX=y >> +CONFIG_SPI_FLASH_WINBOND=y >> CONFIG_PHY_REALTEK=y >> CONFIG_DM_ETH_PHY=y >> CONFIG_ETH_DESIGNWARE=y
On 2024-02-10 20:38, Jonas Karlman wrote: > On 2024-02-10 19:31, Dragan Simic wrote: >> On 2024-02-07 01:02, Jonas Karlman wrote: >>> Add Kconfig options to enable support for booting from SPI NOR flash >>> on >>> Pine64 Rock64. >>> >>> The generated bootable u-boot-rockchip-spi.bin that can be written to >>> 0x0 of SPI NOR flash. The FIT image is loaded from 0x60000, same as >>> on >>> RK35xx boards. >>> >>> => 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 >>> 1359872 bytes read in 65 ms (20 MiB/s) >>> >>> => sf update $fileaddr 0 $filesize >>> device 0 offset 0x0, size 0x14c000 >>> 1118208 bytes written, 241664 bytes skipped in 8.516s, speed 163516 >>> B/s >>> >>> Signed-off-by: Jonas Karlman <jonas@kwiboo.se> >> >> Looking good to me. I'm just not sure that we need to support >> multiple >> SPI chip brands, because I can't recall that the Rock64 has been >> shipped >> with different SPI chips, but perhaps better safe than sorry. > > Main reason was that rock64 v3 does not come with a spi flash, and the > rock64 wiki link to datasheet for both gigadevice and winbond, and in > order to keep consistent with the orangepi r1 plus board that use > macronix in its schematics. Makes sense, so there's higher chance that an SPI chip selected by the board user is already supported. Maybe even CONFIG_SPI_FLASH_XTX could also be added. >> Reviewed-by: Dragan Simic <dsimic@manjaro.org> >> >>> --- >>> configs/rock64-rk3328_defconfig | 8 ++++++++ >>> 1 file changed, 8 insertions(+) >>> >>> diff --git a/configs/rock64-rk3328_defconfig >>> b/configs/rock64-rk3328_defconfig >>> index 0157a1efe374..01e447448513 100644 >>> --- a/configs/rock64-rk3328_defconfig >>> +++ b/configs/rock64-rk3328_defconfig >>> @@ -13,6 +13,7 @@ CONFIG_DEFAULT_DEVICE_TREE="rk3328-rock64" >>> CONFIG_DM_RESET=y >>> CONFIG_ROCKCHIP_RK3328=y >>> CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y >>> +CONFIG_ROCKCHIP_SPI_IMAGE=y >>> CONFIG_TPL_LIBCOMMON_SUPPORT=y >>> CONFIG_TPL_LIBGENERIC_SUPPORT=y >>> CONFIG_SPL_STACK_R_ADDR=0x600000 >>> @@ -20,6 +21,8 @@ CONFIG_SPL_STACK=0x400000 >>> CONFIG_TPL_SYS_MALLOC_F_LEN=0x800 >>> CONFIG_DEBUG_UART_BASE=0xFF130000 >>> CONFIG_DEBUG_UART_CLOCK=24000000 >>> +CONFIG_SPL_SPI_FLASH_SUPPORT=y >>> +CONFIG_SPL_SPI=y >>> CONFIG_SYS_LOAD_ADDR=0x800800 >>> CONFIG_DEBUG_UART=y >>> # CONFIG_ANDROID_BOOT_IMAGE is not set >>> @@ -42,6 +45,8 @@ CONFIG_SPL_BSS_MAX_SIZE=0x2000 >>> CONFIG_SPL_STACK_R=y >>> CONFIG_SPL_I2C=y >>> CONFIG_SPL_POWER=y >>> +CONFIG_SPL_SPI_LOAD=y >>> +CONFIG_SYS_SPI_U_BOOT_OFFS=0x60000 >>> CONFIG_SPL_ATF=y >>> CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y >>> CONFIG_TPL_SYS_MALLOC_SIMPLE=y >>> @@ -76,7 +81,10 @@ CONFIG_MISC=y >>> CONFIG_ROCKCHIP_EFUSE=y >>> CONFIG_MMC_DW=y >>> CONFIG_MMC_DW_ROCKCHIP=y >>> +CONFIG_SPI_FLASH_SFDP_SUPPORT=y >>> CONFIG_SPI_FLASH_GIGADEVICE=y >>> +CONFIG_SPI_FLASH_MACRONIX=y >>> +CONFIG_SPI_FLASH_WINBOND=y >>> CONFIG_PHY_REALTEK=y >>> CONFIG_DM_ETH_PHY=y >>> CONFIG_ETH_DESIGNWARE=y
diff --git a/configs/rock64-rk3328_defconfig b/configs/rock64-rk3328_defconfig index 0157a1efe374..01e447448513 100644 --- a/configs/rock64-rk3328_defconfig +++ b/configs/rock64-rk3328_defconfig @@ -13,6 +13,7 @@ CONFIG_DEFAULT_DEVICE_TREE="rk3328-rock64" CONFIG_DM_RESET=y CONFIG_ROCKCHIP_RK3328=y CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y +CONFIG_ROCKCHIP_SPI_IMAGE=y CONFIG_TPL_LIBCOMMON_SUPPORT=y CONFIG_TPL_LIBGENERIC_SUPPORT=y CONFIG_SPL_STACK_R_ADDR=0x600000 @@ -20,6 +21,8 @@ CONFIG_SPL_STACK=0x400000 CONFIG_TPL_SYS_MALLOC_F_LEN=0x800 CONFIG_DEBUG_UART_BASE=0xFF130000 CONFIG_DEBUG_UART_CLOCK=24000000 +CONFIG_SPL_SPI_FLASH_SUPPORT=y +CONFIG_SPL_SPI=y CONFIG_SYS_LOAD_ADDR=0x800800 CONFIG_DEBUG_UART=y # CONFIG_ANDROID_BOOT_IMAGE is not set @@ -42,6 +45,8 @@ CONFIG_SPL_BSS_MAX_SIZE=0x2000 CONFIG_SPL_STACK_R=y CONFIG_SPL_I2C=y CONFIG_SPL_POWER=y +CONFIG_SPL_SPI_LOAD=y +CONFIG_SYS_SPI_U_BOOT_OFFS=0x60000 CONFIG_SPL_ATF=y CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y CONFIG_TPL_SYS_MALLOC_SIMPLE=y @@ -76,7 +81,10 @@ CONFIG_MISC=y CONFIG_ROCKCHIP_EFUSE=y CONFIG_MMC_DW=y CONFIG_MMC_DW_ROCKCHIP=y +CONFIG_SPI_FLASH_SFDP_SUPPORT=y CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_WINBOND=y CONFIG_PHY_REALTEK=y CONFIG_DM_ETH_PHY=y CONFIG_ETH_DESIGNWARE=y
Add Kconfig options to enable support for booting from SPI NOR flash on Pine64 Rock64. The generated bootable u-boot-rockchip-spi.bin that can be written to 0x0 of SPI NOR flash. The FIT image is loaded from 0x60000, same as on RK35xx boards. => 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 1359872 bytes read in 65 ms (20 MiB/s) => sf update $fileaddr 0 $filesize device 0 offset 0x0, size 0x14c000 1118208 bytes written, 241664 bytes skipped in 8.516s, speed 163516 B/s Signed-off-by: Jonas Karlman <jonas@kwiboo.se> --- configs/rock64-rk3328_defconfig | 8 ++++++++ 1 file changed, 8 insertions(+)