diff mbox series

[1/1] mtd: spi-nor: everspin: add em004lxb entry

Message ID 20240405100104.480779-2-f.suligoi@asem.it
State Rejected
Headers show
Series mtd: spi-nor: everspin: add em004lxb entry | expand

Commit Message

Flavio Suligoi April 5, 2024, 10:01 a.m. UTC
Add the Everspin EM0004LXB 4Mb (512KB) Industrial STT-MRAM Persistent
Memory.
This device is JEDEC compatible (JESD251 and JESD251-1), but it is not
able to provide SFDP information.

Link: https://www.everspin.com/file/158244/download

Signed-off-by: Flavio Suligoi <f.suligoi@asem.it>
---
 drivers/mtd/spi-nor/everspin.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Francesco Dolcini April 5, 2024, 1:03 p.m. UTC | #1
Hello Flavio, thanks for your patch.

On Fri, Apr 05, 2024 at 12:01:04PM +0200, Flavio Suligoi wrote:
> Add the Everspin EM0004LXB 4Mb (512KB) Industrial STT-MRAM Persistent
> Memory.
> This device is JEDEC compatible (JESD251 and JESD251-1), but it is not
> able to provide SFDP information.
> 
> Link: https://www.everspin.com/file/158244/download
> 
No empty lines in-between tags

> Signed-off-by: Flavio Suligoi <f.suligoi@asem.it>

Francesco
Michael Walle April 5, 2024, 2:41 p.m. UTC | #2
Hi Flavio,

On Fri Apr 5, 2024 at 12:01 PM CEST, Flavio Suligoi wrote:
> Add the Everspin EM0004LXB 4Mb (512KB) Industrial STT-MRAM Persistent
> Memory.
> This device is JEDEC compatible (JESD251 and JESD251-1), but it is not
> able to provide SFDP information.

Did you try the at25 driver if it will fit your usecase? Judging
from your last response, it sounds like it will do.

>
> Link: https://www.everspin.com/file/158244/download
>
> Signed-off-by: Flavio Suligoi <f.suligoi@asem.it>
> ---
>  drivers/mtd/spi-nor/everspin.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/drivers/mtd/spi-nor/everspin.c b/drivers/mtd/spi-nor/everspin.c
> index 5f321e24ae7d..4741930ce9a8 100644
> --- a/drivers/mtd/spi-nor/everspin.c
> +++ b/drivers/mtd/spi-nor/everspin.c
> @@ -31,6 +31,14 @@ static const struct flash_info everspin_nor_parts[] = {
>  		.size = SZ_512K,
>  		.sector_size = SZ_512K,
>  		.flags = SPI_NOR_NO_ERASE | SPI_NOR_NO_FR,
> +	}, {
> +		.id = SNOR_ID(0x6b, 0xbb, 0x13),
> +		.name = "em004lxb",
> +		.size = SZ_512K,
> +		.sector_size = SZ_512K,
> +		.flags = SPI_NOR_NO_ERASE | SPI_NOR_NO_FR | SPI_NOR_HAS_LOCK |

Will it also work without SPI_NOR_NO_ERASE? Also, the flash supports
fast read, so drop NO_FR. Also, please have a look at [1] for the
testing requirements.

Thanks.
-michael

> +			 SPI_NOR_HAS_TB | SPI_NOR_4BIT_BP | SPI_NOR_BP3_SR_BIT6,
> +		.no_sfdp_flags = SPI_NOR_SKIP_SFDP,
>  	}
>  };
>  

[1] https://docs.kernel.org/driver-api/mtd/spi-nor.html
Flavio Suligoi April 9, 2024, 11:57 a.m. UTC | #3
Hi Francesco,
...

> Hello Flavio, thanks for your patch.
> 
> On Fri, Apr 05, 2024 at 12:01:04PM +0200, Flavio Suligoi wrote:
> > Add the Everspin EM0004LXB 4Mb (512KB) Industrial STT-MRAM Persistent
> > Memory.
> > This device is JEDEC compatible (JESD251 and JESD251-1), but it is not
> > able to provide SFDP information.
> >
> > Link:
> > https://urldefense.com/v3/__https://www.everspin.com/file/158244/downl
> > oad__;!!JhrIYaSK6lFZ!tWeIxTcqY-RFxb9oTGXkVDvdN3bGApINZBts9sSPv-AIlH7r2
> > xf0to_QuyONQPwOICeq6hrz5Ia-1e6vT1VfaA$
> >
> No empty lines in-between tags

Thanks for your observation, right!

> 
> > Signed-off-by: Flavio Suligoi <f.suligoi@asem.it>
> 
> Francesco

Flavio
Flavio Suligoi April 9, 2024, 12:07 p.m. UTC | #4
Hi Michael,

...
 
> Hi Flavio,
> 
> On Fri Apr 5, 2024 at 12:01 PM CEST, Flavio Suligoi wrote:
> > Add the Everspin EM0004LXB 4Mb (512KB) Industrial STT-MRAM Persistent
> > Memory.
> > This device is JEDEC compatible (JESD251 and JESD251-1), but it is not
> > able to provide SFDP information.
> 
> Did you try the at25 driver if it will fit your usecase? Judging from
> your last response, it sounds like it will do.

Yes, you are right, it works with at25 driver!
Thanks!

At the moment I have to use a page size of 256 bytes, using "atmel,at25".
Since the Everspin EM0004LXB MRAM doesn't have problem with any page size
(theoretically I could use a single page size of 512KB), can I update the
at25.c driver with a support for the EM0004LXB MRAM, as already done for
the Cypress fm25 F-RAM?

> 
> >
> > Link: https://www.everspin.com/file/158244/download
> >
> > Signed-off-by: Flavio Suligoi <f.suligoi@asem.it>
> > ---
> >  drivers/mtd/spi-nor/everspin.c | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> >
> > diff --git a/drivers/mtd/spi-nor/everspin.c
> > b/drivers/mtd/spi-nor/everspin.c index 5f321e24ae7d..4741930ce9a8
> > 100644
> > --- a/drivers/mtd/spi-nor/everspin.c
> > +++ b/drivers/mtd/spi-nor/everspin.c
> > @@ -31,6 +31,14 @@ static const struct flash_info everspin_nor_parts[]
> = {
> >  		.size = SZ_512K,
> >  		.sector_size = SZ_512K,
> >  		.flags = SPI_NOR_NO_ERASE | SPI_NOR_NO_FR,
> > +	}, {
> > +		.id = SNOR_ID(0x6b, 0xbb, 0x13),
> > +		.name = "em004lxb",
> > +		.size = SZ_512K,
> > +		.sector_size = SZ_512K,
> > +		.flags = SPI_NOR_NO_ERASE | SPI_NOR_NO_FR | SPI_NOR_HAS_LOCK
> |
> 
> Will it also work without SPI_NOR_NO_ERASE? Also, the flash supports
> fast read, so drop NO_FR. Also, please have a look at [1] for the
> testing requirements.
> 
> Thanks.
> -michael
> 
> > +			 SPI_NOR_HAS_TB | SPI_NOR_4BIT_BP | SPI_NOR_BP3_SR_BIT6,
> > +		.no_sfdp_flags = SPI_NOR_SKIP_SFDP,
> >  	}
> >  };
> >
> 
> [1] https://docs.kernel.org/driver-api/mtd/spi-nor.html

Thanks and best regards,
Flavio
Michael Walle April 9, 2024, 1:22 p.m. UTC | #5
Hi,

On Tue Apr 9, 2024 at 2:07 PM CEST, FLAVIO SULIGOI wrote:
> > On Fri Apr 5, 2024 at 12:01 PM CEST, Flavio Suligoi wrote:
> > > Add the Everspin EM0004LXB 4Mb (512KB) Industrial STT-MRAM Persistent
> > > Memory.
> > > This device is JEDEC compatible (JESD251 and JESD251-1), but it is not
> > > able to provide SFDP information.
> > 
> > Did you try the at25 driver if it will fit your usecase? Judging from
> > your last response, it sounds like it will do.
>
> Yes, you are right, it works with at25 driver!
> Thanks!

Good news :)

> At the moment I have to use a page size of 256 bytes, using "atmel,at25".
> Since the Everspin EM0004LXB MRAM doesn't have problem with any page size
> (theoretically I could use a single page size of 512KB), can I update the
> at25.c driver with a support for the EM0004LXB MRAM, as already done for
> the Cypress fm25 F-RAM?

Feel free to propose a patch. Keep in mind that it is another ML and
maintainer. Just use get_maintainer.pl. Keep me on CC if you like.

-michael

> > 
> > >
> > > Link: https://www.everspin.com/file/158244/download
> > >
> > > Signed-off-by: Flavio Suligoi <f.suligoi@asem.it>
> > > ---
> > >  drivers/mtd/spi-nor/everspin.c | 8 ++++++++
> > >  1 file changed, 8 insertions(+)
> > >
> > > diff --git a/drivers/mtd/spi-nor/everspin.c
> > > b/drivers/mtd/spi-nor/everspin.c index 5f321e24ae7d..4741930ce9a8
> > > 100644
> > > --- a/drivers/mtd/spi-nor/everspin.c
> > > +++ b/drivers/mtd/spi-nor/everspin.c
> > > @@ -31,6 +31,14 @@ static const struct flash_info everspin_nor_parts[]
> > = {
> > >  		.size = SZ_512K,
> > >  		.sector_size = SZ_512K,
> > >  		.flags = SPI_NOR_NO_ERASE | SPI_NOR_NO_FR,
> > > +	}, {
> > > +		.id = SNOR_ID(0x6b, 0xbb, 0x13),
> > > +		.name = "em004lxb",
> > > +		.size = SZ_512K,
> > > +		.sector_size = SZ_512K,
> > > +		.flags = SPI_NOR_NO_ERASE | SPI_NOR_NO_FR | SPI_NOR_HAS_LOCK
> > |
> > 
> > Will it also work without SPI_NOR_NO_ERASE? Also, the flash supports
> > fast read, so drop NO_FR. Also, please have a look at [1] for the
> > testing requirements.
> > 
> > Thanks.
> > -michael
> > 
> > > +			 SPI_NOR_HAS_TB | SPI_NOR_4BIT_BP | SPI_NOR_BP3_SR_BIT6,
> > > +		.no_sfdp_flags = SPI_NOR_SKIP_SFDP,
> > >  	}
> > >  };
> > >
> > 
> > [1] https://docs.kernel.org/driver-api/mtd/spi-nor.html
>
> Thanks and best regards,
> Flavio
Flavio Suligoi April 9, 2024, 1:50 p.m. UTC | #6
Hi Michael,

...
> On Tue Apr 9, 2024 at 2:07 PM CEST, FLAVIO SULIGOI wrote:
> > > On Fri Apr 5, 2024 at 12:01 PM CEST, Flavio Suligoi wrote:
> > > > Add the Everspin EM0004LXB 4Mb (512KB) Industrial STT-MRAM
> > > > Persistent Memory.
> > > > This device is JEDEC compatible (JESD251 and JESD251-1), but it is
> > > > not able to provide SFDP information.
> > >
> > > Did you try the at25 driver if it will fit your usecase? Judging
> > > from your last response, it sounds like it will do.
> >
> > Yes, you are right, it works with at25 driver!
> > Thanks!
> 
> Good news :)
> 
> > At the moment I have to use a page size of 256 bytes, using
> "atmel,at25".
> > Since the Everspin EM0004LXB MRAM doesn't have problem with any page
> > size (theoretically I could use a single page size of 512KB), can I
> > update the at25.c driver with a support for the EM0004LXB MRAM, as
> > already done for the Cypress fm25 F-RAM?
> 
> Feel free to propose a patch. Keep in mind that it is another ML and
> maintainer. Just use get_maintainer.pl. Keep me on CC if you like.

Thanks for the suggestions!

...

Best regards,
Flavio
diff mbox series

Patch

diff --git a/drivers/mtd/spi-nor/everspin.c b/drivers/mtd/spi-nor/everspin.c
index 5f321e24ae7d..4741930ce9a8 100644
--- a/drivers/mtd/spi-nor/everspin.c
+++ b/drivers/mtd/spi-nor/everspin.c
@@ -31,6 +31,14 @@  static const struct flash_info everspin_nor_parts[] = {
 		.size = SZ_512K,
 		.sector_size = SZ_512K,
 		.flags = SPI_NOR_NO_ERASE | SPI_NOR_NO_FR,
+	}, {
+		.id = SNOR_ID(0x6b, 0xbb, 0x13),
+		.name = "em004lxb",
+		.size = SZ_512K,
+		.sector_size = SZ_512K,
+		.flags = SPI_NOR_NO_ERASE | SPI_NOR_NO_FR | SPI_NOR_HAS_LOCK |
+			 SPI_NOR_HAS_TB | SPI_NOR_4BIT_BP | SPI_NOR_BP3_SR_BIT6,
+		.no_sfdp_flags = SPI_NOR_SKIP_SFDP,
 	}
 };