* Re: mtd: nand: fsl_ifc: fix handing of bit flips in erased pages
[not found] <5f665145ea304d3a9e1ecb39c51a951e@svr-chch-ex1.atlnz.lc>
@ 2017-05-29 8:48 ` Boris Brezillon
2017-05-31 22:18 ` Pavel Machek
2017-05-31 20:49 ` Pavel Machek
1 sibling, 1 reply; 7+ messages in thread
From: Boris Brezillon @ 2017-05-29 8:48 UTC (permalink / raw)
To: Darwin Dingel
Cc: Pavel Machek, richard@nod.at, dwmw2@infradead.org,
computersforpeace@gmail.com, marek.vasut@gmail.com,
cyrille.pitchen@atmel.com, linux-mtd@lists.infradead.org,
linux-kernel@vger.kernel.org, mark.marshall@omicronenergy.com,
b44839@freescale.com, prabhakar@freescale.com
Hi,
On Thu, 25 May 2017 23:33:43 +0000
Darwin Dingel <Darwin.Dingel@alliedtelesis.co.nz> wrote:
> Hi,
>
> We are also having the same problem where the IFC (nand flash) was
> reporting ECC uncorrectable errors on single bitflips with erased pages.
> Applying this patch with some minor modifications seems to solve our
> issue. We are still doing more testing but recent results looks promising.
Pavel, can you send a v2 fixing these problems?
Thanks,
Boris
>
> Our kernel is 4.4.6 so we have to modify it a bit to fit the old ECC
> layout structure. We just have a few comments about the patch:
>
> > - if (!is_blank(mtd, bufnum))
> > - ctrl->nand_stat |=
> > - IFC_NAND_EVTER_STAT_ECCER;
> > - break;
> > + ctrl->nand_stat |= IFC_NAND_EVTER_STAT_ECCER;
>
> Added 'error = 0' after setting the flag since no error was actually
> corrected.
>
> > - if (ctrl->nand_stat & IFC_NAND_EVTER_STAT_ECCER)
> > - dev_err(priv->dev, "NAND Flash ECC Uncorrectable Error\n");
> > -
> > if (ctrl->nand_stat != IFC_NAND_EVTER_STAT_OPC)
> > mtd->ecc_stats.failed++;
> > +
> > + if (ctrl->nand_stat & IFC_NAND_EVTER_STAT_ECCER) {
> > + int res;
> > +
> > + if (!oob_required)
> > + fsl_ifc_read_buf(mtd, chip->oob_poi, mtd->oobsize);
> > +
> > + res = check_erased_page(chip, buf);
> > + return res;
> > + }
>
> We have to do the check IFC_NAND_EVTER_STAT_ECCER first because the
> condition (ctrl->nand_stat != IFC_NAND_EVTER_STAT_OPC) will never be
> true since IFC always sets IFC_NAND_EVTER_STAT_ECCER on empty pages.
> Incrementing failed stats first before doing check_erased_page() makes
> nand_read() report ECC error all time.
>
> Our exact modification was:
> if (ctrl->nand_stat & IFC_NAND_EVTER_STAT_ECCER) {
> if (!oob_required)
> fsl_ifc_read_buf(mtd, chip->oob_poi, mtd->oobsize);
>
> return check_erased_page(chip, buf);
> }
>
> if (ctrl->nand_stat != IFC_NAND_EVTER_STAT_OPC)
> mtd->ecc_stats.failed++;
>
> Because check_erased_page() will be updating the failed stat anyway.
>
>
> Cheers,
> Darwin
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: mtd: nand: fsl_ifc: fix handing of bit flips in erased pages
[not found] <5f665145ea304d3a9e1ecb39c51a951e@svr-chch-ex1.atlnz.lc>
2017-05-29 8:48 ` mtd: nand: fsl_ifc: fix handing of bit flips in erased pages Boris Brezillon
@ 2017-05-31 20:49 ` Pavel Machek
2017-05-31 21:52 ` Darwin Dingel
1 sibling, 1 reply; 7+ messages in thread
From: Pavel Machek @ 2017-05-31 20:49 UTC (permalink / raw)
To: Darwin Dingel
Cc: Boris Brezillon, richard@nod.at, dwmw2@infradead.org,
computersforpeace@gmail.com, marek.vasut@gmail.com,
cyrille.pitchen@atmel.com, linux-mtd@lists.infradead.org,
linux-kernel@vger.kernel.org, mark.marshall@omicronenergy.com,
b44839@freescale.com, prabhakar@freescale.com
[-- Attachment #1: Type: text/plain, Size: 3114 bytes --]
Hi!
> We are also having the same problem where the IFC (nand flash) was
> reporting ECC uncorrectable errors on single bitflips with erased pages.
> Applying this patch with some minor modifications seems to solve our
> issue. We are still doing more testing but recent results looks
> promising.
First, thanks for letting me know.
> Our kernel is 4.4.6 so we have to modify it a bit to fit the old ECC
> layout structure. We just have a few comments about the patch:
>
> > - if (!is_blank(mtd, bufnum))
> > - ctrl->nand_stat |=
> > - IFC_NAND_EVTER_STAT_ECCER;
> > - break;
> > + ctrl->nand_stat |= IFC_NAND_EVTER_STAT_ECCER;
>
> Added 'error = 0' after setting the flag since no error was actually
> corrected.
You meen "errors = 0"? Does that actually make a difference? It is a
local variable, and continue makes sure the value is not used:
for (i = sector; i <= sector_end; i++) {
errors = check_read_ecc(mtd, ctrl, eccstat, i);
if (errors == 15) {
/*
* Uncorrectable error.
* We'll check for blank pages later.
*
* We disable ECCER reporting due to...
* erratum IFC-A002770 -- so report it now if we
* see an uncorrectable error in ECCSTAT.
*/
ctrl->nand_stat |= IFC_NAND_EVTER_STAT_ECCER;
continue;
}
> > - if (ctrl->nand_stat & IFC_NAND_EVTER_STAT_ECCER)
> > - dev_err(priv->dev, "NAND Flash ECC Uncorrectable Error\n");
> > -
> > if (ctrl->nand_stat != IFC_NAND_EVTER_STAT_OPC)
> > mtd->ecc_stats.failed++;
> > +
> > + if (ctrl->nand_stat & IFC_NAND_EVTER_STAT_ECCER) {
> > + int res;
> > +
> > + if (!oob_required)
> > + fsl_ifc_read_buf(mtd, chip->oob_poi, mtd->oobsize);
> > +
> > + res = check_erased_page(chip, buf);
> > + return res;
> > + }
>
> We have to do the check IFC_NAND_EVTER_STAT_ECCER first because the
> condition (ctrl->nand_stat != IFC_NAND_EVTER_STAT_OPC) will never be
> true since IFC always sets IFC_NAND_EVTER_STAT_ECCER on empty pages.
> Incrementing failed stats first before doing check_erased_page() makes
> nand_read() report ECC error all time.
Yes, you are right; I overlooked that one. Thanks a lot!
> Our exact modification was:
> if (ctrl->nand_stat & IFC_NAND_EVTER_STAT_ECCER) {
> if (!oob_required)
> fsl_ifc_read_buf(mtd, chip->oob_poi, mtd->oobsize);
>
> return check_erased_page(chip, buf);
> }
>
> if (ctrl->nand_stat != IFC_NAND_EVTER_STAT_OPC)
> mtd->ecc_stats.failed++;
>
> Because check_erased_page() will be updating the failed stat anyway.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: mtd: nand: fsl_ifc: fix handing of bit flips in erased pages
2017-05-31 20:49 ` Pavel Machek
@ 2017-05-31 21:52 ` Darwin Dingel
2017-05-31 22:15 ` Pavel Machek
0 siblings, 1 reply; 7+ messages in thread
From: Darwin Dingel @ 2017-05-31 21:52 UTC (permalink / raw)
To: Pavel Machek
Cc: Boris Brezillon, richard@nod.at, dwmw2@infradead.org,
computersforpeace@gmail.com, marek.vasut@gmail.com,
cyrille.pitchen@atmel.com, linux-mtd@lists.infradead.org,
linux-kernel@vger.kernel.org, mark.marshall@omicronenergy.com,
b44839@freescale.com, prabhakar@freescale.com
Hi,
On 01/06/17 08:59, Pavel Machek wrote:
>
> You meen "errors = 0"? Does that actually make a difference? It is a
> local variable, and continue makes sure the value is not used:
>
I missed the 'continue' statement there. In that case we don't need to
reset 'error'.
Cheers,
Darwin
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: mtd: nand: fsl_ifc: fix handing of bit flips in erased pages
2017-05-31 21:52 ` Darwin Dingel
@ 2017-05-31 22:15 ` Pavel Machek
2017-06-07 21:59 ` Darwin Dingel
0 siblings, 1 reply; 7+ messages in thread
From: Pavel Machek @ 2017-05-31 22:15 UTC (permalink / raw)
To: Darwin Dingel
Cc: Boris Brezillon, richard@nod.at, dwmw2@infradead.org,
computersforpeace@gmail.com, marek.vasut@gmail.com,
cyrille.pitchen@atmel.com, linux-mtd@lists.infradead.org,
linux-kernel@vger.kernel.org, mark.marshall@omicronenergy.com,
b44839@freescale.com, prabhakar@freescale.com
[-- Attachment #1: Type: text/plain, Size: 575 bytes --]
Hi!
> > You meen "errors = 0"? Does that actually make a difference? It is a
> > local variable, and continue makes sure the value is not used:
> >
>
> I missed the 'continue' statement there. In that case we don't need to
> reset 'error'.
Yes, thanks, I wanted to double-check. If you could take a look at
PATCHv2 -- it should have the problems fixed. Your Acked-by would be
nice ;-).
Thanks a lot,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: mtd: nand: fsl_ifc: fix handing of bit flips in erased pages
2017-05-29 8:48 ` mtd: nand: fsl_ifc: fix handing of bit flips in erased pages Boris Brezillon
@ 2017-05-31 22:18 ` Pavel Machek
0 siblings, 0 replies; 7+ messages in thread
From: Pavel Machek @ 2017-05-31 22:18 UTC (permalink / raw)
To: Boris Brezillon
Cc: Darwin Dingel, richard@nod.at, dwmw2@infradead.org,
computersforpeace@gmail.com, marek.vasut@gmail.com,
cyrille.pitchen@atmel.com, linux-mtd@lists.infradead.org,
linux-kernel@vger.kernel.org, mark.marshall@omicronenergy.com,
b44839@freescale.com, prabhakar@freescale.com
[-- Attachment #1: Type: text/plain, Size: 752 bytes --]
On Mon 2017-05-29 10:48:38, Boris Brezillon wrote:
> Hi,
>
> On Thu, 25 May 2017 23:33:43 +0000
> Darwin Dingel <Darwin.Dingel@alliedtelesis.co.nz> wrote:
>
> > Hi,
> >
> > We are also having the same problem where the IFC (nand flash) was
> > reporting ECC uncorrectable errors on single bitflips with erased pages.
> > Applying this patch with some minor modifications seems to solve our
> > issue. We are still doing more testing but recent results looks promising.
>
> Pavel, can you send a v2 fixing these problems?
You should have v2 in your inbox by now.
Thanks,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: mtd: nand: fsl_ifc: fix handing of bit flips in erased pages
2017-05-31 22:15 ` Pavel Machek
@ 2017-06-07 21:59 ` Darwin Dingel
2017-06-13 8:24 ` Pavel Machek
0 siblings, 1 reply; 7+ messages in thread
From: Darwin Dingel @ 2017-06-07 21:59 UTC (permalink / raw)
To: Pavel Machek
Cc: Boris Brezillon, richard@nod.at, dwmw2@infradead.org,
computersforpeace@gmail.com, marek.vasut@gmail.com,
cyrille.pitchen@atmel.com, linux-mtd@lists.infradead.org,
linux-kernel@vger.kernel.org, mark.marshall@omicronenergy.com,
b44839@freescale.com, prabhakar@freescale.com
Hi Pavel,
Looks like uboot has similar IFC driver. Do you have plans to apply this change to uboot as well?
Cheers,
Darwin
From: Pavel Machek <pavel@ucw.cz>
Sent: Thursday, 1 June 2017 10:15 a.m.
To: Darwin Dingel
Cc: Boris Brezillon; richard@nod.at; dwmw2@infradead.org; computersforpeace@gmail.com; marek.vasut@gmail.com; cyrille.pitchen@atmel.com; linux-mtd@lists.infradead.org; linux-kernel@vger.kernel.org; mark.marshall@omicronenergy.com; b44839@freescale.com; prabhakar@freescale.com
Subject: Re: mtd: nand: fsl_ifc: fix handing of bit flips in erased pages
Hi!
> > You meen "errors = 0"? Does that actually make a difference? It is a
> > local variable, and continue makes sure the value is not used:
> >
>
> I missed the 'continue' statement there. In that case we don't need to
> reset 'error'.
Yes, thanks, I wanted to double-check. If you could take a look at
PATCHv2 -- it should have the problems fixed. Your Acked-by would be
nice ;-).
Thanks a lot,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: mtd: nand: fsl_ifc: fix handing of bit flips in erased pages
2017-06-07 21:59 ` Darwin Dingel
@ 2017-06-13 8:24 ` Pavel Machek
0 siblings, 0 replies; 7+ messages in thread
From: Pavel Machek @ 2017-06-13 8:24 UTC (permalink / raw)
To: Darwin Dingel
Cc: Boris Brezillon, richard@nod.at, dwmw2@infradead.org,
computersforpeace@gmail.com, marek.vasut@gmail.com,
cyrille.pitchen@atmel.com, linux-mtd@lists.infradead.org,
linux-kernel@vger.kernel.org, mark.marshall@omicronenergy.com,
b44839@freescale.com, prabhakar@freescale.com
[-- Attachment #1: Type: text/plain, Size: 457 bytes --]
Hi!
>
> Looks like uboot has similar IFC driver. Do you have plans to apply this change to uboot as well?
>
First, sorry for the delay. You are right that u-boot needs similar
changes, but we do not hit the problem in u-boot so it was not
priority.
Thanks for handling it.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-06-13 8:24 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <5f665145ea304d3a9e1ecb39c51a951e@svr-chch-ex1.atlnz.lc>
2017-05-29 8:48 ` mtd: nand: fsl_ifc: fix handing of bit flips in erased pages Boris Brezillon
2017-05-31 22:18 ` Pavel Machek
2017-05-31 20:49 ` Pavel Machek
2017-05-31 21:52 ` Darwin Dingel
2017-05-31 22:15 ` Pavel Machek
2017-06-07 21:59 ` Darwin Dingel
2017-06-13 8:24 ` Pavel Machek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).