All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mtd: spi-nor: Add support for cy15x104q
@ 2020-03-05 12:02 Sascha Hauer
  2020-03-09  8:40 ` [PATCH v2] " Sascha Hauer
  0 siblings, 1 reply; 13+ messages in thread
From: Sascha Hauer @ 2020-03-05 12:02 UTC (permalink / raw)
  To: linux-mtd
  Cc: Richard Weinberger, Sascha Hauer, Miquel Raynal,
	Vignesh Raghavendra, Tudor Ambarus

The Cypress cy15b104q and cy15v104q are 4Mbit serial SPI F-RAM devices.
Add support for them to the spi-nor driver.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/mtd/spi-nor/spi-nor.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
index 4fc632ec18fe..bd4e9097431a 100644
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -2335,6 +2335,9 @@ static const struct flash_info spi_nor_ids[] = {
 
 	{ "at45db081d", INFO(0x1f2500, 0, 64 * 1024, 16, SECT_4K) },
 
+	/* Cypress */
+	{ "cy15x104q",  INFO6(0x042cc2, 0x7f7f7f, 512, 1024, SPI_NOR_NO_ERASE) },
+
 	/* EON -- en25xxx */
 	{ "en25f32",    INFO(0x1c3116, 0, 64 * 1024,   64, SECT_4K) },
 	{ "en25p32",    INFO(0x1c2016, 0, 64 * 1024,   64, 0) },
-- 
2.25.1


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v2] mtd: spi-nor: Add support for cy15x104q
  2020-03-05 12:02 [PATCH] mtd: spi-nor: Add support for cy15x104q Sascha Hauer
@ 2020-03-09  8:40 ` Sascha Hauer
  2020-04-14 12:09   ` Sascha Hauer
                     ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Sascha Hauer @ 2020-03-09  8:40 UTC (permalink / raw)
  To: linux-mtd
  Cc: Richard Weinberger, Sascha Hauer, Miquel Raynal,
	Vignesh Raghavendra, Tudor Ambarus

The Cypress cy15b104q and cy15v104q are 4Mbit serial SPI F-RAM devices.
Add support for them to the spi-nor driver.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---

Changes since v1:
- Instead of specifying 1024 sectors with a sector size of 512 specify
  512 * 1024 sectos with a sector size of 1. The device has no idea of
  sectors and is not erasable, so a sector size of 1 seems to better
  reflect reality.

 drivers/mtd/spi-nor/spi-nor.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
index 4fc632ec18fe..a5c1d684364c 100644
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -2335,6 +2335,9 @@ static const struct flash_info spi_nor_ids[] = {
 
 	{ "at45db081d", INFO(0x1f2500, 0, 64 * 1024, 16, SECT_4K) },
 
+	/* Cypress */
+	{ "cy15x104q",  INFO6(0x042cc2, 0x7f7f7f, 512 * 1024, 1, SPI_NOR_NO_ERASE) },
+
 	/* EON -- en25xxx */
 	{ "en25f32",    INFO(0x1c3116, 0, 64 * 1024,   64, SECT_4K) },
 	{ "en25p32",    INFO(0x1c2016, 0, 64 * 1024,   64, 0) },
-- 
2.25.1


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] mtd: spi-nor: Add support for cy15x104q
  2020-03-09  8:40 ` [PATCH v2] " Sascha Hauer
@ 2020-04-14 12:09   ` Sascha Hauer
  2020-04-14 16:41     ` Tudor.Ambarus
  2020-04-15 15:24   ` Tudor.Ambarus
  2020-04-15 17:28   ` Vignesh Raghavendra
  2 siblings, 1 reply; 13+ messages in thread
From: Sascha Hauer @ 2020-04-14 12:09 UTC (permalink / raw)
  To: linux-mtd
  Cc: Richard Weinberger, Miquel Raynal, Vignesh Raghavendra, Tudor Ambarus

Hi,

Any feedback to this one?

Sascha

On Mon, Mar 09, 2020 at 09:40:33AM +0100, Sascha Hauer wrote:
> The Cypress cy15b104q and cy15v104q are 4Mbit serial SPI F-RAM devices.
> Add support for them to the spi-nor driver.
> 
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
> 
> Changes since v1:
> - Instead of specifying 1024 sectors with a sector size of 512 specify
>   512 * 1024 sectos with a sector size of 1. The device has no idea of
>   sectors and is not erasable, so a sector size of 1 seems to better
>   reflect reality.
> 
>  drivers/mtd/spi-nor/spi-nor.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> index 4fc632ec18fe..a5c1d684364c 100644
> --- a/drivers/mtd/spi-nor/spi-nor.c
> +++ b/drivers/mtd/spi-nor/spi-nor.c
> @@ -2335,6 +2335,9 @@ static const struct flash_info spi_nor_ids[] = {
>  
>  	{ "at45db081d", INFO(0x1f2500, 0, 64 * 1024, 16, SECT_4K) },
>  
> +	/* Cypress */
> +	{ "cy15x104q",  INFO6(0x042cc2, 0x7f7f7f, 512 * 1024, 1, SPI_NOR_NO_ERASE) },
> +
>  	/* EON -- en25xxx */
>  	{ "en25f32",    INFO(0x1c3116, 0, 64 * 1024,   64, SECT_4K) },
>  	{ "en25p32",    INFO(0x1c2016, 0, 64 * 1024,   64, 0) },
> -- 
> 2.25.1
> 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] mtd: spi-nor: Add support for cy15x104q
  2020-04-14 12:09   ` Sascha Hauer
@ 2020-04-14 16:41     ` Tudor.Ambarus
  2020-04-15  5:35       ` Sascha Hauer
  0 siblings, 1 reply; 13+ messages in thread
From: Tudor.Ambarus @ 2020-04-14 16:41 UTC (permalink / raw)
  To: s.hauer; +Cc: richard, linux-mtd, vigneshr, miquel.raynal

On Tuesday, April 14, 2020 3:09:45 PM EEST Sascha Hauer wrote:
> Any feedback to this one?

Hi, Sascha,

I'm a bit busy but I'll try to allocate time to review patches sometime this 
week. BTW, we moved the manufacturer specific code out of the core, we now 
have a dedicated file for each manufacturer (this includes flash_info 
entries), check the spi-nor/next branch. I know that it's not your fault that 
your patch was left behind, so I volunteer to respin your patch if you don't 
feel like doing it.

Cheers,
ta


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] mtd: spi-nor: Add support for cy15x104q
  2020-04-14 16:41     ` Tudor.Ambarus
@ 2020-04-15  5:35       ` Sascha Hauer
  2020-04-15  8:22         ` Yicong Yang
  2020-04-15 15:08         ` Tudor.Ambarus
  0 siblings, 2 replies; 13+ messages in thread
From: Sascha Hauer @ 2020-04-15  5:35 UTC (permalink / raw)
  To: Tudor.Ambarus; +Cc: richard, linux-mtd, vigneshr, miquel.raynal

Hi Tudor,

On Tue, Apr 14, 2020 at 04:41:42PM +0000, Tudor.Ambarus@microchip.com wrote:
> On Tuesday, April 14, 2020 3:09:45 PM EEST Sascha Hauer wrote:
> > Any feedback to this one?
> 
> Hi, Sascha,
> 
> I'm a bit busy but I'll try to allocate time to review patches sometime this 
> week. BTW, we moved the manufacturer specific code out of the core, we now 
> have a dedicated file for each manufacturer (this includes flash_info 
> entries), check the spi-nor/next branch.

I see. It's in master now btw.

> I know that it's not your fault that
> your patch was left behind, so I volunteer to respin your patch if you don't
> feel like doing it.

Don't worry, I can respin it. You want to have a cypress.c file, even
though it has only a single entry, right?

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] mtd: spi-nor: Add support for cy15x104q
  2020-04-15  5:35       ` Sascha Hauer
@ 2020-04-15  8:22         ` Yicong Yang
  2020-04-15 15:08         ` Tudor.Ambarus
  1 sibling, 0 replies; 13+ messages in thread
From: Yicong Yang @ 2020-04-15  8:22 UTC (permalink / raw)
  To: Sascha Hauer, Tudor.Ambarus; +Cc: richard, linux-mtd, vigneshr, miquel.raynal

On 2020/4/15 13:35, Sascha Hauer wrote:
> Hi Tudor,
>
> On Tue, Apr 14, 2020 at 04:41:42PM +0000, Tudor.Ambarus@microchip.com wrote:
>> On Tuesday, April 14, 2020 3:09:45 PM EEST Sascha Hauer wrote:
>>> Any feedback to this one?
>> Hi, Sascha,
>>
>> I'm a bit busy but I'll try to allocate time to review patches sometime this 
>> week. BTW, we moved the manufacturer specific code out of the core, we now 
>> have a dedicated file for each manufacturer (this includes flash_info 
>> entries), check the spi-nor/next branch.
> I see. It's in master now btw.
>
>> I know that it's not your fault that
>> your patch was left behind, so I volunteer to respin your patch if you don't
>> feel like doing it.
> Don't worry, I can respin it. You want to have a cypress.c file, even
> though it has only a single entry, right?

Hi Sascha,

Maybe it's okay to put in spansion.c, as Spansion/Cypress may use same
manufacturer id on some flash. Otherwise, we should spilt the Cypress ones from
list in spansion.c to new cypress.c.

Regards,
Yicong


>
> Sascha
>


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] mtd: spi-nor: Add support for cy15x104q
  2020-04-15  5:35       ` Sascha Hauer
  2020-04-15  8:22         ` Yicong Yang
@ 2020-04-15 15:08         ` Tudor.Ambarus
  1 sibling, 0 replies; 13+ messages in thread
From: Tudor.Ambarus @ 2020-04-15 15:08 UTC (permalink / raw)
  To: s.hauer; +Cc: richard, linux-mtd, vigneshr, miquel.raynal

On Wednesday, April 15, 2020 8:35:27 AM EEST Sascha Hauer wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the
> content is safe
> 
> Hi Tudor,

Hi, Sascha,

> 
> On Tue, Apr 14, 2020 at 04:41:42PM +0000, Tudor.Ambarus@microchip.com wrote:
> > On Tuesday, April 14, 2020 3:09:45 PM EEST Sascha Hauer wrote:
> > > Any feedback to this one?
> > 
> > Hi, Sascha,
> > 
> > I'm a bit busy but I'll try to allocate time to review patches sometime
> > this week. BTW, we moved the manufacturer specific code out of the core,
> > we now have a dedicated file for each manufacturer (this includes
> > flash_info entries), check the spi-nor/next branch.
> 
> I see. It's in master now btw.
> 
> > I know that it's not your fault that
> > your patch was left behind, so I volunteer to respin your patch if you
> > don't feel like doing it.
> 
> Don't worry, I can respin it. You want to have a cypress.c file, even
> though it has only a single entry, right?
> 

I think you can add this as the last entry in the spansion_parts[] array from 
spansion.c. Cypress and Spansion merged back in 2015, they are a single entity 
now. The fixup hook is not affecting this flash, we should be fine. For the 
moment I don't see a need for a spi_nor_cypress struct.

Cheers,
ta


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] mtd: spi-nor: Add support for cy15x104q
  2020-03-09  8:40 ` [PATCH v2] " Sascha Hauer
  2020-04-14 12:09   ` Sascha Hauer
@ 2020-04-15 15:24   ` Tudor.Ambarus
  2020-04-23 12:30     ` Sascha Hauer
  2020-04-15 17:28   ` Vignesh Raghavendra
  2 siblings, 1 reply; 13+ messages in thread
From: Tudor.Ambarus @ 2020-04-15 15:24 UTC (permalink / raw)
  To: s.hauer; +Cc: richard, linux-mtd, vigneshr, miquel.raynal

On Monday, March 9, 2020 10:40:33 AM EEST Sascha Hauer wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the
> content is safe
> 
> The Cypress cy15b104q and cy15v104q are 4Mbit serial SPI F-RAM devices.
> Add support for them to the spi-nor driver.
> 
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
> 
> Changes since v1:
> - Instead of specifying 1024 sectors with a sector size of 512 specify
>   512 * 1024 sectos with a sector size of 1. The device has no idea of
>   sectors and is not erasable, so a sector size of 1 seems to better
>   reflect reality.
> 
>  drivers/mtd/spi-nor/spi-nor.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> index 4fc632ec18fe..a5c1d684364c 100644
> --- a/drivers/mtd/spi-nor/spi-nor.c
> +++ b/drivers/mtd/spi-nor/spi-nor.c
> @@ -2335,6 +2335,9 @@ static const struct flash_info spi_nor_ids[] = {
> 
>         { "at45db081d", INFO(0x1f2500, 0, 64 * 1024, 16, SECT_4K) },
> 
> +       /* Cypress */
> +       { "cy15x104q",  INFO6(0x042cc2, 0x7f7f7f, 512 * 1024, 1,
> SPI_NOR_NO_ERASE) }, +

Shouldn't the id start with 0x03 instead of 0x04? Check [1]. Otherwise looks 
good. Also, would you please specify in the commit message on which platform 
did you test the flash, or with which controller? We usually don't add new 
flash_info entries solely by datasheet info, we've seen some nasty bugs and we 
try to avoid adding flashes that are broken since day one.

Cheers,
ta

[1] https://www.google.com/url?
sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=2ahUKEwikvb6A2-
roAhUKjqQKHQRzAhEQFjAAegQIAhAB&url=https%3A%2F%2Fmedia.digikey.com%2Fpdf%2FData%2520Sheets%2FCypress%2520PDFs%2FCY15B104Q_CY15V104Q_RevB_2-3-20.pdf&usg=AOvVaw0BmuUvI2j3NR07ZN_Jd4bN 



______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] mtd: spi-nor: Add support for cy15x104q
  2020-03-09  8:40 ` [PATCH v2] " Sascha Hauer
  2020-04-14 12:09   ` Sascha Hauer
  2020-04-15 15:24   ` Tudor.Ambarus
@ 2020-04-15 17:28   ` Vignesh Raghavendra
  2020-04-16  4:44     ` Tudor.Ambarus
                       ` (2 more replies)
  2 siblings, 3 replies; 13+ messages in thread
From: Vignesh Raghavendra @ 2020-04-15 17:28 UTC (permalink / raw)
  To: Sascha Hauer, linux-mtd; +Cc: Richard Weinberger, Miquel Raynal, Tudor Ambarus



On 09/03/20 2:10 pm, Sascha Hauer wrote:
> The Cypress cy15b104q and cy15v104q are 4Mbit serial SPI F-RAM devices.
> Add support for them to the spi-nor driver.
> 
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
> 
> Changes since v1:
> - Instead of specifying 1024 sectors with a sector size of 512 specify
>   512 * 1024 sectos with a sector size of 1. The device has no idea of
>   sectors and is not erasable, so a sector size of 1 seems to better
>   reflect reality.
> 
>  drivers/mtd/spi-nor/spi-nor.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> index 4fc632ec18fe..a5c1d684364c 100644
> --- a/drivers/mtd/spi-nor/spi-nor.c
> +++ b/drivers/mtd/spi-nor/spi-nor.c
> @@ -2335,6 +2335,9 @@ static const struct flash_info spi_nor_ids[] = {
>  
>  	{ "at45db081d", INFO(0x1f2500, 0, 64 * 1024, 16, SECT_4K) },
>  
> +	/* Cypress */
> +	{ "cy15x104q",  INFO6(0x042cc2, 0x7f7f7f, 512 * 1024, 1, SPI_NOR_NO_ERASE) },

This seems wrong

As the datasheet for the device says:

"Device ID
The CY15B104Q device can be interrogated for its manufacturer, product
identification, and die revision. The RDID opcode 9Fh allows
the user to read the manufacturer ID and product ID, both of which are
read-only bytes. The JEDEC-assigned manufacturer ID places
the Cypress (Ramtron) identifier in bank 7; therefore, there are six
bytes of the continuation code 7Fh followed by the single byte C2h.
There are two bytes of product ID, which includes a family code, a
density code, a sub code, and the product revision code."

I am not sure how are you reading 0x4 as the first byte. It should have
been 6 bytes of 0x7F followed by 0xc2 right?

Also 0x7F is continuation code and not actual device ID (See JEDEC
standard JEP106). You will have to extend spi_nor_read_id() function to
take care of continuation code and read more bytes in order to get the
actual Manuf/device ID

> +
>  	/* EON -- en25xxx */
>  	{ "en25f32",    INFO(0x1c3116, 0, 64 * 1024,   64, SECT_4K) },
>  	{ "en25p32",    INFO(0x1c2016, 0, 64 * 1024,   64, 0) },
> 

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] mtd: spi-nor: Add support for cy15x104q
  2020-04-15 17:28   ` Vignesh Raghavendra
@ 2020-04-16  4:44     ` Tudor.Ambarus
  2020-04-16  6:39     ` Sascha Hauer
  2020-04-20  8:56     ` Sascha Hauer
  2 siblings, 0 replies; 13+ messages in thread
From: Tudor.Ambarus @ 2020-04-16  4:44 UTC (permalink / raw)
  To: vigneshr; +Cc: richard, s.hauer, linux-mtd, miquel.raynal

On Wednesday, April 15, 2020 8:28:36 PM EEST Vignesh Raghavendra wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the
> content is safe
> On 09/03/20 2:10 pm, Sascha Hauer wrote:
> > The Cypress cy15b104q and cy15v104q are 4Mbit serial SPI F-RAM devices.
> > Add support for them to the spi-nor driver.
> > 
> > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> > ---
> > 
> > Changes since v1:
> > - Instead of specifying 1024 sectors with a sector size of 512 specify
> > 
> >   512 * 1024 sectos with a sector size of 1. The device has no idea of
> >   sectors and is not erasable, so a sector size of 1 seems to better
> >   reflect reality.
> >  
> >  drivers/mtd/spi-nor/spi-nor.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> > index 4fc632ec18fe..a5c1d684364c 100644
> > --- a/drivers/mtd/spi-nor/spi-nor.c
> > +++ b/drivers/mtd/spi-nor/spi-nor.c
> > @@ -2335,6 +2335,9 @@ static const struct flash_info spi_nor_ids[] = {
> > 
> >       { "at45db081d", INFO(0x1f2500, 0, 64 * 1024, 16, SECT_4K) },
> > 
> > +     /* Cypress */
> > +     { "cy15x104q",  INFO6(0x042cc2, 0x7f7f7f, 512 * 1024, 1,
> > SPI_NOR_NO_ERASE) },
> This seems wrong
> 
> As the datasheet for the device says:
> 
> "Device ID
> The CY15B104Q device can be interrogated for its manufacturer, product
> identification, and die revision. The RDID opcode 9Fh allows
> the user to read the manufacturer ID and product ID, both of which are
> read-only bytes. The JEDEC-assigned manufacturer ID places
> the Cypress (Ramtron) identifier in bank 7; therefore, there are six
> bytes of the continuation code 7Fh followed by the single byte C2h.
> There are two bytes of product ID, which includes a family code, a
> density code, a sub code, and the product revision code."
> 
> I am not sure how are you reading 0x4 as the first byte. It should have
> been 6 bytes of 0x7F followed by 0xc2 right?

You're right, I skimmed too quickly through the id.

> 
> Also 0x7F is continuation code and not actual device ID (See JEDEC
> standard JEP106). You will have to extend spi_nor_read_id() function to
> take care of continuation code and read more bytes in order to get the
> actual Manuf/device ID

Right, thanks for the intervention, Vignesh!

Cheers,
ta



______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] mtd: spi-nor: Add support for cy15x104q
  2020-04-15 17:28   ` Vignesh Raghavendra
  2020-04-16  4:44     ` Tudor.Ambarus
@ 2020-04-16  6:39     ` Sascha Hauer
  2020-04-20  8:56     ` Sascha Hauer
  2 siblings, 0 replies; 13+ messages in thread
From: Sascha Hauer @ 2020-04-16  6:39 UTC (permalink / raw)
  To: Vignesh Raghavendra
  Cc: Richard Weinberger, Miquel Raynal, linux-mtd, Tudor Ambarus

Hi,

On Wed, Apr 15, 2020 at 10:58:36PM +0530, Vignesh Raghavendra wrote:
> 
> 
> On 09/03/20 2:10 pm, Sascha Hauer wrote:
> > The Cypress cy15b104q and cy15v104q are 4Mbit serial SPI F-RAM devices.
> > Add support for them to the spi-nor driver.
> > 
> > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> > ---
> > 
> > Changes since v1:
> > - Instead of specifying 1024 sectors with a sector size of 512 specify
> >   512 * 1024 sectos with a sector size of 1. The device has no idea of
> >   sectors and is not erasable, so a sector size of 1 seems to better
> >   reflect reality.
> > 
> >  drivers/mtd/spi-nor/spi-nor.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> > index 4fc632ec18fe..a5c1d684364c 100644
> > --- a/drivers/mtd/spi-nor/spi-nor.c
> > +++ b/drivers/mtd/spi-nor/spi-nor.c
> > @@ -2335,6 +2335,9 @@ static const struct flash_info spi_nor_ids[] = {
> >  
> >  	{ "at45db081d", INFO(0x1f2500, 0, 64 * 1024, 16, SECT_4K) },
> >  
> > +	/* Cypress */
> > +	{ "cy15x104q",  INFO6(0x042cc2, 0x7f7f7f, 512 * 1024, 1, SPI_NOR_NO_ERASE) },
> 
> This seems wrong
> 
> As the datasheet for the device says:
> 
> "Device ID
> The CY15B104Q device can be interrogated for its manufacturer, product
> identification, and die revision. The RDID opcode 9Fh allows
> the user to read the manufacturer ID and product ID, both of which are
> read-only bytes. The JEDEC-assigned manufacturer ID places
> the Cypress (Ramtron) identifier in bank 7; therefore, there are six
> bytes of the continuation code 7Fh followed by the single byte C2h.
> There are two bytes of product ID, which includes a family code, a
> density code, a sub code, and the product revision code."
> 
> I am not sure how are you reading 0x4 as the first byte. It should have
> been 6 bytes of 0x7F followed by 0xc2 right?
> 
> Also 0x7F is continuation code and not actual device ID (See JEDEC
> standard JEP106). You will have to extend spi_nor_read_id() function to
> take care of continuation code and read more bytes in order to get the
> actual Manuf/device ID

The three times 0x7f looked fishy from the start. I'll dig a bit deeper
what is happening here. Thanks for the input.

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] mtd: spi-nor: Add support for cy15x104q
  2020-04-15 17:28   ` Vignesh Raghavendra
  2020-04-16  4:44     ` Tudor.Ambarus
  2020-04-16  6:39     ` Sascha Hauer
@ 2020-04-20  8:56     ` Sascha Hauer
  2 siblings, 0 replies; 13+ messages in thread
From: Sascha Hauer @ 2020-04-20  8:56 UTC (permalink / raw)
  To: Vignesh Raghavendra
  Cc: Richard Weinberger, Miquel Raynal, linux-mtd, Tudor Ambarus

On Wed, Apr 15, 2020 at 10:58:36PM +0530, Vignesh Raghavendra wrote:
> 
> 
> On 09/03/20 2:10 pm, Sascha Hauer wrote:
> > The Cypress cy15b104q and cy15v104q are 4Mbit serial SPI F-RAM devices.
> > Add support for them to the spi-nor driver.
> > 
> > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> > ---
> > 
> > Changes since v1:
> > - Instead of specifying 1024 sectors with a sector size of 512 specify
> >   512 * 1024 sectos with a sector size of 1. The device has no idea of
> >   sectors and is not erasable, so a sector size of 1 seems to better
> >   reflect reality.
> > 
> >  drivers/mtd/spi-nor/spi-nor.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> > index 4fc632ec18fe..a5c1d684364c 100644
> > --- a/drivers/mtd/spi-nor/spi-nor.c
> > +++ b/drivers/mtd/spi-nor/spi-nor.c
> > @@ -2335,6 +2335,9 @@ static const struct flash_info spi_nor_ids[] = {
> >  
> >  	{ "at45db081d", INFO(0x1f2500, 0, 64 * 1024, 16, SECT_4K) },
> >  
> > +	/* Cypress */
> > +	{ "cy15x104q",  INFO6(0x042cc2, 0x7f7f7f, 512 * 1024, 1, SPI_NOR_NO_ERASE) },
> 
> This seems wrong
> 
> As the datasheet for the device says:
> 
> "Device ID
> The CY15B104Q device can be interrogated for its manufacturer, product
> identification, and die revision. The RDID opcode 9Fh allows
> the user to read the manufacturer ID and product ID, both of which are
> read-only bytes. The JEDEC-assigned manufacturer ID places
> the Cypress (Ramtron) identifier in bank 7; therefore, there are six
> bytes of the continuation code 7Fh followed by the single byte C2h.
> There are two bytes of product ID, which includes a family code, a
> density code, a sub code, and the product revision code."
> 
> I am not sure how are you reading 0x4 as the first byte. It should have
> been 6 bytes of 0x7F followed by 0xc2 right?
> 
> Also 0x7F is continuation code and not actual device ID (See JEDEC
> standard JEP106). You will have to extend spi_nor_read_id() function to
> take care of continuation code and read more bytes in order to get the
> actual Manuf/device ID

I digged a bit deeper.

According to the datasheet the data sent as response to the read id
command is:

7f 7f 7f 7f 7f 7f c2 2c 04

What I read from the device instead is:

04 2c c2 7f 7f 7f 7f 7f 7f

You see the order of the values is reversed. And in fact this matches
the datasheet. Read on in the paragraph you cited from:

| Note: The least significant data byte (Byte 0) shifts out first and
| the most significant data byte (Byte 8) shifts out last.

This sounds very buggy to me. The number of continuation codes (0x7f)
says which bank in jep106 I have to look at. I increased
SPI_NOR_MAX_ID_LEN to see what the device sends after the ID above and
the device happily sends more 0x7f continuation codes. How should I
count the number of continuation codes when the device sends any desired
number of them at the end of the message?

I don't know what's going on here, to me it looks like they accidently
mixed the order of the bytes and instead of fixing it a note was added
in the datasheet. I hope it's different and you tell me what's wrong in
my understanding ;)

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v2] mtd: spi-nor: Add support for cy15x104q
  2020-04-15 15:24   ` Tudor.Ambarus
@ 2020-04-23 12:30     ` Sascha Hauer
  0 siblings, 0 replies; 13+ messages in thread
From: Sascha Hauer @ 2020-04-23 12:30 UTC (permalink / raw)
  To: Tudor.Ambarus; +Cc: richard, linux-mtd, vigneshr, miquel.raynal

On Wed, Apr 15, 2020 at 03:24:33PM +0000, Tudor.Ambarus@microchip.com wrote:
> On Monday, March 9, 2020 10:40:33 AM EEST Sascha Hauer wrote:
> > EXTERNAL EMAIL: Do not click links or open attachments unless you know the
> > content is safe
> > 
> > The Cypress cy15b104q and cy15v104q are 4Mbit serial SPI F-RAM devices.
> > Add support for them to the spi-nor driver.
> > 
> > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> > ---
> > 
> > Changes since v1:
> > - Instead of specifying 1024 sectors with a sector size of 512 specify
> >   512 * 1024 sectos with a sector size of 1. The device has no idea of
> >   sectors and is not erasable, so a sector size of 1 seems to better
> >   reflect reality.
> > 
> >  drivers/mtd/spi-nor/spi-nor.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> > index 4fc632ec18fe..a5c1d684364c 100644
> > --- a/drivers/mtd/spi-nor/spi-nor.c
> > +++ b/drivers/mtd/spi-nor/spi-nor.c
> > @@ -2335,6 +2335,9 @@ static const struct flash_info spi_nor_ids[] = {
> > 
> >         { "at45db081d", INFO(0x1f2500, 0, 64 * 1024, 16, SECT_4K) },
> > 
> > +       /* Cypress */
> > +       { "cy15x104q",  INFO6(0x042cc2, 0x7f7f7f, 512 * 1024, 1,
> > SPI_NOR_NO_ERASE) }, +
> 
> Shouldn't the id start with 0x03 instead of 0x04? Check [1].

The datasheet you are referencing describes only one of a whole family
of chips. They all seem software compatible, here is a list of ids I
found in various datasheets:

CY15B104Q-PZXI     7F7F7F7F7F7FC22C03 51-85075 8-pin PDIP Industrial
CY15B104QN-50SXA   7F7F7F7F7F7FC22C40 001-85261 8-pin SOIC (EIAJ) Automotive
CY15V104QN-50SXI   7F7F7F7F7F7FC22C04 002-18131 8-pin GQFN Industrial
CY15B104QN-20LPXC  7F7F7F7F7F7FC22CA1 002-18131 8-pin GQFN Commercial
CY15B104QN-20LPXI  7F7F7F7F7F7FC22C01 002-18131 8-pin GQFN Industrial
CY15V104QN-20LPXC  7F7F7F7F7F7FC22CA5 002-18131 8-pin GQFN Commercial
CY15V104QN-20LPXI  7F7F7F7F7F7FC22C05 002-18131 8-pin GQFN Industrial
CY15B104QN-50LPXI  7F7F7F7F7F7FC22C00 002-18131 8-pin GQFN Industrial

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2020-04-23 12:30 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-05 12:02 [PATCH] mtd: spi-nor: Add support for cy15x104q Sascha Hauer
2020-03-09  8:40 ` [PATCH v2] " Sascha Hauer
2020-04-14 12:09   ` Sascha Hauer
2020-04-14 16:41     ` Tudor.Ambarus
2020-04-15  5:35       ` Sascha Hauer
2020-04-15  8:22         ` Yicong Yang
2020-04-15 15:08         ` Tudor.Ambarus
2020-04-15 15:24   ` Tudor.Ambarus
2020-04-23 12:30     ` Sascha Hauer
2020-04-15 17:28   ` Vignesh Raghavendra
2020-04-16  4:44     ` Tudor.Ambarus
2020-04-16  6:39     ` Sascha Hauer
2020-04-20  8:56     ` Sascha Hauer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.