[PATCH] mtd: spi-nor: Add support for XMC XM25QH256C / XM25QU256C / XM25QH512C / XM25QU512C site: https://www.xmcwh.com/site/product#

Luke He posted 1 patch 2 years, 11 months ago
drivers/mtd/spi-nor/xmc.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
[PATCH] mtd: spi-nor: Add support for XMC XM25QH256C / XM25QU256C / XM25QH512C / XM25QU512C site: https://www.xmcwh.com/site/product#
Posted by Luke He 2 years, 11 months ago
Signed-off-by: Luke He <sixuerain@gmail.com>
---
 drivers/mtd/spi-nor/xmc.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/mtd/spi-nor/xmc.c b/drivers/mtd/spi-nor/xmc.c
index 051411e86339..6db01b80237f 100644
--- a/drivers/mtd/spi-nor/xmc.c
+++ b/drivers/mtd/spi-nor/xmc.c
@@ -16,6 +16,18 @@ static const struct flash_info xmc_nor_parts[] = {
 	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256)
 		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
 			      SPI_NOR_QUAD_READ) },
+	{ "XM25QH256C", INFO(0x204019, 0, 64 * 1024, 512)
+		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
+			      SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
+	{ "XM25QU256C", INFO(0x204119, 0, 64 * 1024, 512)
+		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
+			     SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
+	{ "XM25QH512C", INFO(0x204020, 0, 64 * 1024, 1024)
+		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
+			     SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
+	{ "XM25QU512C", INFO(0x204120, 0, 64 * 1024, 1024)
+		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
+			     SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }
 };
 
 const struct spi_nor_manufacturer spi_nor_xmc = {
-- 
2.17.1
Re: [PATCH] mtd: spi-nor: Add support for XMC XM25QH256C / XM25QU256C / XM25QH512C / XM25QU512C site: https://www.xmcwh.com/site/product#
Posted by Michael Walle 2 years, 11 months ago
Hi,

please have a look at Documentation/process/submitting-patches.rst
how to properly format patches. But also see below.

Am 2023-03-13 11:01, schrieb Luke He:
> Signed-off-by: Luke He <sixuerain@gmail.com>
> ---
>  drivers/mtd/spi-nor/xmc.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/drivers/mtd/spi-nor/xmc.c b/drivers/mtd/spi-nor/xmc.c
> index 051411e86339..6db01b80237f 100644
> --- a/drivers/mtd/spi-nor/xmc.c
> +++ b/drivers/mtd/spi-nor/xmc.c
> @@ -16,6 +16,18 @@ static const struct flash_info xmc_nor_parts[] = {
>  	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256)
>  		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
>  			      SPI_NOR_QUAD_READ) },
> +	{ "XM25QH256C", INFO(0x204019, 0, 64 * 1024, 512)
> +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
> +			      SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
> +	{ "XM25QU256C", INFO(0x204119, 0, 64 * 1024, 512)
> +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
> +			     SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
> +	{ "XM25QH512C", INFO(0x204020, 0, 64 * 1024, 1024)
> +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
> +			     SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
> +	{ "XM25QU512C", INFO(0x204120, 0, 64 * 1024, 1024)
> +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
> +			     SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }

I've just looked at XM25QH256C [1], but I suspect all of these
flashes supports SFDP, therefore you shouldn't use the NO_SFDP_FLAGS.
Then, without any additional flags, there is no need for an entry
at all, because it should be coverered by the "generic spi-nor"
driver [2].

-michael

[1] https://www.xmcwh.com/uploads/198/XM25QH256C_Ver1.8.pdf
[2] 
https://elixir.bootlin.com/linux/v6.3-rc2/source/drivers/mtd/spi-nor/core.c#L1637
Re: [PATCH] mtd: spi-nor: Add support for XMC XM25QH256C / XM25QU256C / XM25QH512C / XM25QU512C site: https://www.xmcwh.com/site/product#
Posted by Miquel Raynal 2 years, 11 months ago
Hi Michael,

michael@walle.cc wrote on Mon, 13 Mar 2023 11:08:15 +0100:

> Hi,
> 
> please have a look at Documentation/process/submitting-patches.rst
> how to properly format patches. But also see below.
> 
> Am 2023-03-13 11:01, schrieb Luke He:
> > Signed-off-by: Luke He <sixuerain@gmail.com>
> > ---
> >  drivers/mtd/spi-nor/xmc.c | 12 ++++++++++++
> >  1 file changed, 12 insertions(+)
> > 
> > diff --git a/drivers/mtd/spi-nor/xmc.c b/drivers/mtd/spi-nor/xmc.c
> > index 051411e86339..6db01b80237f 100644
> > --- a/drivers/mtd/spi-nor/xmc.c
> > +++ b/drivers/mtd/spi-nor/xmc.c
> > @@ -16,6 +16,18 @@ static const struct flash_info xmc_nor_parts[] = {
> >  	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256)
> >  		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
> >  			      SPI_NOR_QUAD_READ) },
> > +	{ "XM25QH256C", INFO(0x204019, 0, 64 * 1024, 512)
> > +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
> > +			      SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
> > +	{ "XM25QU256C", INFO(0x204119, 0, 64 * 1024, 512)
> > +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
> > +			     SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
> > +	{ "XM25QH512C", INFO(0x204020, 0, 64 * 1024, 1024)
> > +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
> > +			     SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
> > +	{ "XM25QU512C", INFO(0x204120, 0, 64 * 1024, 1024)
> > +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
> > +			     SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }  
> 
> I've just looked at XM25QH256C [1], but I suspect all of these
> flashes supports SFDP, therefore you shouldn't use the NO_SFDP_FLAGS.

I didn't check, do we have a kdoc or something like that which explains
what flags to use and when?

> Then, without any additional flags, there is no need for an entry
> at all, because it should be coverered by the "generic spi-nor"
> driver [2].
> 
> -michael
> 
> [1] https://www.xmcwh.com/uploads/198/XM25QH256C_Ver1.8.pdf
> [2] https://elixir.bootlin.com/linux/v6.3-rc2/source/drivers/mtd/spi-nor/core.c#L1637


Thanks,
Miquèl
Re: [PATCH] mtd: spi-nor: Add support for XMC XM25QH256C / XM25QU256C / XM25QH512C / XM25QU512C site: https://www.xmcwh.com/site/product#
Posted by Michael Walle 2 years, 11 months ago
Am 2023-03-13 11:33, schrieb Miquel Raynal:
> Hi Michael,
> 
> michael@walle.cc wrote on Mon, 13 Mar 2023 11:08:15 +0100:
> 
>> Hi,
>> 
>> please have a look at Documentation/process/submitting-patches.rst
>> how to properly format patches. But also see below.
>> 
>> Am 2023-03-13 11:01, schrieb Luke He:
>> > Signed-off-by: Luke He <sixuerain@gmail.com>
>> > ---
>> >  drivers/mtd/spi-nor/xmc.c | 12 ++++++++++++
>> >  1 file changed, 12 insertions(+)
>> >
>> > diff --git a/drivers/mtd/spi-nor/xmc.c b/drivers/mtd/spi-nor/xmc.c
>> > index 051411e86339..6db01b80237f 100644
>> > --- a/drivers/mtd/spi-nor/xmc.c
>> > +++ b/drivers/mtd/spi-nor/xmc.c
>> > @@ -16,6 +16,18 @@ static const struct flash_info xmc_nor_parts[] = {
>> >  	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256)
>> >  		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
>> >  			      SPI_NOR_QUAD_READ) },
>> > +	{ "XM25QH256C", INFO(0x204019, 0, 64 * 1024, 512)
>> > +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
>> > +			      SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
>> > +	{ "XM25QU256C", INFO(0x204119, 0, 64 * 1024, 512)
>> > +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
>> > +			     SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
>> > +	{ "XM25QH512C", INFO(0x204020, 0, 64 * 1024, 1024)
>> > +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
>> > +			     SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
>> > +	{ "XM25QU512C", INFO(0x204120, 0, 64 * 1024, 1024)
>> > +		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
>> > +			     SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }
>> 
>> I've just looked at XM25QH256C [1], but I suspect all of these
>> flashes supports SFDP, therefore you shouldn't use the NO_SFDP_FLAGS.
> 
> I didn't check, do we have a kdoc or something like that which explains
> what flags to use and when?

https://elixir.bootlin.com/linux/v6.3-rc2/source/drivers/mtd/spi-nor/core.h#L429

What's missing is still some overview document when and how to add a new
entry to our database. /me looks in Tudors direction :)

-michael
Re: [PATCH] mtd: spi-nor: Add support for XMC XM25QH256C / XM25QU256C / XM25QH512C / XM25QU512C site: https://www.xmcwh.com/site/product#
Posted by Tudor Ambarus 2 years, 11 months ago

On 3/13/23 10:39, Michael Walle wrote:
> Am 2023-03-13 11:33, schrieb Miquel Raynal:
>> Hi Michael,
>>
>> michael@walle.cc wrote on Mon, 13 Mar 2023 11:08:15 +0100:
>>
>>> Hi,
>>>
>>> please have a look at Documentation/process/submitting-patches.rst
>>> how to properly format patches. But also see below.
>>>
>>> Am 2023-03-13 11:01, schrieb Luke He:
>>> > Signed-off-by: Luke He <sixuerain@gmail.com>
>>> > ---
>>> >  drivers/mtd/spi-nor/xmc.c | 12 ++++++++++++
>>> >  1 file changed, 12 insertions(+)
>>> >
>>> > diff --git a/drivers/mtd/spi-nor/xmc.c b/drivers/mtd/spi-nor/xmc.c
>>> > index 051411e86339..6db01b80237f 100644
>>> > --- a/drivers/mtd/spi-nor/xmc.c
>>> > +++ b/drivers/mtd/spi-nor/xmc.c
>>> > @@ -16,6 +16,18 @@ static const struct flash_info xmc_nor_parts[] = {
>>> >      { "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256)
>>> >          NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
>>> >                    SPI_NOR_QUAD_READ) },
>>> > +    { "XM25QH256C", INFO(0x204019, 0, 64 * 1024, 512)
>>> > +        NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
>>> > +                  SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
>>> > +    { "XM25QU256C", INFO(0x204119, 0, 64 * 1024, 512)
>>> > +        NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
>>> > +                 SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
>>> > +    { "XM25QH512C", INFO(0x204020, 0, 64 * 1024, 1024)
>>> > +        NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
>>> > +                 SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
>>> > +    { "XM25QU512C", INFO(0x204120, 0, 64 * 1024, 1024)
>>> > +        NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
>>> > +                 SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }
>>>
>>> I've just looked at XM25QH256C [1], but I suspect all of these
>>> flashes supports SFDP, therefore you shouldn't use the NO_SFDP_FLAGS.
>>
>> I didn't check, do we have a kdoc or something like that which explains
>> what flags to use and when?
> 
> https://elixir.bootlin.com/linux/v6.3-rc2/source/drivers/mtd/spi-nor/core.h#L429
> 
> What's missing is still some overview document when and how to add a new
> entry to our database. /me looks in Tudors direction :)
> 

Right, the code comments should help. I've been planning to do the
documentation, even started it few months ago, but I'm still behind with
some patch reviews, including Miquel's, so the documentation has to
wait. I'm doing this in my spare time, so I'll stop giving estimates.

Cheers,
ta