[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