Thread (33 messages) flat view 33 messages, 5 authors, 2011-12-20

Re: [PATCH 3/3] mtd/nand : workaround for Freescale FCM to support large-page Nand chip

From: Li Yang <hidden>
Date: 2011-12-15 04:59:27
Also in: lkml

On Thu, Dec 15, 2011 at 4:15 AM, Scott Wood [off-list ref] wrote=
:
On 12/14/2011 02:41 AM, LiuShuo wrote:
quoted
=E4=BA=8E 2011=E5=B9=B412=E6=9C=8813=E6=97=A5 10:46, LiuShuo =E5=86=99=
=E9=81=93:
quoted
quoted
=E4=BA=8E 2011=E5=B9=B412=E6=9C=8813=E6=97=A5 05:30, Scott Wood =E5=86=
=99=E9=81=93:
quoted
quoted
quoted
On 12/12/2011 03:19 PM, Artem Bityutskiy wrote:
quoted
On Mon, 2011-12-12 at 15:15 -0600, Scott Wood wrote:
quoted
NAND chips come from the factory with bad blocks marked at a certain
offset into each page. =C2=A0This offset is normally in the OOB area=
, but
quoted
quoted
quoted
quoted
quoted
since we change the layout from "4k data, 128 byte oob" to "2k
data, 64
byte oob, 2k data, 64 byte oob" the marker is no longer in the
oob. =C2=A0On
first use we need to migrate the markers so that they are still in
the oob.
Ah, I see, thanks. Are you planning to implement in-kernel migration =
or
quoted
quoted
quoted
quoted
use a user-space tool?
That's the kind of answer I was hoping to get from Shuo. :-)
OK, I try to do this. Wait for a couple of days.

-LiuShuo
I found it's too complex to do the migration in Linux driver.

Maybe we can add a uboot command (e.g. nand bbmigrate) to do it, once is
enough.
Any reason not to do it automatically on the first U-Boot bad block
scan, if the flash isn't marked as already migrated?

Further discussion on the details of how to do it in U-Boot should move
to the U-Boot list.
The limitation of the proposed bad block marker migration is that you
need to make sure the migration is done and only done once.  If it is
done more than once, the factory bad block marker is totally messed
up.  It requires a complex mechanism to automatically guarantee the
migration is only done once, and it still won't be 100% safe.

I would suggest we use a much easier compromise that we form the BBT
base on the factory bad block marker on first use of the flash, and
after that the factory bad block marker is dropped.  We just relies on
the BBT for information about bad blocks.  Although by doing so we
can't regenerate the BBT again,  as there is mirror for the BBT I
don't think we have too much risk.

- Leo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help