Re: [PATCH v2] mtd: spi-nor: clear Winbond Extended Address Reg on switch to 3-byte addressing.

From: Boris Brezillon
Date: Fri Apr 20 2018 - 18:10:42 EST


On Sat, 21 Apr 2018 07:28:19 +1000
NeilBrown <neil@xxxxxxxxxx> wrote:

> On Fri, Apr 20 2018, Boris Brezillon wrote:
>
> > Hi Neil,
> >
> > On Mon, 16 Apr 2018 09:42:30 +1000
> > NeilBrown <neil@xxxxxxxxxx> wrote:
> >
> >> Winbond spi-nor flash 32MB and larger have an 'Extended Address
> >> Register' as one option for addressing beyond 16MB (Macronix
> >> has the same concept, Spansion has EXTADD bits in the Bank Address
> >> Register).
> >>
> >> According to section
> >> 8.2.7 Write Extended Address Register (C5h)
> >>
> >> of the Winbond W25Q256FV data sheet (256M-BIT SPI flash)
> >>
> >> The Extended Address Register is only effective when the device is
> >> in the 3-Byte Address Mode. When the device operates in the 4-Byte
> >> Address Mode (ADS=1), any command with address input of A31-A24
> >> will replace the Extended Address Register values. It is
> >> recommended to check and update the Extended Address Register if
> >> necessary when the device is switched from 4-Byte to 3-Byte Address
> >> Mode.
> >>
> >> So the documentation suggests clearing the EAR after switching to
> >> 3-byte mode. Experimentation shows that the EAR is *always* one after
> >> the switch to 3-byte mode, so clearing the EAR is mandatory at
> >> shutdown for a subsequent 3-byte-addressed reboot to work.
> >>
> >> Note that some SOCs (e.g. MT7621) do not assert a reset line at normal
> >> reboot, so we cannot rely on hardware reset. The MT7621 does assert a
> >> reset line at watchdog-reset.
> >>
> >> Signed-off-by: NeilBrown <neil@xxxxxxxxxx>
> >
> > We should probably backport the fix. Can you add a Fixes and Cc-stable
> > tag?
>
> It's a bit weird having Fixes when this isn't a regression, but I guess
> it doesn't hurt.

Well, I thought you wanted this patch to be backported to stable
releases, hence my suggestion. Of course it's not a regression, since
the bug is here from the beginning, but nonetheless it's fixing a bug.

> I chose
> Fixes: 59b356ffd0b0 ("mtd: m25p80: restore the status of SPI flash when exiting")
> as this patch it useless without that one.

Not sure that's how Fixes should be used. IIUC, it should point to the
first commit where the bug was introduced, so I guess it's 0aa87b7563f1
("mtd: m25p80: add support for the windbond w25q256 chip") in this case.

Now, if you want to restrict the kernel releases this patch should be
backported to, you can use the '# vX.Y+' suffix in your Cc-stable tag.

>
> I also fixed the comment and have resent.

Thanks.