[PATCH v1] mtd: spi-nor: macronix: Add support for MX77U25650F

Vaidya, Mahesh R mahesh.r.vaidya at intel.com
Mon Aug 28 06:31:17 PDT 2023



> -----Original Message-----
> From: Vaidya, Mahesh R
> Sent: Wednesday, July 26, 2023 1:55 PM
> To: Tudor Ambarus <tudor.ambarus at linaro.org>; pratyush at kernel.org;
> michael at walle.cc; miquel.raynal at bootlin.com; richard at nod.at;
> vigneshr at ti.com; linux-mtd at lists.infradead.org; linux-kernel at vger.kernel.org
> Cc: andriy.shevchenko at linux.intel.com; Nikula, Jarkko
> <jarkko.nikula at intel.com>; Zhou, Furong <furong.zhou at intel.com>; Sangannavar,
> Mallikarjunappa <mallikarjunappa.sangannavar at intel.com>; Srikandan, Nandhini
> <nandhini.srikandan at intel.com>; A, Rashmi <Rashmi.A at intel.com>
> Subject: RE: [PATCH v1] mtd: spi-nor: macronix: Add support for MX77U25650F
> 
> 
> 
> > -----Original Message-----
> > From: Tudor Ambarus <tudor.ambarus at linaro.org>
> > Sent: Wednesday, July 19, 2023 8:49 PM
> > To: Vaidya, Mahesh R <mahesh.r.vaidya at intel.com>; pratyush at kernel.org;
> > michael at walle.cc; miquel.raynal at bootlin.com; richard at nod.at;
> > vigneshr at ti.com; linux-mtd at lists.infradead.org;
> > linux-kernel at vger.kernel.org
> > Cc: andriy.shevchenko at linux.intel.com; Nikula, Jarkko
> > <jarkko.nikula at intel.com>; Zhou, Furong <furong.zhou at intel.com>;
> > Sangannavar, Mallikarjunappa <mallikarjunappa.sangannavar at intel.com>;
> > Srikandan, Nandhini <nandhini.srikandan at intel.com>; A, Rashmi
> > <rashmi.a at intel.com>
> > Subject: Re: [PATCH v1] mtd: spi-nor: macronix: Add support for
> > MX77U25650F
> >
> > Hi,
> >
> > On 7/19/23 14:27, mahesh.r.vaidya at intel.com wrote:
> > > From: Mahesh R Vaidya <mahesh.r.vaidya at intel.com>
> > >
> > > The MX7725650F is production chip for new design from Macronix with
> > > a lesser memory of 256Mbit with unique security features like
> > > Permanent
> > > 4 I/O RPMC, Secured 8K OTP support.
> > >
> > > Validated by read, erase, write and read back.
> > > Tested on Intel RPL, PASS.
> > > Tested-by: Mahesh R Vaidya <mahesh.r.vaidya at intel.com>
> > >
> > > Signed-off-by: Mahesh R Vaidya <mahesh.r.vaidya at intel.com>
> > > Reviewed-by: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
> > > ---
> > >  drivers/mtd/spi-nor/macronix.c | 3 +++
> > >  1 file changed, 3 insertions(+)
> > >
> > > diff --git a/drivers/mtd/spi-nor/macronix.c
> > > b/drivers/mtd/spi-nor/macronix.c index 04888258e891..995936ba58e2
> > > 100644
> > > --- a/drivers/mtd/spi-nor/macronix.c
> > > +++ b/drivers/mtd/spi-nor/macronix.c
> > > @@ -103,6 +103,9 @@ static const struct flash_info macronix_nor_parts[] = {
> > >  	{ "mx66u2g45g",	 INFO(0xc2253c, 0, 64 * 1024, 4096)
> > >  		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
> > SPI_NOR_QUAD_READ)
> > >  		FIXUP_FLAGS(SPI_NOR_4B_OPCODES) },
> > > +	{ "mx77u25650f",  INFO(0xc27539, 0, 64 * 1024, 512)
> > > +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
> > SPI_NOR_QUAD_READ)
> > > +		FIXUP_FLAGS(SPI_NOR_4B_OPCODES) },
> > >  };
> > >
> >
> > Does this flash support SFDP tables? Here's how you can determine that:
> > https://lore.kernel.org/linux-
> > mtd/cover.1686557139.git.Takahiro.Kuwano at infineon.com/
> >
> > If yes, then you could use the generic spi-nor driver, thus you won't
> > need to explicitly define a flash entry,
> > See:
> > 773bbe104497 mtd: spi-nor: add generic flash driver
> 
> Sure, we will check on this flash and update on the SFDP support.

Hi @Tudor Ambarus,
Very sorry for the delay in our response.
We have checked and validated to confirm that this flash MX77U25650F does support SFDP tables.
Below are the test result logs executed with the SFDP support indicating write/read being successful.
With this, I think we can close this review/mail chain. Please advise otherwise.

TEST LOGS below-:

spi-nor info:
user at localhost:/sys/bus/spi/devices/spi0.0/spi-nor$ cat partname
spi-nor-generic
user at localhost:/sys/bus/spi/devices/spi0.0/spi-nor$ cat jedec_id
c27539c27539
user at localhost:/sys/bus/spi/devices/spi0.0/spi-nor$ xxd sfdp
00000000: 5346 4450 0601 03ff 0006 0110 3000 00ff 
00000010: c200 0104 1001 00ff 0300 0102 0001 00ff 
00000020: 8400 0102 c000 00ff ffff ffff ffff ffff 
00000030: e520 f3ff ffff ff0f 44eb 086b 083b 04bb
00000040: eeff ffff ffff 00ff ffff 00ff 0c20 0f52
00000050: 10d8 00ff 8341 bd00 82a7 04db 4403 3738
00000060: 30b0 30b0 f7a9 d55c 009e 29ff f050 f985
00000070: ffff ffff ffff ffff ffff ffff ffff ffff 
00000080: ffff ffff ffff ffff ffff ffff ffff ffff 
00000090: ffff ffff ffff ffff ffff ffff ffff ffff 
000000a0: ffff ffff ffff ffff ffff ffff ffff ffff 
000000b0: ffff ffff ffff ffff ffff ffff ffff ffff 
000000c0: 7f0f f0ff 215c dcff ffff ffff ffff ffff 
000000d0: ffff ffff ffff ffff ffff ffff ffff ffff
000000e0: ffff ffff ffff ffff ffff ffff ffff ffff
000000f0: ffff ffff ffff ffff ffff ffff ffff ffff 
00000100: 3c9b 96f0 c5a4 c2ff ffff ffff ffff ffff 
00000110: 0020 5016 9df9 c064 fecf ffff ffff ffff


mtd info:
user at localhost:~$ sudo mtd_debug info /dev/mtd0
mtd.type = MTD_NORFLASH
mtd.flags = MTD_CAP_NORFLASH
mtd.size = 33554432 (32M)
mtd.erasesize = 4096 (4K)
mtd.writesize = 1
mtd.oobsize = 0
regions = 0

mtd read write test:
user at localhost:~$ sudo mtd_debug write /dev/mtd0 0x0028000 18571 qspi_write
Copied 18571 bytes from qspi_write to address 0x00028000 in flash
user at localhost:~$ sudo mtd_debug read /dev/mtd0 0x0028000 18571 qspi_read
Copied 18571 bytes from address 0x00028000 in flash to qspi_read

user at localhost:~$ md5sum qspi_write qspi_read
0c86a86c169a8a296960888a78b75cba  qspi_write
0c86a86c169a8a296960888a78b75cba  qspi_read

user at localhost:~$ sha1sum qspi_write qspi_read
1321befe7c82bd7488d5be933ccb6c4459c3207e  qspi_write
1321befe7c82bd7488d5be933ccb6c4459c3207e  qspi_read

mtd_erase test (all but one sector):
user at localhost:~$ sudo mtd_debug erase /dev/mtd0 0 32505856
Erased 32505856 bytes from address 0x00000000 in flash.




More information about the linux-mtd mailing list