[U-Boot] Q: NAND read/write: unaligned offset

Ran Shalit ranshalit at gmail.com
Fri Jul 1 22:31:09 CEST 2011


For writes, you'll need to do a read-modify-write sequence on the entire
block, after you determine what the proper block is given prior
block-skipping.  Or better, don't try to use this simplistic mechanism to
do writes in the middle of a partition -- use something like ubi that was
meant for this.
-Scott

> Thank you for the kind reply. Is it also possible instead of using
> read-modify-write which you've suggested, just to call the
> nand_write_skip_bad (the patch version) with 0xFFFF...  at the start of
> partition, so that nand_write_skip_bad is given aligned offset & unaligned
> length? As I undesratnd, an attempt to write "ff" in nand will result in
no
> change of data.

This will result in improper ECC being written.

-Scott

I might be missing something...
 When using nand_write_skip_bad, the aligned offset refers to page (not
sector or block), so if as I understand , I can read from the start of page
the whole relevant data, then modify only the parts which is changed, and
then write it again, but the writing is not for the entire block: I will use
the  nand_write_skip_bad given offset of  the start of page, and length will
be the unaligned length for the whole data being written (which is part of
the entire block).

Ran


More information about the U-Boot mailing list