[U-Boot-Users] [RFC] NAND Flash

Pantelis Antoniou panto at intracom.gr
Tue Apr 27 09:08:20 CEST 2004

Hello there.

As you remember earlier I have sent a small patch for the NAND
portion of u-boot.

This forced me to really take a hard look at the code and really
evaluate it.

The big problem with the code as it is its its tendancy not to
account properly for errors which are not only probable but
certain during the life of the device.

For example the current code cannot boot reliably from NAND
and the read and write routines are also unreliable.

It's basic assumption made that you can read/write from the NAND
at any position is false. This is impossible because of
the bad blocks that may force you to skip a bad sector.

I'm currently in the process of rewritting to actually make it
work reliably.

I can keep backwards compatibility with the old code but
you can only use it at your own risk.

I'm asking for any people currently working with NAND to comment
on the following points:

1. Do you read and write the NAND at arbitrary offsets?
   That means not in page boundaries.

2. Do you use the NAND boot command? It can be replaced by a copy and
   bootm sequence.

3. Do you use it as a raw device without employing ECC? Do you
   understand the implications?

4. What kind of filesystem do you use? JFFS2 & YAFS have different OOB
   placement of ECC and status bits?

5. What kind of bad block management options would you like? I'm thinking
   of implementing a bad block detection mechanism which would erase and
   test the whole chip for any bad blocks.
   Another command could also utilise ECC to detect borderline working
   pages and relocate them to avoid a permanent failure.

Awaiting your input...



More information about the U-Boot mailing list