[PATCH] mtd: Apply Numonyx Axcell P33/P30 workaround for Lock/Unlock bug.
Nicolas Pitre
nico at fluxnic.net
Thu Oct 21 12:32:02 EDT 2010
On Thu, 21 Oct 2010, Artem Bityutskiy wrote:
> On Thu, 2010-10-21 at 11:33 +0200, Philippe De Muyter wrote:
> > On Thu, Oct 21, 2010 at 11:39:58AM +0300, Artem Bityutskiy wrote:
> > > On Tue, 2010-10-19 at 16:24 +0200, Philippe De Muyter wrote:
> > > > Some flash chips have a small but annoying bug, documented in
> > > > "Numonyx Axcell P33/P30 256-Mbit Specification Update"
> > > >
> > > > It states :
> > > > When customer uses [...] block unlock, the block lock status might
> > > > be altered inadvertently. Lock status might be set to either 01h
> > > > or 03h unexpectedly (00h as expected data), which leads to
> > > > program/erase failure on certain blocks.
> > > >
> > > > A workaround is given, (summary : issue a "Read Lock Status" before
> > > > the "Lock" or "Unlock" command) which I have applied and tested
> > > > with success.
> > > >
> > > > Signed-off-by: Philippe De Muyter <phdm at macqel.be>
> > >
> > > Is this Numonyx-specific issue? Should there be some kind of "if
> > > (numonyx)" statement?
> >
> > This is clearly a bug specific to some Numonyx flashes.
> > My chips have Manufacturer ID: 0x89, Device ID: 0x881B, but there are
> > other chips in the same family. The errata
> > http://www.numonyx.com/Documents/Specification%20Updates/509003_P3X_65nm_3V_256Mbit_Discrete.pdf does not list the ManufacturerIDs/DeviceIDs of the affected
> > chips.
>
> CCed Nicolas correctly.
>
> Anyway, if this affects only subset of chips, it make sense to make this
> quirk conditional, because this might affect boot speed, e.g., if some
> systems unlock all blocks on boot-up.
That is probably quite unlikely to make a difference given that there is
no result delay involved.
However, does the erratum workaround imply that the status actually has
to be read? In other words, can you simply issue CMD 90 without calling
cfi_read_query()?
Nicolas
More information about the linux-mtd
mailing list