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

Jonas Karlman jonas at kwiboo.se
Sun Mar 24 22:23:37 CET 2024


On 2024-03-24 21:58, Dragan Simic wrote:
> 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.

The rk3308 DTs in U-Boot is very outdated so the sfc node cannot be
found in current master branch.

The sfc node is part of linux upstream DT, should also match in
dts/upstream in next branch and after the rk3308 DT sync series [1].

rockchip: rk3308: Sync DT with linux v6.8 and update defconfigs:
[1] https://patchwork.ozlabs.org/cover/1912830/

Regards,
Jonas



More information about the U-Boot mailing list