[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200605074711.zxxajsfgzopnjecw@yadavpratyush.com>
Date: Fri, 5 Jun 2020 13:17:11 +0530
From: Pratyush Yadav <me@...avpratyush.com>
To: masonccyang@...c.com.tw
Cc: boris.brezillon@...labora.com, broonie@...nel.org,
juliensu@...c.com.tw, linux-kernel@...r.kernel.org,
linux-mtd@...ts.infradead.org, linux-spi@...r.kernel.org,
matthias.bgg@...il.com, miquel.raynal@...tlin.com, p.yadav@...com,
richard@....at, tudor.ambarus@...rochip.com, vigneshr@...com
Subject: Re: [PATCH v4 7/7] mtd: spi-nor: macronix: Add Octal 8D-8D-8D
supports for Macronix mx25uw51245g
On 05/06/20 10:53AM, masonccyang@...c.com.tw 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
Powered by blists - more mailing lists