linux-mtd.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Oleksij Rempel <linux@rempel-privat.de>
Cc: computersforpeace@gmail.com, linux-mtd@lists.infradead.org
Subject: Re: should nand driver create ECC for a page after ERASE cmd?
Date: Sun, 21 Dec 2014 17:28:06 +0100	[thread overview]
Message-ID: <20141221172806.4fb64605@bbrezillon> (raw)
In-Reply-To: <54953675.1020102@rempel-privat.de>

Hi Oleksij,

On Sat, 20 Dec 2014 09:42:29 +0100
Oleksij Rempel <linux@rempel-privat.de> wrote:

> Hello all,
> 
> i'm trying to pass mtd/tests for my driver.. on pagetest i fail on this
> place:
> http://lxr.free-electrons.com/source/drivers/mtd/tests/pagetest.c#L311
> 
> after ERASE cmd this test trying to read same page. Driver will report
> ECC error on read, because erased page has no ECC data in OOB.
> 
> What is correct way to handle it?

Well, actually it depends on your NAND/ECC controller capabilities (but
given your discussion with Richard on IRC, I guess you already
understood that ;-))

1) Wiser controllers are generating 0xff ECC bytes for a data chunk
(chunk == ECC step size) filled with 0xff. With BCH algorithms this is
easily done by XORing the ECC bytes with the appropriate pattern (see
soft BCH implementation)
2) Some controller just verify if the data chunk + ECC bytes are all
0xff before passing it to the ECC engine. If they are filled with 0xff
the ECC correction is bypassed.
This method has one drawback: it does not properly handle bitflips
occurring in erased pages (if one bitflip occurs the NAND controller
consider the chunk as not empty, and pass it to the BCH engine).
3) The controller does not handle erased pages at all, and in this case
you'll have to manually test it (as Ezequiel suggested) when you
encounter an ECC error.

Regards,

Boris

-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

  parent reply	other threads:[~2014-12-21 16:28 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-20  8:42 should nand driver create ECC for a page after ERASE cmd? Oleksij Rempel
2014-12-21  1:46 ` Ezequiel Garcia
2014-12-21 14:13   ` Oleksij Rempel
2014-12-21 16:28 ` Boris Brezillon [this message]
2014-12-21 18:44   ` Oleksij Rempel
2014-12-22 18:41     ` Brian Norris
2014-12-22 19:50       ` Oleksij Rempel
2014-12-23 11:27         ` Boris Brezillon

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=20141221172806.4fb64605@bbrezillon \
    --to=boris.brezillon@free-electrons.com \
    --cc=computersforpeace@gmail.com \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux@rempel-privat.de \
    /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).