linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Naga Sureshkumar Relli <nagasure@xilinx.com>
Cc: Boris Brezillon <boris.brezillon@bootlin.com>,
	"robh@kernel.org" <robh@kernel.org>,
	"richard@nod.at" <richard@nod.at>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"marek.vasut@gmail.com" <marek.vasut@gmail.com>,
	"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
	"nagasuresh12@gmail.com" <nagasuresh12@gmail.com>,
	Michal Simek <michals@xilinx.com>,
	"computersforpeace@gmail.com" <computersforpeace@gmail.com>,
	"dwmw2@infradead.org" <dwmw2@infradead.org>,
	martin.lund@keep-it-simple.com
Subject: Re: [LINUX PATCH v12 3/3] mtd: rawnand: arasan: Add support for Arasan NAND Flash Controller
Date: Wed, 19 Dec 2018 15:26:47 +0100	[thread overview]
Message-ID: <20181219152647.76f77711@xps13> (raw)
In-Reply-To: <MWHPR02MB26237B932D7F3CCEE0476FE0AFBD0@MWHPR02MB2623.namprd02.prod.outlook.com>

Hi Naga,

+ Martin

Naga Sureshkumar Relli <nagasure@xilinx.com> wrote on Tue, 18 Dec 2018
05:33:53 +0000:

> Hi Miquel,
> 
> > -----Original Message-----
> > From: Miquel Raynal [mailto:miquel.raynal@bootlin.com]
> > Sent: Monday, December 17, 2018 10:11 PM
> > To: Naga Sureshkumar Relli <nagasure@xilinx.com>
> > Cc: Boris Brezillon <boris.brezillon@bootlin.com>; robh@kernel.org; richard@nod.at; linux-
> > kernel@vger.kernel.org; marek.vasut@gmail.com; linux-mtd@lists.infradead.org;
> > nagasuresh12@gmail.com; Michal Simek <michals@xilinx.com>;
> > computersforpeace@gmail.com; dwmw2@infradead.org
> > Subject: Re: [LINUX PATCH v12 3/3] mtd: rawnand: arasan: Add support for Arasan
> > NAND Flash Controller
> > 
> > Hi Naga,
> > 
> > [...]
> >   
> > > Inserted biterror @ 48/7
> > > Successfully corrected 25 bit errors per subpage Inserted biterror @
> > > 50/7 ECC failure, invalid data despite read success
> > > root@xilinx-zc1751-dc2-2018_1:~#
> > >
> > > But even in this case also, driver is saying ECC failure but read success.
> > > That means controller is able to detect errors on read page up to 24 bit only.
> > > After that there is no way to say to the upper layers that the page is bad because of the  
> > limitation in the controller.
> > 
> > This is more than a "limitation", the design is broken. I am not sure how to support such
> > controller, and I am not sure if we even want to.  
> 
> The number of errors that are correctable is limited by a parameter 't'(total number of errors),
> If there is a condition that the number of errors greater than 't', then the controller won't be able to detect that.
> I guess this concept is same for other controllers as well.
> In Arasan it is limited to 24-bit.
> 
> Even, in case of Hamming, it is 1-bit error correction and 2-bit error detection.
> What will happen if there are multiple errors(greater than 2-bit)?

Ok let's use the Hamming comparison in your ECC engine case.

-> hamming:
 * 0 bf: everything is fine
 * 1 bf: will be detected, corrected, signaled
 * 2 bf: will be detected, not corrected, signaled
 * 3+ bf: don't care

-> BCH:
 * 0 bf: everything is fine
 * 1-24 bf: will be detected, corrected, signaled
 * 25 bf: everything is fine
 * 26+ bf: don't care

Do you see the problem?

In the 25 bf case, the controller is reporting that everything went
fine while it should report that it detected an uncorrectable
situation.

Here are two leads to solve this issue, please investigate them both:
1/ Talk to your colleagues that developed the RTL, ask if there is a
   hidden/reserved bit for that purpose that is not documented.
2/ Search for a status in the registers that might indicate that an
   error occurred, for instance "0 bf corrected" and "bf have been
   detected".

NB: I know that, with a BCH ECC engine, error detection at (strength +
1) is not 100% sure but statistically it will almost always be detected
and in this case we need the controller to warn the user!


Thanks,
Miquèl

  reply	other threads:[~2018-12-19 14:26 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-09  5:00 [LINUX PATCH v12 0/3] Add support for Arasan NAND Flash controller Naga Sureshkumar Relli
2018-11-09  5:00 ` [LINUX PATCH v12 1/3] dt-bindings: mtd: arasan: Add device tree binding documentation Naga Sureshkumar Relli
2018-11-09  6:28   ` Boris Brezillon
2018-11-09 12:33     ` Naga Sureshkumar Relli
2018-11-09 12:54       ` Miquel Raynal
2018-11-09 13:19         ` Naga Sureshkumar Relli
2018-11-16 11:50   ` Martin Lund
2018-11-16 12:10     ` Martin Lund
2018-11-16 12:33     ` Michal Simek
2018-11-16 13:50       ` Naga Sureshkumar Relli
2018-11-16 14:22         ` Martin Lund
2018-11-09  5:00 ` [LINUX PATCH v12 2/3] mtd: rawnand: Add an option to get sdr timing mode number Naga Sureshkumar Relli
2018-11-09  5:00 ` [LINUX PATCH v12 3/3] mtd: rawnand: arasan: Add support for Arasan NAND Flash Controller Naga Sureshkumar Relli
2018-11-09  8:07   ` Boris Brezillon
2018-11-09 13:18     ` Naga Sureshkumar Relli
2018-11-09 23:03   ` kbuild test robot
2018-11-12 10:55   ` Martin Lund
2018-11-12 10:58     ` Boris Brezillon
2018-11-12 12:43       ` Naga Sureshkumar Relli
2018-11-15  9:34   ` Naga Sureshkumar Relli
2018-11-18 18:52     ` Miquel Raynal
2018-11-18 19:43     ` Boris Brezillon
2018-11-19  6:20       ` Naga Sureshkumar Relli
2018-11-19  8:02         ` Boris Brezillon
2018-11-20  7:02           ` Naga Sureshkumar Relli
2018-11-20 11:02             ` Boris Brezillon
2018-11-20 12:36               ` Miquel Raynal
2018-11-23 13:53                 ` Naga Sureshkumar Relli
2018-12-12  5:27                   ` Naga Sureshkumar Relli
2018-12-12  8:11                     ` Miquel Raynal
2018-12-12  9:04                       ` Naga Sureshkumar Relli
2018-12-12  9:09                         ` Miquel Raynal
2018-12-12 13:07                           ` Naga Sureshkumar Relli
2018-12-12 13:18                             ` Miquel Raynal
2018-12-17 13:21                               ` Naga Sureshkumar Relli
2018-12-17 16:41                                 ` Miquel Raynal
2018-12-18  5:33                                   ` Naga Sureshkumar Relli
2018-12-19 14:26                                     ` Miquel Raynal [this message]
2018-12-21  7:36                                       ` Naga Sureshkumar Relli
2019-01-28  6:04                                         ` Naga Sureshkumar Relli
2019-01-28  9:27                                           ` Miquel Raynal
2019-01-28  9:35                                             ` Naga Sureshkumar Relli
2019-06-19  4:44                                             ` Naga Sureshkumar Relli
2019-06-27 16:27                                               ` Miquel Raynal
2019-06-28  4:20                                                 ` Naga Sureshkumar Relli
2018-11-15 16:45   ` Dan Carpenter
2018-11-20 16:24   ` Boris Brezillon
2018-12-04  9:18     ` Naga Sureshkumar Relli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181219152647.76f77711@xps13 \
    --to=miquel.raynal@bootlin.com \
    --cc=boris.brezillon@bootlin.com \
    --cc=computersforpeace@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=marek.vasut@gmail.com \
    --cc=martin.lund@keep-it-simple.com \
    --cc=michals@xilinx.com \
    --cc=nagasure@xilinx.com \
    --cc=nagasuresh12@gmail.com \
    --cc=richard@nod.at \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).