[PATCH 0/8] Qi solve GTA02 dynparts compatability and parse idenity partition

Werner Almesberger werner at openmoko.org
Wed Feb 4 10:55:49 CET 2009

Andy Green wrote:
> If you run dynpart again in U-Boot it too recognizes the new bad blocks

There are two types of bad blocks: factory-marked bad blocks and
worn-out blocks. The bad block table uses two bits per block so
it can tell them apart.

The is_bad_block function in Qi would incorrectly treat worn-out
blocks that have been marked as such in the OOB area as factory bad
blocks and thus diverge from what u-boot thinks is going on.

However, given that we have a BBT, the kernel will mark worn-out
blocks only in the BBT, not in the OOB area.

So the partitions from Qi and u-boot will agree even though they're
using different methods for obtaining this information.

> Similarly you assume any other partition contents can just absorb the
> loss of one or more 128KBytes and I'm not sure that's going to be so
> going on, eg, kernel part + backup / menu rootfs.

Yes, the whole logic of having a guaranteed number of good blocks
falls apart when a block wears out. One more reason why dynamic
partitions are bad.

> erase cycles with ECC (which we don't use in Qi), compared to 100K erase
> / write endurance for any cell.

Hmm yes, we really should do the ECC. There's no telling how few
cycles you really get without it ...

> It illustrates raw NAND is evil and flaky as told many times here.

We better keep up the indoctrination so that people don't get ideas
about using all that precious NAND laying vacant in GTA03 ;-)

- Werner

More information about the openmoko-kernel mailing list