* [PATCH 0/2] Add support for Macronix serial NAND flash @ 2024-06-28 8:54 ` Cheng Ming Lin 0 siblings, 0 replies; 10+ messages in thread From: Cheng Ming Lin @ 2024-06-28 8:54 UTC (permalink / raw) To: miquel.raynal, vigneshr Cc: richard, linux-mtd, linux-kernel, alvinzhou, leoyu, Cheng Ming Lin From: Cheng Ming Lin <chengminglin@mxic.com.tw> Add Device ID 2 for Macronix serial NAND flash. Add support for serial NAND flash with the postfix of part number Z4I8. Cheng Ming Lin (2): mtd: spinand: Support serial NAND for reading two bytes ID mtd: spinand: macronix: Add support for serial NAND flash drivers/mtd/nand/spi/macronix.c | 68 +++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 16 deletions(-) -- 2.25.1 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/ ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 0/2] Add support for Macronix serial NAND flash @ 2024-06-28 8:54 ` Cheng Ming Lin 0 siblings, 0 replies; 10+ messages in thread From: Cheng Ming Lin @ 2024-06-28 8:54 UTC (permalink / raw) To: miquel.raynal, vigneshr Cc: richard, linux-mtd, linux-kernel, alvinzhou, leoyu, Cheng Ming Lin From: Cheng Ming Lin <chengminglin@mxic.com.tw> Add Device ID 2 for Macronix serial NAND flash. Add support for serial NAND flash with the postfix of part number Z4I8. Cheng Ming Lin (2): mtd: spinand: Support serial NAND for reading two bytes ID mtd: spinand: macronix: Add support for serial NAND flash drivers/mtd/nand/spi/macronix.c | 68 +++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 16 deletions(-) -- 2.25.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] mtd: spinand: Support serial NAND for reading two bytes ID 2024-06-28 8:54 ` Cheng Ming Lin @ 2024-06-28 8:54 ` Cheng Ming Lin -1 siblings, 0 replies; 10+ messages in thread From: Cheng Ming Lin @ 2024-06-28 8:54 UTC (permalink / raw) To: miquel.raynal, vigneshr Cc: richard, linux-mtd, linux-kernel, alvinzhou, leoyu, Cheng Ming Lin From: Cheng Ming Lin <chengminglin@mxic.com.tw> Adding the Device ID 2 on Macronix Serial Flash. When the number of flashes increases, we need to utilize Device ID 2 to distinguish between different flashes. These flashes have been validated on Xilinx zynq-picozed board which included Macronix SPI Host. Signed-off-by: Cheng Ming Lin <chengminglin@mxic.com.tw> --- drivers/mtd/nand/spi/macronix.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/drivers/mtd/nand/spi/macronix.c b/drivers/mtd/nand/spi/macronix.c index 3dfc7e1e5241..ffcaf1a6947e 100644 --- a/drivers/mtd/nand/spi/macronix.c +++ b/drivers/mtd/nand/spi/macronix.c @@ -121,7 +121,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)), SPINAND_INFO("MX35LF2GE4AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x26), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x26, 0x03), NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -131,7 +131,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35LF4GE4AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x37), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x37, 0x03), NAND_MEMORG(1, 4096, 128, 64, 2048, 40, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -141,7 +141,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35LF1G24AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x14), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x14, 0x03), NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -150,7 +150,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)), SPINAND_INFO("MX35LF2G24AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x24), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x24, 0x03), NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 2, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -159,7 +159,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)), SPINAND_INFO("MX35LF4G24AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x35), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x35, 0x03), NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 2, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -187,7 +187,6 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), - SPINAND_INFO("MX35LF2G14AC", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x20), NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 2, 1, 1), @@ -199,7 +198,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF4G24AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb5), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb5, 0x03), NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 2, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -209,7 +208,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF4GE4AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb7), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb7, 0x03), NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -229,7 +228,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF2G24AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa4), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa4, 0x03), NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 2, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -239,7 +238,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF2GE4AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa6), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa6, 0x03), NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -249,7 +248,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF2GE4AC", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa2), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa2, 0x01), NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), NAND_ECCREQ(4, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -269,7 +268,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF1G24AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x94), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x94, 0x03), NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -279,7 +278,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF1GE4AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x96), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x96, 0x03), NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -289,7 +288,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF1GE4AC", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92, 0x01), NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), NAND_ECCREQ(4, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -298,7 +297,6 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), - SPINAND_INFO("MX31LF2GE4BC", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x2e), NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), @@ -309,7 +307,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), - SPINAND_INFO("MX3UF2GE4BC", + SPINAND_INFO("MX31UF2GE4BC", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xae), NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), NAND_ECCREQ(8, 512), -- 2.25.1 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/ ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 1/2] mtd: spinand: Support serial NAND for reading two bytes ID @ 2024-06-28 8:54 ` Cheng Ming Lin 0 siblings, 0 replies; 10+ messages in thread From: Cheng Ming Lin @ 2024-06-28 8:54 UTC (permalink / raw) To: miquel.raynal, vigneshr Cc: richard, linux-mtd, linux-kernel, alvinzhou, leoyu, Cheng Ming Lin From: Cheng Ming Lin <chengminglin@mxic.com.tw> Adding the Device ID 2 on Macronix Serial Flash. When the number of flashes increases, we need to utilize Device ID 2 to distinguish between different flashes. These flashes have been validated on Xilinx zynq-picozed board which included Macronix SPI Host. Signed-off-by: Cheng Ming Lin <chengminglin@mxic.com.tw> --- drivers/mtd/nand/spi/macronix.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/drivers/mtd/nand/spi/macronix.c b/drivers/mtd/nand/spi/macronix.c index 3dfc7e1e5241..ffcaf1a6947e 100644 --- a/drivers/mtd/nand/spi/macronix.c +++ b/drivers/mtd/nand/spi/macronix.c @@ -121,7 +121,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)), SPINAND_INFO("MX35LF2GE4AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x26), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x26, 0x03), NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -131,7 +131,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35LF4GE4AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x37), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x37, 0x03), NAND_MEMORG(1, 4096, 128, 64, 2048, 40, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -141,7 +141,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35LF1G24AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x14), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x14, 0x03), NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -150,7 +150,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)), SPINAND_INFO("MX35LF2G24AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x24), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x24, 0x03), NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 2, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -159,7 +159,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)), SPINAND_INFO("MX35LF4G24AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x35), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x35, 0x03), NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 2, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -187,7 +187,6 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), - SPINAND_INFO("MX35LF2G14AC", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x20), NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 2, 1, 1), @@ -199,7 +198,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF4G24AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb5), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb5, 0x03), NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 2, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -209,7 +208,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF4GE4AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb7), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb7, 0x03), NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -229,7 +228,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF2G24AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa4), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa4, 0x03), NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 2, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -239,7 +238,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF2GE4AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa6), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa6, 0x03), NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -249,7 +248,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF2GE4AC", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa2), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa2, 0x01), NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), NAND_ECCREQ(4, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -269,7 +268,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF1G24AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x94), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x94, 0x03), NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -279,7 +278,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF1GE4AD", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x96), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x96, 0x03), NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1), NAND_ECCREQ(8, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -289,7 +288,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF1GE4AC", - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92), + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92, 0x01), NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), NAND_ECCREQ(4, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, @@ -298,7 +297,6 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), - SPINAND_INFO("MX31LF2GE4BC", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x2e), NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), @@ -309,7 +307,7 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), - SPINAND_INFO("MX3UF2GE4BC", + SPINAND_INFO("MX31UF2GE4BC", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xae), NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), NAND_ECCREQ(8, 512), -- 2.25.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] mtd: spinand: Support serial NAND for reading two bytes ID 2024-06-28 8:54 ` Cheng Ming Lin @ 2024-07-01 9:43 ` Miquel Raynal -1 siblings, 0 replies; 10+ messages in thread From: Miquel Raynal @ 2024-07-01 9:43 UTC (permalink / raw) To: Cheng Ming Lin Cc: vigneshr, richard, linux-mtd, linux-kernel, alvinzhou, leoyu, Cheng Ming Lin Hi, linchengming884@gmail.com wrote on Fri, 28 Jun 2024 16:54:43 +0800: > From: Cheng Ming Lin <chengminglin@mxic.com.tw> > > Adding the Device ID 2 on Macronix Serial Flash. > > When the number of flashes increases, we need to utilize > Device ID 2 to distinguish between different flashes. > > These flashes have been validated on Xilinx zynq-picozed > board which included Macronix SPI Host. > > Signed-off-by: Cheng Ming Lin <chengminglin@mxic.com.tw> > --- ... > SPINAND_INFO("MX35UF1GE4AD", > - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x96), > + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x96, 0x03), > NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1), > NAND_ECCREQ(8, 512), > SPINAND_INFO_OP_VARIANTS(&read_cache_variants, > @@ -289,7 +288,7 @@ static const struct spinand_info macronix_spinand_table[] = { > SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, > mx35lf1ge4ab_ecc_get_status)), > SPINAND_INFO("MX35UF1GE4AC", > - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92), > + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92, 0x01), > NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), > NAND_ECCREQ(4, 512), > SPINAND_INFO_OP_VARIANTS(&read_cache_variants, > @@ -298,7 +297,6 @@ static const struct spinand_info macronix_spinand_table[] = { > SPINAND_HAS_QE_BIT, > SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, > mx35lf1ge4ab_ecc_get_status)), > - This is style, and if you care should be in another patch. > SPINAND_INFO("MX31LF2GE4BC", > SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x2e), > NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), > @@ -309,7 +307,7 @@ static const struct spinand_info macronix_spinand_table[] = { > SPINAND_HAS_QE_BIT, > SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, > mx35lf1ge4ab_ecc_get_status)), > - SPINAND_INFO("MX3UF2GE4BC", > + SPINAND_INFO("MX31UF2GE4BC", This is a fix that should have the right tags (stable/fixes) and be in another patch. Also, maybe you want this patch content to be backported. If it's the case, please add the necessary tags here as well. > SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xae), > NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), > NAND_ECCREQ(8, 512), Thanks, Miquèl ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/ ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] mtd: spinand: Support serial NAND for reading two bytes ID @ 2024-07-01 9:43 ` Miquel Raynal 0 siblings, 0 replies; 10+ messages in thread From: Miquel Raynal @ 2024-07-01 9:43 UTC (permalink / raw) To: Cheng Ming Lin Cc: vigneshr, richard, linux-mtd, linux-kernel, alvinzhou, leoyu, Cheng Ming Lin Hi, linchengming884@gmail.com wrote on Fri, 28 Jun 2024 16:54:43 +0800: > From: Cheng Ming Lin <chengminglin@mxic.com.tw> > > Adding the Device ID 2 on Macronix Serial Flash. > > When the number of flashes increases, we need to utilize > Device ID 2 to distinguish between different flashes. > > These flashes have been validated on Xilinx zynq-picozed > board which included Macronix SPI Host. > > Signed-off-by: Cheng Ming Lin <chengminglin@mxic.com.tw> > --- ... > SPINAND_INFO("MX35UF1GE4AD", > - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x96), > + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x96, 0x03), > NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1), > NAND_ECCREQ(8, 512), > SPINAND_INFO_OP_VARIANTS(&read_cache_variants, > @@ -289,7 +288,7 @@ static const struct spinand_info macronix_spinand_table[] = { > SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, > mx35lf1ge4ab_ecc_get_status)), > SPINAND_INFO("MX35UF1GE4AC", > - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92), > + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92, 0x01), > NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), > NAND_ECCREQ(4, 512), > SPINAND_INFO_OP_VARIANTS(&read_cache_variants, > @@ -298,7 +297,6 @@ static const struct spinand_info macronix_spinand_table[] = { > SPINAND_HAS_QE_BIT, > SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, > mx35lf1ge4ab_ecc_get_status)), > - This is style, and if you care should be in another patch. > SPINAND_INFO("MX31LF2GE4BC", > SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x2e), > NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), > @@ -309,7 +307,7 @@ static const struct spinand_info macronix_spinand_table[] = { > SPINAND_HAS_QE_BIT, > SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, > mx35lf1ge4ab_ecc_get_status)), > - SPINAND_INFO("MX3UF2GE4BC", > + SPINAND_INFO("MX31UF2GE4BC", This is a fix that should have the right tags (stable/fixes) and be in another patch. Also, maybe you want this patch content to be backported. If it's the case, please add the necessary tags here as well. > SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xae), > NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), > NAND_ECCREQ(8, 512), Thanks, Miquèl ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] mtd: spinand: Support serial NAND for reading two bytes ID 2024-07-01 9:43 ` Miquel Raynal @ 2024-07-03 6:09 ` Cheng Ming Lin -1 siblings, 0 replies; 10+ messages in thread From: Cheng Ming Lin @ 2024-07-03 6:09 UTC (permalink / raw) To: Miquel Raynal Cc: vigneshr, richard, linux-mtd, linux-kernel, alvinzhou, leoyu, Cheng Ming Lin Hi, Miquel Raynal <miquel.raynal@bootlin.com> 於 2024年7月1日 週一 下午5:43寫道: > > Hi, > > linchengming884@gmail.com wrote on Fri, 28 Jun 2024 16:54:43 +0800: > > > From: Cheng Ming Lin <chengminglin@mxic.com.tw> > > > > Adding the Device ID 2 on Macronix Serial Flash. > > > > When the number of flashes increases, we need to utilize > > Device ID 2 to distinguish between different flashes. > > > > These flashes have been validated on Xilinx zynq-picozed > > board which included Macronix SPI Host. > > > > Signed-off-by: Cheng Ming Lin <chengminglin@mxic.com.tw> > > --- > > ... > > > SPINAND_INFO("MX35UF1GE4AD", > > - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x96), > > + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x96, 0x03), > > NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1), > > NAND_ECCREQ(8, 512), > > SPINAND_INFO_OP_VARIANTS(&read_cache_variants, > > @@ -289,7 +288,7 @@ static const struct spinand_info macronix_spinand_table[] = { > > SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, > > mx35lf1ge4ab_ecc_get_status)), > > SPINAND_INFO("MX35UF1GE4AC", > > - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92), > > + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92, 0x01), > > NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), > > NAND_ECCREQ(4, 512), > > SPINAND_INFO_OP_VARIANTS(&read_cache_variants, > > @@ -298,7 +297,6 @@ static const struct spinand_info macronix_spinand_table[] = { > > SPINAND_HAS_QE_BIT, > > SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, > > mx35lf1ge4ab_ecc_get_status)), > > - > > This is style, and if you care should be in another patch. Okay, we currently have no plans to make this modification. > > > SPINAND_INFO("MX31LF2GE4BC", > > SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x2e), > > NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), > > @@ -309,7 +307,7 @@ static const struct spinand_info macronix_spinand_table[] = { > > SPINAND_HAS_QE_BIT, > > SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, > > mx35lf1ge4ab_ecc_get_status)), > > - SPINAND_INFO("MX3UF2GE4BC", > > + SPINAND_INFO("MX31UF2GE4BC", > > This is a fix that should have the right tags (stable/fixes) and be in > another patch. > > Also, maybe you want this patch content to be backported. If it's the > case, please add the necessary tags here as well. > Sure, we will separate this modification from this patch series. > > SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xae), > > NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), > > NAND_ECCREQ(8, 512), > > > Thanks, > Miquèl Thanks, Chengming ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/ ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] mtd: spinand: Support serial NAND for reading two bytes ID @ 2024-07-03 6:09 ` Cheng Ming Lin 0 siblings, 0 replies; 10+ messages in thread From: Cheng Ming Lin @ 2024-07-03 6:09 UTC (permalink / raw) To: Miquel Raynal Cc: vigneshr, richard, linux-mtd, linux-kernel, alvinzhou, leoyu, Cheng Ming Lin Hi, Miquel Raynal <miquel.raynal@bootlin.com> 於 2024年7月1日 週一 下午5:43寫道: > > Hi, > > linchengming884@gmail.com wrote on Fri, 28 Jun 2024 16:54:43 +0800: > > > From: Cheng Ming Lin <chengminglin@mxic.com.tw> > > > > Adding the Device ID 2 on Macronix Serial Flash. > > > > When the number of flashes increases, we need to utilize > > Device ID 2 to distinguish between different flashes. > > > > These flashes have been validated on Xilinx zynq-picozed > > board which included Macronix SPI Host. > > > > Signed-off-by: Cheng Ming Lin <chengminglin@mxic.com.tw> > > --- > > ... > > > SPINAND_INFO("MX35UF1GE4AD", > > - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x96), > > + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x96, 0x03), > > NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1), > > NAND_ECCREQ(8, 512), > > SPINAND_INFO_OP_VARIANTS(&read_cache_variants, > > @@ -289,7 +288,7 @@ static const struct spinand_info macronix_spinand_table[] = { > > SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, > > mx35lf1ge4ab_ecc_get_status)), > > SPINAND_INFO("MX35UF1GE4AC", > > - SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92), > > + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92, 0x01), > > NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), > > NAND_ECCREQ(4, 512), > > SPINAND_INFO_OP_VARIANTS(&read_cache_variants, > > @@ -298,7 +297,6 @@ static const struct spinand_info macronix_spinand_table[] = { > > SPINAND_HAS_QE_BIT, > > SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, > > mx35lf1ge4ab_ecc_get_status)), > > - > > This is style, and if you care should be in another patch. Okay, we currently have no plans to make this modification. > > > SPINAND_INFO("MX31LF2GE4BC", > > SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x2e), > > NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), > > @@ -309,7 +307,7 @@ static const struct spinand_info macronix_spinand_table[] = { > > SPINAND_HAS_QE_BIT, > > SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, > > mx35lf1ge4ab_ecc_get_status)), > > - SPINAND_INFO("MX3UF2GE4BC", > > + SPINAND_INFO("MX31UF2GE4BC", > > This is a fix that should have the right tags (stable/fixes) and be in > another patch. > > Also, maybe you want this patch content to be backported. If it's the > case, please add the necessary tags here as well. > Sure, we will separate this modification from this patch series. > > SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xae), > > NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), > > NAND_ECCREQ(8, 512), > > > Thanks, > Miquèl Thanks, Chengming ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/2] mtd: spinand: macronix: Add support for serial NAND flash 2024-06-28 8:54 ` Cheng Ming Lin @ 2024-06-28 8:54 ` Cheng Ming Lin -1 siblings, 0 replies; 10+ messages in thread From: Cheng Ming Lin @ 2024-06-28 8:54 UTC (permalink / raw) To: miquel.raynal, vigneshr Cc: richard, linux-mtd, linux-kernel, alvinzhou, leoyu, Cheng Ming Lin From: Cheng Ming Lin <chengminglin@mxic.com.tw> MX35{U,L}F{2,4}G24AD-Z4I8 are Macronix serial NAND flashes. Their main difference from MX35{U,L}F{2,4}G24AD lies in the plane number. The plane number for those with the postfix Z4I8 is 1. These flashes have been validated on Xilinx zynq-picozed board which include Macronix SPI Host. Signed-off-by: Cheng Ming Lin <chengminglin@mxic.com.tw> --- drivers/mtd/nand/spi/macronix.c | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/drivers/mtd/nand/spi/macronix.c b/drivers/mtd/nand/spi/macronix.c index ffcaf1a6947e..ae33bdca94e0 100644 --- a/drivers/mtd/nand/spi/macronix.c +++ b/drivers/mtd/nand/spi/macronix.c @@ -158,6 +158,15 @@ static const struct spinand_info macronix_spinand_table[] = { &update_cache_variants), SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)), + SPINAND_INFO("MX35LF2G24AD-Z4I8", + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x64, 0x03), + NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1), + NAND_ECCREQ(8, 512), + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, + &write_cache_variants, + &update_cache_variants), + SPINAND_HAS_QE_BIT, + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)), SPINAND_INFO("MX35LF4G24AD", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x35, 0x03), NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 2, 1, 1), @@ -167,6 +176,15 @@ static const struct spinand_info macronix_spinand_table[] = { &update_cache_variants), SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)), + SPINAND_INFO("MX35LF4G24AD-Z4I8", + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x75, 0x03), + NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 1, 1, 1), + NAND_ECCREQ(8, 512), + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, + &write_cache_variants, + &update_cache_variants), + SPINAND_HAS_QE_BIT, + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)), SPINAND_INFO("MX31LF1GE4BC", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x1e), NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), @@ -207,6 +225,16 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), + SPINAND_INFO("MX35UF4G24AD-Z4I8", + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xf5, 0x03), + NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 1, 1, 1), + NAND_ECCREQ(8, 512), + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, + &write_cache_variants, + &update_cache_variants), + SPINAND_HAS_QE_BIT, + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, + mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF4GE4AD", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb7, 0x03), NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 1, 1, 1), @@ -237,6 +265,16 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), + SPINAND_INFO("MX35UF2G24AD-Z4I8", + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xe4, 0x03), + NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1), + NAND_ECCREQ(8, 512), + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, + &write_cache_variants, + &update_cache_variants), + SPINAND_HAS_QE_BIT, + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, + mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF2GE4AD", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa6, 0x03), NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1), -- 2.25.1 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/ ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/2] mtd: spinand: macronix: Add support for serial NAND flash @ 2024-06-28 8:54 ` Cheng Ming Lin 0 siblings, 0 replies; 10+ messages in thread From: Cheng Ming Lin @ 2024-06-28 8:54 UTC (permalink / raw) To: miquel.raynal, vigneshr Cc: richard, linux-mtd, linux-kernel, alvinzhou, leoyu, Cheng Ming Lin From: Cheng Ming Lin <chengminglin@mxic.com.tw> MX35{U,L}F{2,4}G24AD-Z4I8 are Macronix serial NAND flashes. Their main difference from MX35{U,L}F{2,4}G24AD lies in the plane number. The plane number for those with the postfix Z4I8 is 1. These flashes have been validated on Xilinx zynq-picozed board which include Macronix SPI Host. Signed-off-by: Cheng Ming Lin <chengminglin@mxic.com.tw> --- drivers/mtd/nand/spi/macronix.c | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/drivers/mtd/nand/spi/macronix.c b/drivers/mtd/nand/spi/macronix.c index ffcaf1a6947e..ae33bdca94e0 100644 --- a/drivers/mtd/nand/spi/macronix.c +++ b/drivers/mtd/nand/spi/macronix.c @@ -158,6 +158,15 @@ static const struct spinand_info macronix_spinand_table[] = { &update_cache_variants), SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)), + SPINAND_INFO("MX35LF2G24AD-Z4I8", + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x64, 0x03), + NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1), + NAND_ECCREQ(8, 512), + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, + &write_cache_variants, + &update_cache_variants), + SPINAND_HAS_QE_BIT, + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)), SPINAND_INFO("MX35LF4G24AD", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x35, 0x03), NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 2, 1, 1), @@ -167,6 +176,15 @@ static const struct spinand_info macronix_spinand_table[] = { &update_cache_variants), SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)), + SPINAND_INFO("MX35LF4G24AD-Z4I8", + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x75, 0x03), + NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 1, 1, 1), + NAND_ECCREQ(8, 512), + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, + &write_cache_variants, + &update_cache_variants), + SPINAND_HAS_QE_BIT, + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)), SPINAND_INFO("MX31LF1GE4BC", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x1e), NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), @@ -207,6 +225,16 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), + SPINAND_INFO("MX35UF4G24AD-Z4I8", + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xf5, 0x03), + NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 1, 1, 1), + NAND_ECCREQ(8, 512), + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, + &write_cache_variants, + &update_cache_variants), + SPINAND_HAS_QE_BIT, + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, + mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF4GE4AD", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb7, 0x03), NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 1, 1, 1), @@ -237,6 +265,16 @@ static const struct spinand_info macronix_spinand_table[] = { SPINAND_HAS_QE_BIT, SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, mx35lf1ge4ab_ecc_get_status)), + SPINAND_INFO("MX35UF2G24AD-Z4I8", + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xe4, 0x03), + NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1), + NAND_ECCREQ(8, 512), + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, + &write_cache_variants, + &update_cache_variants), + SPINAND_HAS_QE_BIT, + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, + mx35lf1ge4ab_ecc_get_status)), SPINAND_INFO("MX35UF2GE4AD", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa6, 0x03), NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1), -- 2.25.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-07-03 6:10 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-06-28 8:54 [PATCH 0/2] Add support for Macronix serial NAND flash Cheng Ming Lin 2024-06-28 8:54 ` Cheng Ming Lin 2024-06-28 8:54 ` [PATCH 1/2] mtd: spinand: Support serial NAND for reading two bytes ID Cheng Ming Lin 2024-06-28 8:54 ` Cheng Ming Lin 2024-07-01 9:43 ` Miquel Raynal 2024-07-01 9:43 ` Miquel Raynal 2024-07-03 6:09 ` Cheng Ming Lin 2024-07-03 6:09 ` Cheng Ming Lin 2024-06-28 8:54 ` [PATCH 2/2] mtd: spinand: macronix: Add support for serial NAND flash Cheng Ming Lin 2024-06-28 8:54 ` Cheng Ming Lin
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.