* [PATCH 1/4] mtd: spi-nand: winbond: Fix 512GW and 02JW OOB layout [not found] <20241009125002.191109-1-miquel.raynal@bootlin.com> @ 2024-10-09 12:49 ` Miquel Raynal 2024-10-09 13:16 ` Frieder Schrempf 2024-10-21 10:02 ` Miquel Raynal 2024-10-09 12:50 ` [PATCH 2/4] mtd: spi-nand: winbond: Fix 512GW, 01GW, 01JW and 02JW ECC information Miquel Raynal 1 sibling, 2 replies; 7+ messages in thread From: Miquel Raynal @ 2024-10-09 12:49 UTC (permalink / raw) To: Richard Weinberger, Vignesh Raghavendra, Tudor Ambarus, Pratyush Yadav, Michael Walle, linux-mtd Cc: Steam Lin, Thomas Petazzoni, Md Sadre Alam, Sridharan S N, Miquel Raynal, stable Both W25N512GW and W25N02JW chips have 64 bytes of OOB and thus cannot use the layout for 128 bytes OOB. Reference the correct layout instead. Fixes: 6a804fb72de5 ("mtd: spinand: winbond: add support for serial NAND flash") Cc: stable@vger.kernel.org Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> --- drivers/mtd/nand/spi/winbond.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/nand/spi/winbond.c b/drivers/mtd/nand/spi/winbond.c index 6b520b68407e..4e765cec0a3b 100644 --- a/drivers/mtd/nand/spi/winbond.c +++ b/drivers/mtd/nand/spi/winbond.c @@ -189,7 +189,7 @@ static const struct spinand_info winbond_spinand_table[] = { &write_cache_variants, &update_cache_variants), 0, - SPINAND_ECCINFO(&w25n02kv_ooblayout, w25n02kv_ecc_get_status)), + SPINAND_ECCINFO(&w25m02gv_ooblayout, w25n02kv_ecc_get_status)), SPINAND_INFO("W25N512GW", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xba, 0x20), NAND_MEMORG(1, 2048, 64, 64, 512, 10, 1, 1, 1), @@ -198,7 +198,7 @@ static const struct spinand_info winbond_spinand_table[] = { &write_cache_variants, &update_cache_variants), 0, - SPINAND_ECCINFO(&w25n02kv_ooblayout, w25n02kv_ecc_get_status)), + SPINAND_ECCINFO(&w25m02gv_ooblayout, w25n02kv_ecc_get_status)), SPINAND_INFO("W25N02KWZEIR", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xba, 0x22), NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1), -- 2.43.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/4] mtd: spi-nand: winbond: Fix 512GW and 02JW OOB layout 2024-10-09 12:49 ` [PATCH 1/4] mtd: spi-nand: winbond: Fix 512GW and 02JW OOB layout Miquel Raynal @ 2024-10-09 13:16 ` Frieder Schrempf 2024-10-21 10:02 ` Miquel Raynal 1 sibling, 0 replies; 7+ messages in thread From: Frieder Schrempf @ 2024-10-09 13:16 UTC (permalink / raw) To: Miquel Raynal, Richard Weinberger, Vignesh Raghavendra, Tudor Ambarus, Pratyush Yadav, Michael Walle, linux-mtd Cc: Steam Lin, Thomas Petazzoni, Md Sadre Alam, Sridharan S N, stable On 09.10.24 2:49 PM, Miquel Raynal wrote: > Both W25N512GW and W25N02JW chips have 64 bytes of OOB and thus cannot > use the layout for 128 bytes OOB. Reference the correct layout instead. > > Fixes: 6a804fb72de5 ("mtd: spinand: winbond: add support for serial NAND flash") > Cc: stable@vger.kernel.org > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de> ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/4] mtd: spi-nand: winbond: Fix 512GW and 02JW OOB layout 2024-10-09 12:49 ` [PATCH 1/4] mtd: spi-nand: winbond: Fix 512GW and 02JW OOB layout Miquel Raynal 2024-10-09 13:16 ` Frieder Schrempf @ 2024-10-21 10:02 ` Miquel Raynal 1 sibling, 0 replies; 7+ messages in thread From: Miquel Raynal @ 2024-10-21 10:02 UTC (permalink / raw) To: Miquel Raynal, Richard Weinberger, Vignesh Raghavendra, Tudor Ambarus, Pratyush Yadav, Michael Walle, linux-mtd Cc: Steam Lin, Thomas Petazzoni, Md Sadre Alam, Sridharan S N, stable On Wed, 2024-10-09 at 12:49:59 UTC, Miquel Raynal wrote: > Both W25N512GW and W25N02JW chips have 64 bytes of OOB and thus cannot > use the layout for 128 bytes OOB. Reference the correct layout instead. > > Fixes: 6a804fb72de5 ("mtd: spinand: winbond: add support for serial NAND flash") > Cc: stable@vger.kernel.org > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> > Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de> Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next. Miquel ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/4] mtd: spi-nand: winbond: Fix 512GW, 01GW, 01JW and 02JW ECC information [not found] <20241009125002.191109-1-miquel.raynal@bootlin.com> 2024-10-09 12:49 ` [PATCH 1/4] mtd: spi-nand: winbond: Fix 512GW and 02JW OOB layout Miquel Raynal @ 2024-10-09 12:50 ` Miquel Raynal 2024-10-09 13:33 ` Frieder Schrempf 2024-10-21 10:02 ` Miquel Raynal 1 sibling, 2 replies; 7+ messages in thread From: Miquel Raynal @ 2024-10-09 12:50 UTC (permalink / raw) To: Richard Weinberger, Vignesh Raghavendra, Tudor Ambarus, Pratyush Yadav, Michael Walle, linux-mtd Cc: Steam Lin, Thomas Petazzoni, Md Sadre Alam, Sridharan S N, Miquel Raynal, stable These four chips: * W25N512GW * W25N01GW * W25N01JW * W25N02JW all require a single bit of ECC strength and thus feature an on-die Hamming-like ECC engine. There is no point in filling a ->get_status() callback for them because the main ECC status bytes are located in standard places, and retrieving the number of bitflips in case of corrected chunk is both useless and unsupported (if there are bitflips, then there is 1 at most, so no need to query the chip for that). Without this change, a kernel warning triggers every time a bit flips. Fixes: 6a804fb72de5 ("mtd: spinand: winbond: add support for serial NAND flash") Cc: stable@vger.kernel.org Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> --- drivers/mtd/nand/spi/winbond.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/mtd/nand/spi/winbond.c b/drivers/mtd/nand/spi/winbond.c index 4e765cec0a3b..9b611bf7e8f0 100644 --- a/drivers/mtd/nand/spi/winbond.c +++ b/drivers/mtd/nand/spi/winbond.c @@ -175,30 +175,30 @@ static const struct spinand_info winbond_spinand_table[] = { SPINAND_INFO("W25N01JW", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xbc, 0x21), NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), - NAND_ECCREQ(4, 512), + NAND_ECCREQ(1, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, &write_cache_variants, &update_cache_variants), 0, - SPINAND_ECCINFO(&w25m02gv_ooblayout, w25n02kv_ecc_get_status)), + SPINAND_ECCINFO(&w25m02gv_ooblayout, NULL)), SPINAND_INFO("W25N02JWZEIF", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xbf, 0x22), NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 2, 1), - NAND_ECCREQ(4, 512), + NAND_ECCREQ(1, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, &write_cache_variants, &update_cache_variants), 0, - SPINAND_ECCINFO(&w25m02gv_ooblayout, w25n02kv_ecc_get_status)), + SPINAND_ECCINFO(&w25m02gv_ooblayout, NULL)), SPINAND_INFO("W25N512GW", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xba, 0x20), NAND_MEMORG(1, 2048, 64, 64, 512, 10, 1, 1, 1), - NAND_ECCREQ(4, 512), + NAND_ECCREQ(1, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, &write_cache_variants, &update_cache_variants), 0, - SPINAND_ECCINFO(&w25m02gv_ooblayout, w25n02kv_ecc_get_status)), + SPINAND_ECCINFO(&w25m02gv_ooblayout, NULL)), SPINAND_INFO("W25N02KWZEIR", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xba, 0x22), NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1), @@ -220,12 +220,12 @@ static const struct spinand_info winbond_spinand_table[] = { SPINAND_INFO("W25N01GWZEIG", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xba, 0x21), NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), - NAND_ECCREQ(4, 512), + NAND_ECCREQ(1, 512), SPINAND_INFO_OP_VARIANTS(&read_cache_variants, &write_cache_variants, &update_cache_variants), 0, - SPINAND_ECCINFO(&w25m02gv_ooblayout, w25n02kv_ecc_get_status)), + SPINAND_ECCINFO(&w25m02gv_ooblayout, NULL)), SPINAND_INFO("W25N04KV", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xaa, 0x23), NAND_MEMORG(1, 2048, 128, 64, 4096, 40, 2, 1, 1), -- 2.43.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/4] mtd: spi-nand: winbond: Fix 512GW, 01GW, 01JW and 02JW ECC information 2024-10-09 12:50 ` [PATCH 2/4] mtd: spi-nand: winbond: Fix 512GW, 01GW, 01JW and 02JW ECC information Miquel Raynal @ 2024-10-09 13:33 ` Frieder Schrempf 2024-10-09 14:47 ` Miquel Raynal 2024-10-21 10:02 ` Miquel Raynal 1 sibling, 1 reply; 7+ messages in thread From: Frieder Schrempf @ 2024-10-09 13:33 UTC (permalink / raw) To: Miquel Raynal, Richard Weinberger, Vignesh Raghavendra, Tudor Ambarus, Pratyush Yadav, Michael Walle, linux-mtd Cc: Steam Lin, Thomas Petazzoni, Md Sadre Alam, Sridharan S N, stable On 09.10.24 2:50 PM, Miquel Raynal wrote: > These four chips: > * W25N512GW > * W25N01GW > * W25N01JW > * W25N02JW > all require a single bit of ECC strength and thus feature an on-die > Hamming-like ECC engine. There is no point in filling a ->get_status() > callback for them because the main ECC status bytes are located in > standard places, and retrieving the number of bitflips in case of > corrected chunk is both useless and unsupported (if there are bitflips, > then there is 1 at most, so no need to query the chip for that). > > Without this change, a kernel warning triggers every time a bit flips. > > Fixes: 6a804fb72de5 ("mtd: spinand: winbond: add support for serial NAND flash") > Cc: stable@vger.kernel.org > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> I had a quick look at the datasheets and this seems correct to me. Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de> ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/4] mtd: spi-nand: winbond: Fix 512GW, 01GW, 01JW and 02JW ECC information 2024-10-09 13:33 ` Frieder Schrempf @ 2024-10-09 14:47 ` Miquel Raynal 0 siblings, 0 replies; 7+ messages in thread From: Miquel Raynal @ 2024-10-09 14:47 UTC (permalink / raw) To: Frieder Schrempf Cc: Richard Weinberger, Vignesh Raghavendra, Tudor Ambarus, Pratyush Yadav, Michael Walle, linux-mtd, Steam Lin, Thomas Petazzoni, Md Sadre Alam, Sridharan S N, stable Hi Frieder, frieder.schrempf@kontron.de wrote on Wed, 9 Oct 2024 15:33:11 +0200: > On 09.10.24 2:50 PM, Miquel Raynal wrote: > > These four chips: > > * W25N512GW > > * W25N01GW > > * W25N01JW > > * W25N02JW > > all require a single bit of ECC strength and thus feature an on-die > > Hamming-like ECC engine. There is no point in filling a ->get_status() > > callback for them because the main ECC status bytes are located in > > standard places, and retrieving the number of bitflips in case of > > corrected chunk is both useless and unsupported (if there are bitflips, > > then there is 1 at most, so no need to query the chip for that). > > > > Without this change, a kernel warning triggers every time a bit flips. > > > > Fixes: 6a804fb72de5 ("mtd: spinand: winbond: add support for serial NAND flash") > > Cc: stable@vger.kernel.org > > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> > > I had a quick look at the datasheets and this seems correct to me. Thanks a lot for the rapid review! > Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de> Thanks, Miquèl ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/4] mtd: spi-nand: winbond: Fix 512GW, 01GW, 01JW and 02JW ECC information 2024-10-09 12:50 ` [PATCH 2/4] mtd: spi-nand: winbond: Fix 512GW, 01GW, 01JW and 02JW ECC information Miquel Raynal 2024-10-09 13:33 ` Frieder Schrempf @ 2024-10-21 10:02 ` Miquel Raynal 1 sibling, 0 replies; 7+ messages in thread From: Miquel Raynal @ 2024-10-21 10:02 UTC (permalink / raw) To: Miquel Raynal, Richard Weinberger, Vignesh Raghavendra, Tudor Ambarus, Pratyush Yadav, Michael Walle, linux-mtd Cc: Steam Lin, Thomas Petazzoni, Md Sadre Alam, Sridharan S N, stable On Wed, 2024-10-09 at 12:50:00 UTC, Miquel Raynal wrote: > These four chips: > * W25N512GW > * W25N01GW > * W25N01JW > * W25N02JW > all require a single bit of ECC strength and thus feature an on-die > Hamming-like ECC engine. There is no point in filling a ->get_status() > callback for them because the main ECC status bytes are located in > standard places, and retrieving the number of bitflips in case of > corrected chunk is both useless and unsupported (if there are bitflips, > then there is 1 at most, so no need to query the chip for that). > > Without this change, a kernel warning triggers every time a bit flips. > > Fixes: 6a804fb72de5 ("mtd: spinand: winbond: add support for serial NAND flash") > Cc: stable@vger.kernel.org > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> > Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de> Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next. Miquel ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-10-21 10:02 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20241009125002.191109-1-miquel.raynal@bootlin.com>
2024-10-09 12:49 ` [PATCH 1/4] mtd: spi-nand: winbond: Fix 512GW and 02JW OOB layout Miquel Raynal
2024-10-09 13:16 ` Frieder Schrempf
2024-10-21 10:02 ` Miquel Raynal
2024-10-09 12:50 ` [PATCH 2/4] mtd: spi-nand: winbond: Fix 512GW, 01GW, 01JW and 02JW ECC information Miquel Raynal
2024-10-09 13:33 ` Frieder Schrempf
2024-10-09 14:47 ` Miquel Raynal
2024-10-21 10:02 ` Miquel Raynal
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox