[U-Boot] [PATCH] sf: Disable 4-KB erase command for SPANSION S25FS128

Jagan Teki jagannadh.teki at gmail.com
Sat Aug 6 16:37:04 CEST 2016


On 22 June 2016 at 15:44, Yao Yuan <yao.yuan at nxp.com> wrote:
> On 06/22/2016 06:08 PM, Michael Trimarchi wrote:
>> On Wed, Jun 22, 2016 at 10:00:49AM +0000, Yao Yuan wrote:
>> > On 06/22/2016 03:59 PM, Michael Trimarchi wrote:
>> > > The S25FS128 is part of S25FS-S family physical sectors may be
>> > > configured as a hybrid combination of eight 4-kB parameter sectors
>> > > at the top or bottom of the address space with all but one of the
>> > > remaining sectors being uniform size. This rework a bit commit
>> > >
>> > > 80c1bfd2332e71dfe669cac53ba06b7435a7ca39
>> > >
>> > > and add this jedec part number
>> > >
>> > > Signed-off-by: Michael Trimarchi <michael at amarulasolutions.com>
>> > > ---
>> > >  drivers/mtd/spi/spi_flash.c | 18 ++++++++++++++++--
>> > >  1 file changed, 16 insertions(+), 2 deletions(-)
>> > >
>> > > diff --git a/drivers/mtd/spi/spi_flash.c
>> > > b/drivers/mtd/spi/spi_flash.c index
>> > > 64d4e0f..c993588 100644
>> > > --- a/drivers/mtd/spi/spi_flash.c
>> > > +++ b/drivers/mtd/spi/spi_flash.c
>> > > @@ -972,6 +972,21 @@ int spi_flash_decode_fdt(const void *blob,
>> > > struct spi_flash *flash)  #endif /* CONFIG_IS_ENABLED(OF_CONTROL) */
>> > >
>> > >  #ifdef CONFIG_SPI_FLASH_SPANSION
>> > > +
>> > > +inline int is_spansion_s25fss_family(u16 jedec, u16 ext_jedec) {
>> > > + switch (jedec) {
>> > > + case 0x0219:
>> > > + case 0x0220:
>> > > + case 0x2018:
>> > > +         if ((ext_jedec & 0xff00) == 0x4d00)
>> > > +                 return 1;
>> > > + default:;
>> > > + }
>> > > +
>> > > + return 0;
>> > > +}
>> > > +
>> > >  static int spansion_s25fss_disable_4KB_erase(struct spi_slave *spi)  {
>> > >   u8 cmd[4];
>> > > @@ -1072,8 +1087,7 @@ int spi_flash_scan(struct spi_flash *flash)
>> > >    * sector that is not overlaid by the parameter sectors.
>> > >    * The uniform sector erase command has no effect on parameter
>> > > sectors.
>> > >    */
>> > > - if ((jedec == 0x0219 || (jedec == 0x0220)) &&
>> > > -     (ext_jedec & 0xff00) == 0x4d00) {
>> > > + if (is_spansion_s25fss_family(jedec, ext_jedec)) {
>> > >           int ret;
>> > >           u8 id[6];
>> > >
>> > > --
>> >
>> > Hi Michael,
>> > From some datasheet for spansion flash, it seems all the spansion
>> > S25FS family should disable 4kb.
>> > So how about just judge the idcode[0]?
>> >
>>
>> I understand your point but I don't have enough part number and I can only to
>> test on this one. I will verify this patch too and put my review and drop my
>> personal one. Anyway can you ask if the first 0x8000 are considered by boot
>> rom? I'm trying to boot from qspi an imx7d board and I create the parameter
>> using the files/qspi-nor-spansion-s25fl128s-config but not sure if I need to flash
>> from 0x400 or from 0x8400. And then I think that bootloader should go from
>> 0x1000 or from 0x9000 correct?
>> Then from BOOT_FROM I choose qspi but what is the DEFAULT_ADDRESS
>> 0x1000 or 0x400?
>>

Don't understand either does this "Disable 4-KB erase command for
SPANSION S25FS-S family" (spansion_s25fss_disable_4KB_erase) is an
issue workaround or something like hybrid configuration feature for
spansion parts?

thanks!
-- 
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.


More information about the U-Boot mailing list