[PATCH v2] mtd: spi-nor: clear Winbond Extended Address Reg on switch to 3-byte addressing.
boris.brezillon at bootlin.com
Fri Apr 20 15:10:28 PDT 2018
On Sat, 21 Apr 2018 07:28:19 +1000
NeilBrown <neil at brown.name> wrote:
> On Fri, Apr 20 2018, Boris Brezillon wrote:
> > Hi Neil,
> > On Mon, 16 Apr 2018 09:42:30 +1000
> > NeilBrown <neil at brown.name> 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 at brown.name>
> > 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.
More information about the linux-mtd