[PATCH v2 3/4] dt-bindings: mtd: macronix,mx25l12833f: add SPI-NOR chip

Erez erezgeva2 at gmail.com
Wed Jul 3 01:23:16 PDT 2024


On Wed, 3 Jul 2024 at 09:12, Tudor Ambarus <tudor.ambarus at linaro.org> wrote:
>
>
>
> On 7/3/24 12:16 AM, Erez wrote:
> > On Tue, 2 Jul 2024 at 07:00, Tudor Ambarus <tudor.ambarus at linaro.org> wrote:
> >>
> >>
> >>
> >> On 7/1/24 6:08 PM, Erez wrote:
> >>> On Mon, 1 Jul 2024 at 12:15, Tudor Ambarus <tudor.ambarus at linaro.org> wrote:
> >>>>
> >>>>
> >>>>
> >>>> On 7/1/24 10:46 AM, Erez wrote:
> >>>>> When using mx25l12805d, we do not read SFDP.
> >>>>> As it uses the no-SFDP flags.
> >>>>> When using mx25l12833f hardware with mx25l12805d driver, it did not
> >>>>> try to read the SFDP.
> >>>>> Yet mx25l12833f does have SFDP, when I remove the no-SFDP flags, the
> >>>>> driver fetch the SFDP.
> >>>>>
> >>>>> Secondly SFDP does not contain OTP information.
> >>>>>
> >>>>> mx25l12805d has two OTP regions of 128 KiB and 384 KiB (yes asymmetric).
> >>>>> While mx25l12833f has two OTP regions of 512 KiB.
> >>>>>
> >>>>> How do we handle it?
> >>>>
> >>>> You would first try to parse SFDP and initialize the flash based on
> >>>> SFDP. If there's no SFDP then you fallback to the flags declared at
> >>>> flash declaration. Esben had a try recently, see [1]. I don't know if
> >>>> there's any progress in that direction.
> >>>>
> >>>> Also, you haven't mentioned anything about the testing. Do you have the
> >>>> flash?
> >>>>
> >>>> [1]
> >>>> https://lore.kernel.org/linux-mtd/20240603-macronix-mx25l3205d-fixups-v2-0-ff98da26835c@geanix.com/
> >>>
> >>> Looking at "mtd: spi-nor: macronix: workaround for device id re-use"
> >>> I guess it can be applied to all Macronix devices.
> >>
> >> No, no, we're going to do it individually just where it's needed.
> >> Issuing unsupported commands is not that great.
> >
> > Would be nice if we could ask Macronix directly.
>
> we did. They said it's not ideal, but it's okay.
> >
> > Looking on their web site and reading some spec. and status reports.
> > Using the IDs with  'no_sfdp_flags' in drivers/mtd/spi-nor/macronix.c
> > I did not search for new chips reusing IDs of chips at end of life.
> > But we found 3 already:
> > MX25U51245G appears in the table with the same ID as MX66U51235F.
>
> is there an extension ID that differentiate the two?
>
> > Esben Haabendal found MX25L3233F which reuses  MX25L3205D ID.
> > And I found MX25L12833F reuses MX25L12805D ID.
>
> Yes. And we already have a plan for these. We need someone that cares
> about them to implement it.
>
> > Chips that are not in end of life do support SFDP, at least the new
> > versions of the chips according to their spec.
> > It seems quite systematic.
> >
>
> maybe

I check the public spec of all chips, but one, which are in the
Macronix driver table and are still in production.
They all support SFDP. I do not understand the "maybe".
As for the chips in end of life, we found 3 new chips that reuse the
ID, we can find the rest.

>
> > By the way, the chip MX25L2005A part number is 'MX25L2005' without the 'A'.
>
> feel free to propose a patch
>
> >
> > We can support Macronix chips that are not in the table, just by
> > reading the SFDP.
> > In that case we can name them like "mx-szNN".
>
> We don't care about the flash name.

Agree.

>
> If all the flash settings that we care about can be discovered by SFDP
> then one won't need to declare a flash entry at all, and instead rely on
> the driver to setup the flash settings solely based on the SFDP tables.
> See spi-nor-generic handling.

Excellent feature!

>
> >
> > The table below uses fixed width characters.
> >
> > ID      Part.         Size              Status          SFDP status
> > according to spec.
> >                                                         New chip with
> > SFDP for EOL
> > c22012  MX25L2005(A)  SZ_256K =  2Mb    EOL             MX25L2006E
> > c22532  MX25U2033E    SZ_256K =  2Mb    EOL
> > c22013  MX25L4005A    SZ_512K =  4Mb    EOL
> > c22533  MX25U4035     SZ_512K =  4Mb    EOL
> > c22534  MX25U8035     SZ_1M   =  8Mb    EOL
> > c22016  MX25L3205D    SZ_4M   =  32Mb   EOL             MX25L3233F
> > c29e16  MX25L3255E    SZ_4M   =  32Mb   EOL
> > c22017  MX25L6405D    SZ_8M   =  64Mb   EOL
> > c22018  MX25L12805D   SZ_16M  =  128Mb  EOL             MX25L12833F
> > c22538  MX25U12835F   SZ_16M  =  128Mb  EOL
> > c2253a  MX66U51235F   SZ_64M  =  512Mb  EOL             MX25U51245G
> > c22010  MX25L512E     SZ_64K  =  512Kb  NO_REC          Have-SFDP!
> > c22015  MX25L1606E    SZ_2M   =  16Mb   NO_REC          Have-SFDP!
> > c22536  MX25U3235F    SZ_4M   =  32Mb   NO_REC          Have-SFDP!
> > c22816  MX25R3235F    SZ_4M   =  32Mb   NO_REC          Have-SFDP!
> > c22537  MX25U6435F    SZ_8M   =  64Mb   NO_REC          Have-SFDP!
> > c22019  MX25L25635E   SZ_32M  =  256Mb  NO_REC          Have-SFDP!
> > c22539  MX25U25635F   SZ_32M  =  256Mb  NO_REC          Have-SFDP!
> > c2201a  MX66L51235F   SZ_64M  =  512Mb  NO_REC          Have-SFDP!
> > c2261b  MX66L1G55G    SZ_128M =  1Gb    NO_REC          Spec. is not public
> > c22314  MX25V8035F    SZ_1M   =  8Mb    PROD            Have-SFDP!
> > c22815  MX25R1635F    SZ_2M   =  16Mb   PROD            Have-SFDP!
> > c2201b  MX66L1G45G    SZ_128M =  1Gb    PROD            Have-SFDP!
> > c2253c  MX66U2G45G    SZ_256M =  2Gb    PROD            Have-SFDP!
> > c2253a  MX25U51245G   SZ_64M  =  512Mb  PROD            Have-SFDP!
> >
> > EOL     End of Life
> > PROD    Normal Production
> > NO_REC  Not recommend for new design
> >
> >
>
> not sure what you want me to do with these.

That we can read SFDP for all chips from Macronix.
Only old chips before 2010 do not have SFDP.

Erez

>
> Cheers,
> ta



More information about the linux-mtd mailing list