[U-Boot] NAND bad environment block handling

Schlaegl Manfred jun. manfred.schlaegl at gmx.at
Sun Jan 11 12:10:54 CET 2009


Hi!
Am Donnerstag, den 08.01.2009, 07:19 -0800 schrieb Frans Meulenbroeks:
> 
> Has someone experience in this area? Ideas? Suggestions?

1. For our systems we assume, that the env-block never gets bad in
productive use, because the env-block is never written again. So we
reduced the problem to number of initial/factory bad blocks.
2. the partitioning and environment-saving is done at production-time.
3. we put the environment in the last good block of the device. The
search starts at the end of device and ends at the last block of the
last data-partition with an error.


Example-Partition-Table on an 32MB-NAND, with blocksize 16kb and max. 45
factory bad-blocks:
 * the part-size means the possible data size (without bad-blocks). 
 * the real partition-size on device depends on the bad-blocks in this
the partition and is calculated automatically at production-time
(partition generation).

part-size      partition
 200kb:         uboot
 1000kb:        kernel
 15000kb:       rootfs
 15832kb:       datafs
rest of device: rest (maximal 45*16kb (max bad blocks) + 16bk (envblock)
= 736kb

with an increasing number of initial/factory bad-blocks the
rest-partition shrinks. So the env-block can be written on any
nand-device without less than 45 (initial/factory) bad-blocks.


> 
> Thanks alot!
> Frans Meulenbroeks
> 

- Manfred



More information about the U-Boot mailing list