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

From: Vaidya, Mahesh R
Date: Mon Aug 28 2023 - 09:32:35 EST




> -----Original Message-----
> From: Vaidya, Mahesh R
> Sent: Wednesday, July 26, 2023 1:55 PM
> To: Tudor Ambarus <tudor.ambarus@xxxxxxxxxx>; pratyush@xxxxxxxxxx;
> michael@xxxxxxxx; miquel.raynal@xxxxxxxxxxx; richard@xxxxxx;
> vigneshr@xxxxxx; linux-mtd@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Cc: andriy.shevchenko@xxxxxxxxxxxxxxx; Nikula, Jarkko
> <jarkko.nikula@xxxxxxxxx>; Zhou, Furong <furong.zhou@xxxxxxxxx>; Sangannavar,
> Mallikarjunappa <mallikarjunappa.sangannavar@xxxxxxxxx>; Srikandan, Nandhini
> <nandhini.srikandan@xxxxxxxxx>; A, Rashmi <Rashmi.A@xxxxxxxxx>
> Subject: RE: [PATCH v1] mtd: spi-nor: macronix: Add support for MX77U25650F
>
>
>
> > -----Original Message-----
> > From: Tudor Ambarus <tudor.ambarus@xxxxxxxxxx>
> > Sent: Wednesday, July 19, 2023 8:49 PM
> > To: Vaidya, Mahesh R <mahesh.r.vaidya@xxxxxxxxx>; pratyush@xxxxxxxxxx;
> > michael@xxxxxxxx; miquel.raynal@xxxxxxxxxxx; richard@xxxxxx;
> > vigneshr@xxxxxx; linux-mtd@xxxxxxxxxxxxxxxxxxx;
> > linux-kernel@xxxxxxxxxxxxxxx
> > Cc: andriy.shevchenko@xxxxxxxxxxxxxxx; Nikula, Jarkko
> > <jarkko.nikula@xxxxxxxxx>; Zhou, Furong <furong.zhou@xxxxxxxxx>;
> > Sangannavar, Mallikarjunappa <mallikarjunappa.sangannavar@xxxxxxxxx>;
> > Srikandan, Nandhini <nandhini.srikandan@xxxxxxxxx>; A, Rashmi
> > <rashmi.a@xxxxxxxxx>
> > Subject: Re: [PATCH v1] mtd: spi-nor: macronix: Add support for
> > MX77U25650F
> >
> > Hi,
> >
> > On 7/19/23 14:27, mahesh.r.vaidya@xxxxxxxxx wrote:
> > > From: Mahesh R Vaidya <mahesh.r.vaidya@xxxxxxxxx>
> > >
> > > 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@xxxxxxxxx>
> > >
> > > Signed-off-by: Mahesh R Vaidya <mahesh.r.vaidya@xxxxxxxxx>
> > > Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> > > ---
> > > 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@xxxxxxxxxxxx/
> >
> > 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@localhost:/sys/bus/spi/devices/spi0.0/spi-nor$ cat partname
spi-nor-generic
user@localhost:/sys/bus/spi/devices/spi0.0/spi-nor$ cat jedec_id
c27539c27539
user@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@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@localhost:~$ sudo mtd_debug write /dev/mtd0 0x0028000 18571 qspi_write
Copied 18571 bytes from qspi_write to address 0x00028000 in flash
user@localhost:~$ sudo mtd_debug read /dev/mtd0 0x0028000 18571 qspi_read
Copied 18571 bytes from address 0x00028000 in flash to qspi_read

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

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

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