Skip to contentSkip to conversation

Add support for more XMC series

PATCH In review SSunk 3 participants 10 messages Aug 17, 2023 – Aug 31, 2023

Subsystems (2)
lore
Share & tools
lore

SSunk

author
#0 lore raw

PATCH 1/1 Add support for more XMC series

Add XMC XM25QH128C/XM25QH256C/XM25QU256C/XM25QH512C/XM25QU512C and set the parse_sfdp flag.

---
 drivers/mtd/spi-nor/xmc.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
drivers/mtd/spi-nor/xmc.c +16 -0
index 051411e86339..b2374187ec4f 100644
@@ -16,6 +16,22 @@ 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) },
+	{ "XM25QH128C", INFO(0x204018, 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 = {
Signature · 6 lines
2.34.1


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

Hi,

Quoted 4 lines

Add XMC XM25QH128C/XM25QH256C/XM25QU256C/XM25QH512C/XM25QU512C and set the parse_sfdp flag.

NAK. You're just posting the same patch over and over again.

Please respond the the former questions and please read
https://www.kernel.org/doc/html/latest/process/submitting-patches.html

-michael

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

maintainer
#2 lore raw
In reply to SSunk

Hello,

[email protected] wrote on Thu, 17 Aug 2023 20:46:55 +0800:

Quoted 2 lines

Add XMC XM25QH128C/XM25QH256C/XM25QU256C/XM25QH512C/XM25QU512C and set the parse_sfdp flag.

Please look at the git history and correct the title.

Quoted 18 lines
---
 drivers/mtd/spi-nor/xmc.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
drivers/mtd/spi-nor/xmc.c +5 -0
index 051411e86339..b2374187ec4f 100644
@@ -16,6 +16,22 @@ 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) },
+	{ "XM25QH128C", INFO(0x204018, 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 |

drivers/mtd/spi-nor/xmc.c static const struct flash_info xmc_nor_parts[] = { · line 33

Quoted 10 lines
drivers/mtd/spi-nor/xmc.c +10 -0
+			      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) },

You say you enable SFDP in the commit log but the diff shows the opposite?

drivers/mtd/spi-nor/xmc.c static const struct flash_info xmc_nor_parts[] = { · line 37

Quoted 4 lines
drivers/mtd/spi-nor/xmc.c +1 -0
+
 };
 
 const struct spi_nor_manufacturer spi_nor_xmc = {

Thanks,
Miquèl

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

author
#3 lore raw

PATCH 1/1 Add support for more XMC series

Add XMC XM25QH128C/XM25QH256C/XM25QU256C/XM25QH512C/XM25QU512C and set the parse_sfdp flag.

---
Hi Michael,
Since this is the first time I've submitted code to the Linux community, please forgive me for some of the missteps that I've made. I uploaded the incorrect patch file.
In a previous e-mail you said:
XMC parts seem to have SFDP tables and they should work out of the box
without any patches with the generic spi nor driver [1]. Therefore,
you don't need any entry at all.

I think it is related to the PARSE_SFDP flag.
The XMC flash part supports SFDP, so i don’t need to add NO_SFDP_FLAGS() macro.

 drivers/mtd/spi-nor/xmc.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)
drivers/mtd/spi-nor/xmc.c +13 -4
index 051411e86339..e78bf11792d9 100644
@@ -11,11 +11,20 @@
 static const struct flash_info xmc_nor_parts[] = {
 	/* XMC (Wuhan Xinxin Semiconductor Manufacturing Corp.) */
 	{ "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128)
-		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-			      SPI_NOR_QUAD_READ) },
+		PARSE_SFDP },
 	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256)
-		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-			      SPI_NOR_QUAD_READ) },
+		PARSE_SFDP },
+	{ "XM25QH128C", INFO(0x204018, 0, 64 * 1024, 256)
+		PARSE_SFDP },
+	{ "XM25QH256C", INFO(0x204019, 0, 64 * 1024, 512)
+		PARSE_SFDP },
+	{ "XM25QU256C", INFO(0x204119, 0, 64 * 1024, 512)
+		PARSE_SFDP },
+	{ "XM25QH512C", INFO(0x204020, 0, 64 * 1024, 1024)
+		PARSE_SFDP },
+	{ "XM25QU512C", INFO(0x204120, 0, 64 * 1024, 1024)
+		PARSE_SFDP },
+
 };
 
 const struct spi_nor_manufacturer spi_nor_xmc = {
Signature · 1 line
2.34.1

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

#4 lore raw

Hi,

Quoted 7 lines
Quoted 3 lines

XMC parts seem to have SFDP tables and they should work out of the box without any patches with the generic spi nor driver [1]. Therefore, you don't need any entry at all.

I think it is related to the PARSE_SFDP flag. The XMC flash part supports SFDP, so i don’t needto add NO_SFDP_FLAGS() macro.

Correct. If the flash is working with PARSE_SFDP, it has SFDP and all the information of the flash_info table is pulled from the SFDP tables, except for the part name. Therefore, you don't need any entry at all. The flash should just work out of the box. Are you using the latest kernel?

-michael

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

author
#5 lore raw

Yes, I'm using the latest kernel.

Quoted 11 lines · 在 2023年8月18日,01:10,Michael Walle <[email protected]> 写道:

Hi,

Quoted 6 lines
Quoted 3 lines

XMC parts seem to have SFDP tables and they should work out of the box without any patches with the generic spi nor driver [1]. Therefore, you don't need any entry at all.

I think it is related to the PARSE_SFDP flag. The XMC flash part supports SFDP, so i don’t needto add NO_SFDP_FLAGS() macro.

Quoted 7 lines

Correct. If the flash is working with PARSE_SFDP, it has SFDP and all the information of the flash_info table is pulled from the SFDP tables, except for the part name. Therefore, you don't need any entry at all. The flash should just work out of the box. Are you using the latest kernel?

-michael

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

author
#6 lore raw
Quoted 48 lines

Hi Michael,
Since this is the first time I've submitted code to the Linux community, please forgive me for some of the missteps that I've made. I uploaded the incorrect patch file.
In a previous e-mail you said:
XMC parts seem to have SFDP tables and they should work out of the box
without any patches with the generic spi nor driver [1]. Therefore,
you don't need any entry at all.

I think it is related to the PARSE_SFDP flag.
The XMC flash part supports SFDP, so i don’t need to add NO_SFDP_FLAGS() macro. drivers/mtd/spi-nor/xmc.c | 17 +++++++++++++----

1 file changed, 13 insertions(+), 4 deletions(-)
drivers/mtd/spi-nor/xmc.c +13 -4
index 051411e86339..e78bf11792d9 100644
@@ -11,11 +11,20 @@
 static const struct flash_info xmc_nor_parts[] = {
 	/* XMC (Wuhan Xinxin Semiconductor Manufacturing Corp.) */
 	{ "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128)
-		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-			      SPI_NOR_QUAD_READ) },
+		PARSE_SFDP },
 	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256)
-		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-			      SPI_NOR_QUAD_READ) },
+		PARSE_SFDP },
+	{ "XM25QH128C", INFO(0x204018, 0, 64 * 1024, 256)
+		PARSE_SFDP },
+	{ "XM25QH256C", INFO(0x204019, 0, 64 * 1024, 512)
+		PARSE_SFDP },
+	{ "XM25QU256C", INFO(0x204119, 0, 64 * 1024, 512)
+		PARSE_SFDP },
+	{ "XM25QH512C", INFO(0x204020, 0, 64 * 1024, 1024)
+		PARSE_SFDP },
+	{ "XM25QU512C", INFO(0x204120, 0, 64 * 1024, 1024)
+		PARSE_SFDP },
+
 };
 
 const struct spi_nor_manufacturer spi_nor_xmc = {
Quoted 6 lines

Correct. If the flash is working with PARSE_SFDP, it has SFDP and all the information of the flash_info table is pulled from the SFDP tables, except for the part name. Therefore, you don't need any entry at all. The flash should just work out of the box. Are you using the latest kernel?

Quoted 1 line
Quoted 1 line

-michael

--
Hi Michael,

According to you, does this piece of my code still need to be modified?

Thanks,
Ssunk

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

#7 lore raw

Am 2023-08-29 06:56, schrieb SSunk:

Quoted 48 lines
Quoted 48 lines

Hi Michael,
Since this is the first time I've submitted code to the Linux community, please forgive me for some of the missteps that I've made. I uploaded the incorrect patch file.
In a previous e-mail you said:
XMC parts seem to have SFDP tables and they should work out of the box
without any patches with the generic spi nor driver [1]. Therefore,
you don't need any entry at all.

I think it is related to the PARSE_SFDP flag.
The XMC flash part supports SFDP, so i don’t need to add NO_SFDP_FLAGS() macro. drivers/mtd/spi-nor/xmc.c | 17 +++++++++++++----

1 file changed, 13 insertions(+), 4 deletions(-)
drivers/mtd/spi-nor/xmc.c +13 -4
index 051411e86339..e78bf11792d9 100644
@@ -11,11 +11,20 @@
 static const struct flash_info xmc_nor_parts[] = {
 	/* XMC (Wuhan Xinxin Semiconductor Manufacturing Corp.) */
 	{ "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128)
-		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-			      SPI_NOR_QUAD_READ) },
+		PARSE_SFDP },
 	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256)
-		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-			      SPI_NOR_QUAD_READ) },
+		PARSE_SFDP },
+	{ "XM25QH128C", INFO(0x204018, 0, 64 * 1024, 256)
+		PARSE_SFDP },
+	{ "XM25QH256C", INFO(0x204019, 0, 64 * 1024, 512)
+		PARSE_SFDP },
+	{ "XM25QU256C", INFO(0x204119, 0, 64 * 1024, 512)
+		PARSE_SFDP },
+	{ "XM25QH512C", INFO(0x204020, 0, 64 * 1024, 1024)
+		PARSE_SFDP },
+	{ "XM25QU512C", INFO(0x204120, 0, 64 * 1024, 1024)
+		PARSE_SFDP },
+
 };
 
 const struct spi_nor_manufacturer spi_nor_xmc = {
Quoted 6 lines

Correct. If the flash is working with PARSE_SFDP, it has SFDP and all the information of the flash_info table is pulled from the SFDP tables, except for the part name. Therefore, you don't need any entry at all. The flash should just work out of the box. Are you using the latest kernel?

Quoted 5 lines
Quoted 1 line
Quoted 1 line

-michael

--
Hi Michael,

According to you, does this piece of my code still need to be modified?

You don't need it at all. The flash will work as is - that is without that piece of code.

-michael

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

author
#8 lore raw
Quoted 54 lines
Quoted 54 lines
Quoted 50 lines

Hi Michael,
Since this is the first time I've submitted code to the Linux community, please forgive me for some of the missteps that I've made. I uploaded the incorrect patch file.
In a previous e-mail you said:
XMC parts seem to have SFDP tables and they should work out of the box without any patches with the generic spi nor driver [1]. Therefore, you don't need any entry at all.

I think it is related to the PARSE_SFDP flag. The XMC flash part supports SFDP, so i don’t need to add NO_SFDP_FLAGS() macro. drivers/mtd/spi-nor/xmc.c | 17 +++++++++++++----

1 file changed, 13 insertions(+), 4 deletions(-)
drivers/mtd/spi-nor/xmc.c +13 -4
index 051411e86339..e78bf11792d9 100644
@@ -11,11 +11,20 @@
 static const struct flash_info xmc_nor_parts[] = {
 	/* XMC (Wuhan Xinxin Semiconductor Manufacturing Corp.) */
 	{ "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128)
-		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-			      SPI_NOR_QUAD_READ) },
+		PARSE_SFDP },
 	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256)
-		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-			      SPI_NOR_QUAD_READ) },
+		PARSE_SFDP },
+	{ "XM25QH128C", INFO(0x204018, 0, 64 * 1024, 256)
+		PARSE_SFDP },
+	{ "XM25QH256C", INFO(0x204019, 0, 64 * 1024, 512)
+		PARSE_SFDP },
+	{ "XM25QU256C", INFO(0x204119, 0, 64 * 1024, 512)
+		PARSE_SFDP },
+	{ "XM25QH512C", INFO(0x204020, 0, 64 * 1024, 1024)
+		PARSE_SFDP },
+	{ "XM25QU512C", INFO(0x204120, 0, 64 * 1024, 1024)
+		PARSE_SFDP },
+
 };
 
 const struct spi_nor_manufacturer spi_nor_xmc = {
Quoted 6 lines

Correct. If the flash is working with PARSE_SFDP, it has SFDP and all the information of the flash_info table is pulled from the SFDP tables, except for the part name. Therefore, you don't need any entry at all. The flash should just work out of the box. Are you using the latest kernel?

Quoted 1 line
Quoted 1 line

-michael

--
Hi Michael,

Quoted 7 lines
Quoted 1 line

According to you, does this piece of my code still need to be modified?

You don't need it at all. The flash will work as is - that is without that
piece of code.

-michael

--
Hi michael,

If these entries are not added, the flash part name is unknown and our customers cannot see our flash part name on the kernel log. So,I think it's necessary to add these entries.

Thanks

#9 lore raw

Hi,

Quoted 59 lines
Quoted 59 lines
Quoted 49 lines
Quoted 49 lines

Since this is the first time I've submitted code to the Linux community, please forgive me for some of the missteps that I've made. I uploaded the incorrect patch file.
In a previous e-mail you said:
XMC parts seem to have SFDP tables and they should work out of the box without any patches with the generic spi nor driver [1]. Therefore, you don't need any entry at all.

I think it is related to the PARSE_SFDP flag. The XMC flash part supports SFDP, so i don’t need to add NO_SFDP_FLAGS() macro. drivers/mtd/spi-nor/xmc.c | 17 +++++++++++++----

1 file changed, 13 insertions(+), 4 deletions(-)
drivers/mtd/spi-nor/xmc.c +13 -4
index 051411e86339..e78bf11792d9 100644
@@ -11,11 +11,20 @@
 static const struct flash_info xmc_nor_parts[] = {
 	/* XMC (Wuhan Xinxin Semiconductor Manufacturing Corp.) */
 	{ "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128)
-		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-			      SPI_NOR_QUAD_READ) },
+		PARSE_SFDP },
 	{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256)
-		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-			      SPI_NOR_QUAD_READ) },
+		PARSE_SFDP },
+	{ "XM25QH128C", INFO(0x204018, 0, 64 * 1024, 256)
+		PARSE_SFDP },
+	{ "XM25QH256C", INFO(0x204019, 0, 64 * 1024, 512)
+		PARSE_SFDP },
+	{ "XM25QU256C", INFO(0x204119, 0, 64 * 1024, 512)
+		PARSE_SFDP },
+	{ "XM25QH512C", INFO(0x204020, 0, 64 * 1024, 1024)
+		PARSE_SFDP },
+	{ "XM25QU512C", INFO(0x204120, 0, 64 * 1024, 1024)
+		PARSE_SFDP },
+
 };
 
 const struct spi_nor_manufacturer spi_nor_xmc = {
Quoted 6 lines

Correct. If the flash is working with PARSE_SFDP, it has SFDP and all the information of the flash_info table is pulled from the SFDP tables, except for the part name. Therefore, you don't need any entry at all. The flash should just work out of the box. Are you using the latest kernel?

Quoted 5 lines
Quoted 1 line
Quoted 1 line

-michael

--
Hi Michael,

According to you, does this piece of my code still need to be modified?

You don't need it at all. The flash will work as is - that is without that
piece of code.

Quoted 7 lines
Quoted 1 line

-michael

--
Hi michael,

If these entries are not added, the flash part name is unknown and our customers cannot see our flash part name on the kernel log.
So,I think it's necessary to add these entries.

They can still see the jedec id in the sysfs. We don't add entries just for the names. Sorry.

-michael