Re: [PATCH v4 7/7] mtd: spi-nor: macronix: Add Octal 8D-8D-8D supports for Macronix mx25uw51245g

From: Pratyush Yadav
Date: Fri Jun 05 2020 - 03:47:25 EST


On 05/06/20 10:53AM, masonccyang@xxxxxxxxxxx wrote:
>
> > > > >
> > > > > +#define MXIC_CR2_DUMMY_SET_ADDR 0x300
> > > > > +
> > > > > +/* Fixup the dummy cycles to device and setup octa_dtr_enable()
> */
> > > > > +static void mx25uw51245g_post_sfdp_fixups(struct spi_nor *nor)
> > > > > +{
> > > > > + struct spi_nor_flash_parameter *params = nor->params;
> > > > > + int ret;
> > > > > + u8 rdc, wdc;
> > > > > +
> > > > > + ret = spi_nor_read_cr2(nor, MXIC_CR2_DUMMY_SET_ADDR, &rdc);
> > > > > + if (ret)
> > > > > + return;
> > > > > +
> > > > > + /* Refer to dummy cycle and frequency table(MHz) */
> > > > > + switch (params->dummy_cycles) {
> > > > > + case 10: /* 10 dummy cycles for 104 MHz */
> > > > > + wdc = 5;
> > > > > + break;
> > > > > + case 12: /* 12 dummy cycles for 133 MHz */
> > > > > + wdc = 4;
> > > > > + break;
> > > > > + case 16: /* 16 dummy cycles for 166 MHz */
> > > > > + wdc = 2;
> > > > > + break;
> > > > > + case 18: /* 18 dummy cycles for 173 MHz */
> > > > > + wdc = 1;
> > > > > + break;
> > > > > + case 20: /* 20 dummy cycles for 200 MHz */
> > > > > + default:
> > > > > + wdc = 0;
> > > > > + }
> > > >
> > > > I don't get the point of this. You already know the fastest the
> > > > mx25uw51245g flash can run at. Why not just use the maximum dummy
> > > > cycles? SPI NOR doesn't know the speed the controller is running at
> so
> > > > the best it can do is use the maximum dummy cycles possible so it
> never
> > > > falls short. Sure, it will be _slightly_ less performance, but we
> will
> > > > be sure to read the correct data, which is much much more important.
> > >
> > > In general, 200MHz needs 20 dummy cycles but some powerful device may
> only
> > >
> > > needs 18 dummy cycles or less.
> >
> > Yes, but do different mx25uw51245g chips have different dummy cycle
> > requirements? Shouldn't all the chips with the same ID have same
> > performance?
> >
>
> Same chip ID but different grade,
> i.e., commercial or industrial grade.

Ok. In that case it makes sense.

--
Regards,
Pratyush Yadav