From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pratyush Yadav Date: Tue, 19 May 2020 00:03:52 +0530 Subject: [PATCH v3 10/17] mtd: spi-nor-core: Get command opcode extension type from BFPT In-Reply-To: References: <20200330154550.21179-1-p.yadav@ti.com> <20200330154550.21179-11-p.yadav@ti.com> Message-ID: <20200518183350.4w4nkh4f7vwiseqf@ti.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Pragnesh, On 18/05/20 02:31PM, Pragnesh Patel wrote: > Hi Pratyush, > > >-----Original Message----- > >From: U-Boot On Behalf Of Pratyush Yadav > >Sent: 30 March 2020 21:16 > >To: Jagan Teki ; Vignesh Raghavendra > > > >Cc: Pratyush Yadav ; u-boot at lists.denx.de; Sekhar Nori > > > >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 > >--- > > 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