[PATCH 03/10] mtd: spi-nor: add SPI NOR manufacturer IDs

Brian Norris computersforpeace at gmail.com
Sun Sep 27 17:46:44 PDT 2015


On Fri, Sep 25, 2015 at 01:47:18AM +0530, Jagan Teki wrote:
> On 2 September 2015 at 01:27, Brian Norris <computersforpeace at gmail.com> wrote:
> > These are often similar for CFI (parallel NOR) and for SPI NOR, but they
> > aren't always the same, for various reasons (different namespaces,
> > company acquisitions and renames, etc.). And some don't have CFI_MFR_*
> > entries at all.
> >
> > So let's make a proper place to list the SPI NOR IDs, with all the SPI
> > NOR specific assumptions and comments.
> >
> > Signed-off-by: Brian Norris <computersforpeace at gmail.com>
> > ---
> >  include/linux/mtd/spi-nor.h | 15 +++++++++++++++
> >  1 file changed, 15 insertions(+)
> >
> > diff --git a/include/linux/mtd/spi-nor.h b/include/linux/mtd/spi-nor.h
> > index 321a055bc266..8558793cc0f7 100644
> > --- a/include/linux/mtd/spi-nor.h
> > +++ b/include/linux/mtd/spi-nor.h
> > @@ -11,6 +11,21 @@
> >  #define __LINUX_MTD_SPI_NOR_H
> >
> >  #include <linux/bitops.h>
> > +#include <linux/mtd/cfi.h>
> > +
> > +/*
> > + * Manufacturer IDs
> > + *
> > + * The first byte returned from the flash after sending opcode SPINOR_OP_RDID.
> > + * Sometimes these are the same as CFI IDs, but sometimes they aren't.
> > + */
> > +#define SNOR_MFR_ATMEL         CFI_MFR_ATMEL
> > +#define SNOR_MFR_INTEL         CFI_MFR_INTEL
> > +#define SNOR_MFR_MICRON                CFI_MFR_ST /* ST Micro <--> Micron */
> > +#define SNOR_MFR_MACRONIX      CFI_MFR_MACRONIX
> > +#define SNOR_MFR_SPANSION      CFI_MFR_AMD
> > +#define SNOR_MFR_SST           CFI_MFR_SST
> > +#define SNOR_MFR_WINBOND       0xef
> 
> Ideally company names same but looks like winbond is the only diff as
> of now, why can't we define WIN and re-use the same from CFI?

I'm not quite sure what you're suggesting. Are you suggesting we make up
a new Winbond CFI ID? There already is one, and it doesn't match their
SPI NOR, so we can't use it:

#define CFI_MFR_WINBOND         0x00DA

The whole point of this patch is that some mfrs use different IDs for
different classes of flash, so we shouldn't force our programming
patterns into looking like CFI (i.e., parallel NOR [1]) when we're
talking about serial NOR.

If you'd rather, I can just copy the values into this header (e.g.,
0x01, 0x89, etc.) and completely remove all references to CFI.

Brian

[1] Actually, I've seen some serial flash which have CFI parameter
tables. But that's a different subject.



More information about the linux-mtd mailing list