[PATCH 14/15] rockchip: rk3328-rock64: Enable boot from SPI NOR flash

Dragan Simic dsimic at manjaro.org
Sat Feb 10 23:31:57 CET 2024


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 at 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 at 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


More information about the U-Boot mailing list