[PATCH v3 10/17] mtd: spi-nor-core: Get command opcode extension type from BFPT

Pratyush Yadav p.yadav at ti.com
Mon May 18 20:33:52 CEST 2020


Hi Pragnesh,

On 18/05/20 02:31PM, Pragnesh Patel wrote:
> Hi Pratyush,
> 
> >-----Original Message-----
> >From: U-Boot <u-boot-bounces at lists.denx.de> On Behalf Of Pratyush Yadav
> >Sent: 30 March 2020 21:16
> >To: Jagan Teki <jagan at amarulasolutions.com>; Vignesh Raghavendra
> ><vigneshr at ti.com>
> >Cc: Pratyush Yadav <p.yadav at ti.com>; u-boot at lists.denx.de; Sekhar Nori
> ><nsekhar at ti.com>
> >Subject: [PATCH v3 10/17] mtd: spi-nor-core: Get command opcode extension
> >type from BFPT
> >
> >[External Email] Do not click links or attachments unless you recognize the
> >sender and know the content is safe
> >
> >Some devices in DTR mode expect an extra command byte called the
> >extension. The extension can either be same as the opcode, bitwise inverse of
> >the opcode, or another additional byte forming a 16-byte opcode. Get the
> >extension type from the BFPT. For now, only flashes with "repeat" and
> >"inverse" extensions are supported.
> >
> >As of JESD216D.01, BFPT is 20 DWORDs, so update the table size to reflect
> >that.
> >
> >Signed-off-by: Pratyush Yadav <p.yadav at ti.com>
> >---
> > drivers/mtd/spi/spi-nor-core.c | 28 ++++++++++++++++++++++++++--
> > 1 file changed, 26 insertions(+), 2 deletions(-)
> >
> >diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c
> >index d3f05e1ded..684a8c3216 100644
> >--- a/drivers/mtd/spi/spi-nor-core.c
> >+++ b/drivers/mtd/spi/spi-nor-core.c
> >@@ -75,11 +75,11 @@ struct sfdp_header {
> > /* Basic Flash Parameter Table */
> >
> > /*
> >- * JESD216 rev B defines a Basic Flash Parameter Table of 16 DWORDs.
> >+ * JESD216 rev D defines a Basic Flash Parameter Table of 20 DWORDs.
> >  * They are indexed from 1 but C arrays are indexed from 0.
> >  */
> > #define BFPT_DWORD(i)          ((i) - 1)
> >-#define BFPT_DWORD_MAX         16
> >+#define BFPT_DWORD_MAX         20
> 
> If we will change this according to rev D then you should also consider other revisions (rev B) because
> below condition will return 0 for revisions lower than rev D.
> 
> static int spi_nor_parse_bfpt() {
> ......
> 	1943         /* Stop here if not JESD216 rev A or later. */
> 	1944         if (bfpt_header->length < BFPT_DWORD_MAX)
> 	1945                 return 0;
> .....
> }
> 
> For flashes which does not support rev D will return from here.

Will fix in the next version. Thanks.
 

-- 
Regards,
Pratyush Yadav
Texas Instruments India


More information about the U-Boot mailing list