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

Dragan Simic dsimic at manjaro.org
Sun Mar 24 21:58:00 CET 2024


On 2024-03-24 18:28, Jonas Karlman wrote:
> On 2024-03-24 17:52, Dragan Simic wrote:
>> 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.

Ah, I see, I missed that.  Thanks for the clarification.

>>>  	[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.

Oh, I see now, you're right.  I've checked the Firefly-RK3288 schematic
and it just exposes the spi0 interface on one of its expansion headers.

>>>  	[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.

Hmm, I see no sfc node in any of the arch/arm/dts/rk3308* files?
Maybe I'm missing something, but there's also no "ff4c0000" string
in the entire arch/arm/dts directory.


More information about the U-Boot mailing list