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

Peter Billek (VI/SEA) peter.billek at ericsson.com
Tue Apr 27 09:42:20 CEST 2004

We are in the progress of starting to implement u-boot and will need NAND support as well.

As it looks at the moment we will access the NAND flash not in page boundaries, but rather with arbitrary offsets. 
At the moment we are using something similar to the boot command with is still a adaptation from former armboot.
We don't use ECC and also no FS, rather fixed addresses. However this has to change in the future, but for the moment we are just prototyping.
AS or the bad block cheeking, I would rather go for the relocation implementation rather than the erasing the complete chip.

I am looking forward to see how your work progresses and might commit to it in the future as well if I can.

Peter Billek
Board Level Design, Realtime SW
Local Design Center VIE
Ericsson Enterprise GmbH
mailto:peter.billek at ericsson.com

-----Original Message-----
From: u-boot-users-admin at lists.sourceforge.net
[mailto:u-boot-users-admin at lists.sourceforge.net]On Behalf Of Pantelis
Sent: Dienstag, 27. April 2004 09:08
To: Wolfgang Denk; U-Boot Users
Subject: [U-Boot-Users] [RFC] NAND Flash

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...



This SF.net email is sponsored by: The Robotic Monkeys at ThinkGeek
For a limited time only, get FREE Ground shipping on all orders of $35
or more. Hurry up and shop folks, this offer expires April 30th!
U-Boot-Users mailing list
U-Boot-Users at lists.sourceforge.net

More information about the U-Boot mailing list