[PATCH v2 3/3] rockchip: spl: Add SPI NOR flash to boot_devices array

Jonas Karlman jonas at kwiboo.se
Sun Mar 24 18:28:47 CET 2024


Hi Dragan,

On 2024-03-24 17:52, Dragan Simic wrote:
> Hello Jonas,
> 
> Please see my comments below.
> 
> On 2024-03-22 21:50, Jonas Karlman wrote:
>> Add missing boot source id <-> device tree node path mapping for SPI 
>> NOR
>> flash on PX30, RK3288, RK3308, RK3368 and RV1126.
>>
>> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
>> ---
>> v2:
>> - New patch
>> ---
>>  arch/arm/mach-rockchip/px30/px30.c     | 1 +
>>  arch/arm/mach-rockchip/rk3288/rk3288.c | 1 +
>>  arch/arm/mach-rockchip/rk3308/rk3308.c | 1 +
>>  arch/arm/mach-rockchip/rk3368/rk3368.c | 1 +
>>  arch/arm/mach-rockchip/rv1126/rv1126.c | 1 +
>>  5 files changed, 5 insertions(+)
>>
>> diff --git a/arch/arm/mach-rockchip/px30/px30.c
>> b/arch/arm/mach-rockchip/px30/px30.c
>> index b4f655fa4b3e..2ec3289d75b7 100644
>> --- a/arch/arm/mach-rockchip/px30/px30.c
>> +++ b/arch/arm/mach-rockchip/px30/px30.c
>> @@ -19,6 +19,7 @@
>>
>>  const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
>>  	[BROM_BOOTSOURCE_EMMC] = "/mmc at ff390000",
>> +	[BROM_BOOTSOURCE_SPINOR] = "/spi at ff3a0000/flash at 0",
> 
> AFAICT, no PX30-based board contains an SPI chip, but making this
> future-proof perhaps shouldn't hurt.

The rk3326-odroid-go2 variant of PX30 has a jedec,spi-nor node.

> 
>>  	[BROM_BOOTSOURCE_SD] = "/mmc at ff370000",
>>  };
>>
>> diff --git a/arch/arm/mach-rockchip/rk3288/rk3288.c
>> b/arch/arm/mach-rockchip/rk3288/rk3288.c
>> index c77c56c1dab5..70cf50029121 100644
>> --- a/arch/arm/mach-rockchip/rk3288/rk3288.c
>> +++ b/arch/arm/mach-rockchip/rk3288/rk3288.c
>> @@ -28,6 +28,7 @@ DECLARE_GLOBAL_DATA_PTR;
>>
>>  const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
>>  	[BROM_BOOTSOURCE_EMMC] = "/mmc at ff0f0000",
>> +	[BROM_BOOTSOURCE_SPINOR] = "/spi at ff130000/flash at 0",
> 
> Using spi2 for a flash chip applies to some RK3288-based boards, but 
> AFAICT
> not to all of them.  For example, arch/arm/dts/rk3288-evb.dtsi uses spi0
> for a flash chip, which in turn translates to /spi at ff110000/flash at 0.  
> The
> same also applies to arch/arm/dts/rk3288-firefly.dtsi, for example.

The RK3288 TRM explicitly mention that it can boot from SPI2 CS0.

Also I can only find jedec,spi-nor reference in rk3288-phycore-som.dtsi
and rk3288-veyron.dtsi, nothing in rk3288-evb.dtsi or rk3288-firefly.dtsi.

> 
>>  	[BROM_BOOTSOURCE_SD] = "/mmc at ff0c0000",
>>  };
>>
>> diff --git a/arch/arm/mach-rockchip/rk3308/rk3308.c
>> b/arch/arm/mach-rockchip/rk3308/rk3308.c
>> index 27a748327e31..b3ffabc5449a 100644
>> --- a/arch/arm/mach-rockchip/rk3308/rk3308.c
>> +++ b/arch/arm/mach-rockchip/rk3308/rk3308.c
>> @@ -141,6 +141,7 @@ enum {
>>
>>  const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
>>  	[BROM_BOOTSOURCE_EMMC] = "/mmc at ff490000",
>> +	[BROM_BOOTSOURCE_SPINOR] = "/spi at ff4c0000/flash at 0",
> 
> AFAICT, no RK3308-based board contains an SPI chip, and I'm not really
> sure where does /spi at ff4c0000/flash at 0 come from.

RK3308 TRM mention that it can boot from the SFC. And yes there is no
upstream board that currently have a jedec,spi-nor node, it however
have the sfc (spi at ff4c0000) node so this adds correct node path.

Regards,
Jonas

> 
>>  	[BROM_BOOTSOURCE_SD] = "/mmc at ff480000",
>>  };
>>
>> diff --git a/arch/arm/mach-rockchip/rk3368/rk3368.c
>> b/arch/arm/mach-rockchip/rk3368/rk3368.c
>> index 651ba1090206..8f5ca1dfa7c9 100644
>> --- a/arch/arm/mach-rockchip/rk3368/rk3368.c
>> +++ b/arch/arm/mach-rockchip/rk3368/rk3368.c
>> @@ -55,6 +55,7 @@ struct mm_region *mem_map = rk3368_mem_map;
>>
>>  const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
>>  	[BROM_BOOTSOURCE_EMMC] = "/mmc at ff0f0000",
>> +	[BROM_BOOTSOURCE_SPINOR] = "/spi at ff120000/flash at 0",
> 
> This is fine.
> 
>>  	[BROM_BOOTSOURCE_SD] = "/mmc at ff0c0000",
>>  };
>>
>> diff --git a/arch/arm/mach-rockchip/rv1126/rv1126.c
>> b/arch/arm/mach-rockchip/rv1126/rv1126.c
>> index 8589c46f10aa..40eb9eb7b196 100644
>> --- a/arch/arm/mach-rockchip/rv1126/rv1126.c
>> +++ b/arch/arm/mach-rockchip/rv1126/rv1126.c
>> @@ -15,6 +15,7 @@
>>
>>  const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
>>  	[BROM_BOOTSOURCE_EMMC] = "/mmc at ffc50000",
>> +	[BROM_BOOTSOURCE_SPINOR] = "/spi at ffc90000/flash at 0",
> 
> This is also fine.
> 
>>  	[BROM_BOOTSOURCE_SD] = "/mmc at ffc60000",
>>  };



More information about the U-Boot mailing list