[U-Boot] [PATCH v3] NAND: environment offset in OOB (CONFIG_ENV_OFFSET_OOB)

Vipin KUMAR vipin.kumar at st.com
Thu Jul 1 05:37:00 CEST 2010


On 7/1/2010 3:02 AM, Ben Gardiner wrote:
> This is a re-submission of the patch by Harald Welte
> <laforge at openmoko.org> with minor modifications for rebase and changes
> as suggested by Scott Wood <scottwood at freescale.com> [1] [2].
> 
> This patch enables the environment partition to have a run-time dynamic 
> location (offset) in the NAND flash.  The reason for this is simply that 
> all NAND flashes have factory-default bad blocks, and a fixed compile 
> time offset would mean that sometimes the environment partition would 
> live inside factory bad blocks. Since the number of factory default 
> blocks can be quite high (easily 1.3MBytes in current standard 
> components), it is not economic to keep that many spare blocks inside 
> the environment partition.
> 
> With this patch and CONFIG_ENV_OFFSET_OOB enabled, the location of the
> environment partition is stored in the out-of-band (OOB) data of the
> first block in flash. Since the first block is where most systems boot
> from, the vendors guarantee that the first block is not a factory
> default block.
> 
> This patch introduces the 'nand env.oob' command, which can be called from
> the u-boot command line. 'nand env.oob get' reads the address of the
> environment partition from the OOB data,
> 'nand env.oob set {offset,partition-name}' allows the setting of the marker
> by specifying a numeric offset or a partition name.
> 

Hello Ben,

This is a nice idea. I see that the logic needs 8bytes at offset 0 in block 0 
oob area. This means that it would also overwrite the offset 5 (which is the 
bad block marker in case of small page devices) and offset 0 (bad block marker 
in large page devs)

Am I missing something here

Regards
Vipin


More information about the U-Boot mailing list