From: Robert Jarzmik <robert.jarzmik@free.fr>
To: dedekind1@gmail.com
Cc: Mike Dunn <mikedunn@newsguy.com>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
linux-mtd@lists.infradead.org,
Shmulik Ladkani <shmulik.ladkani@gmail.com>,
Brian Norris <computersforpeace@gmail.com>,
David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH] mtd: nand: Use the mirror BBT descriptor when reading its version
Date: Mon, 18 Jun 2012 19:59:08 +0200 [thread overview]
Message-ID: <87ehpc1oyb.fsf@free.fr> (raw)
In-Reply-To: <1340017963.2420.29.camel@sauron.fi.intel.com> (Artem Bityutskiy's message of "Mon, 18 Jun 2012 14:12:43 +0300")
Artem Bityutskiy <dedekind1@gmail.com> writes:
> Let's probe Mike and Robert and see what they say.
Sure.
>> I retried NAND_BBT_ABSPAGE on my own driver, and it seems that this
>> code-path has no ability to *create* a bad block table where one
>> didn't exist previously. It simply reads whatever data is present at
>> the given page(s) (according to td->pages[]), regardless of ECC
>> errors, junk data, lack of BBT markers (i.e., "Bbt0" or "1tbB"), and
>> versioning.
OK, I can explain the driver behaviour, as it looks like it is the same on the
docg3.
The way I understand things are handled on diskonchip devices :
(1) the chip is manufactured
(2) the chip is factory-tested to check if there are any initial bad blocks
(3) the information which blocks are good/bad is written into the "One Time
Programmable" area of the chip
(4) the chip is shipped
Now, this 'Bad Block Table' (in the DoC meaning) is a table of factory bad
blocks. It doesn't include worn out blocks, as the OTP area is ... read-only.
To store worn out blocks, each filesystem implementation has to do something
smart. UBI has it way, SAFTL (docg3 fs) has its way, etc ...
But in the end, the bad block table is immutable, and represents factory bad
blocks, not up-to-date list of bad blocks.
And of course, as it is factory written, no ECC is required (it looks to me as a
fuse system there rather that pure NAND thing).
>> And no blocks are detected bad (simply because there was 0xff "table
>> data"). But then, I get even worse results if the uninitialized BBT
>> block has arbitrary (non-0xff) data! nand_bbt would just mark random
>> blocks as bad...
All "0xff" is the nominal situation, ie. you had a perfect chip shipped.
>> So, this "feature" seems severely limited - designed for a somewhat
>> static, pre-initialized BBT. I can probably survive by continuing to
>> ignore this eyesore, but I'd rather just fix it or kill it.
As you say, static pre-initialized BBT, that fits.
As to whether you should kill it or not, it's up to the maintainer of diskonchip
I suppose.
Cheers.
--
Robert
next prev parent reply other threads:[~2012-06-18 17:59 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-10 10:58 [PATCH] mtd: nand: Use the mirror BBT descriptor when reading its version Shmulik Ladkani
2012-06-10 17:02 ` Sebastian Andrzej Siewior
2012-06-11 5:59 ` Brian Norris
2012-06-12 10:42 ` Artem Bityutskiy
2012-06-13 0:42 ` Brian Norris
2012-06-18 11:12 ` Artem Bityutskiy
2012-06-18 17:59 ` Robert Jarzmik [this message]
2012-06-18 20:28 ` Artem Bityutskiy
2012-06-19 1:51 ` Mike Dunn
2012-06-24 18:52 ` Robert Jarzmik
2012-06-25 19:40 ` Mike Dunn
2012-06-26 15:41 ` Artem Bityutskiy
2012-06-19 1:40 ` Mike Dunn
2012-06-18 11:32 ` Artem Bityutskiy
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=87ehpc1oyb.fsf@free.fr \
--to=robert.jarzmik@free.fr \
--cc=bigeasy@linutronix.de \
--cc=computersforpeace@gmail.com \
--cc=dedekind1@gmail.com \
--cc=dwmw2@infradead.org \
--cc=linux-mtd@lists.infradead.org \
--cc=mikedunn@newsguy.com \
--cc=shmulik.ladkani@gmail.com \
/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 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.