[U-Boot] [PATCH] sf: Add SPI_FLASH_4BYTE_MODE_ONLY option to support 4-byte mode

Stefan Roese sr at denx.de
Mon Aug 6 15:36:48 UTC 2018


On 06.08.2018 17:33, Simon Goldschmidt wrote:
> 
> 
> Stefan Roese <sr at denx.de <mailto:sr at denx.de>> schrieb am Mo., 6. Aug. 
> 2018, 17:29:
> 
> 
> 
>     On 06.08.2018 17:27, Simon Goldschmidt wrote:
>      >
>      >
>      > Stefan Roese <sr at denx.de <mailto:sr at denx.de> <mailto:sr at denx.de
>     <mailto:sr at denx.de>>> schrieb am Mo., 6. Aug.
>      > 2018, 17:23:
>      >
>      >     Hi Simon,
>      >
>      >     On 06.08.2018 17:15, Simon Goldschmidt wrote:
>      >      >
>      >      >
>      >      > Stefan Roese <sr at denx.de <mailto:sr at denx.de>
>     <mailto:sr at denx.de <mailto:sr at denx.de>> <mailto:sr at denx.de
>     <mailto:sr at denx.de>
>      >     <mailto:sr at denx.de <mailto:sr at denx.de>>>> schrieb am Mo., 6. Aug.
>      >      > 2018, 16:34:
>      >      >
>      >      >     Some SPI NOR chips only support 4-byte mode
>     addressing. Here
>      >     the default
>      >      >     3-byte mode does not work and leads to incorrect accesses.
>      >     Setting this
>      >      >     option enables the use of such SPI NOR chips, that only
>      >     support this
>      >      >     4-byte mode.
>      >      >
>      >      >
>      >      > I think it would make more sense to enable 4-byte mode or
>     4-byte
>      >     opcodes
>      >      > on all chips with more than 16 mbyte rather than having to
>     select at
>      >      > compile time.
>      >
>      >     We need to be careful here. As setting the chip into 4-byte mode
>      >     unconditionally (for bigger devices) will very likely cause boot
>      >     problems with internal bootROMs expecting 3-byte mode.
>      >
>      >
>      > I have a similar problem on socfpga where Linux 4.9 sets the chip
>     into
>      > 4-byte mode and SPL cannot use it on warm reboot. However, the
>     bootROM
>      > does not run on warm reboot on this platform.
> 
>     So in your "warm reboot" case, my option b) below would help, right?
> 
> 
> Yes, I guess it would.
> 
> An even better idea would be to use stateless 4-byte opcodes. That's 
> what Linux does in more recent versions. But that would be a larger 
> patch, I guess. And with Jagan's bigger rework in his queue, I can't 
> tell if this is a good time to do so.

Yes, this is definitely out of scope for me, reworking this 4-byte
support to this stateless version. Sorry. But if we agree that the
option b) is helpful and harmless (which I think it is), then I
can rework this patch and re-send a version which should also work
for you - as described below.

> 
>     b)
>     Another idea would be to check the 3-byte / 4-byte mode of the SPI
>     NOR device upon SPI NOR driver loading and use the selected mode
>     accordingly. This could be done without compile time options but
>     it would not help in general for users with bigger SPI NOR devices
>     that support both modes.
> 
>     Thanks,
>     Stefan
> 


Thanks,
Stefan


More information about the U-Boot mailing list