[U-Boot] NAND issues

Scott Wood
2009-02-13T20:37:30Z

On Fri, Feb 13, 2009 at 10:39:34AM -0700, Derek Ou wrote:
> 1) The nand_util.c does not have WATCHDOG_RESET() in the
> nand_read_skip_bad() and nand_write_skip_bad() while the original
> nand_write_opts() and nand_read_opts() do. Is there a special reason
> this is removed? It's likely that watchdog will fail when trying to
> read/write large files from NAND.

That's just an oversight -- patch welcome.

> 2) "nand write.jffs2" used to allow writing non page-aligned data. So
> we can have scripts like "tftp 0x22000000 u-boot.bin" and "nand
> write.jffs2 0x22000000 0x20000 $(filesize)" to automate downloading
> files to NAND. Now, "nand write(.jffs2)" and nand_write_skip_bad()
> rejects non page-aligned write. I think we have to either pad the
> binary file to page-aligned or re-write nand_write_skip_bad(). Is there
> another way/parameter to write non page-aligned data?

You can't write non-page-aligned data and still generate a proper ECC.
However, the nand command should do the padding itself. Again, patch
welcome. :-)

> 3) In common/cmd_nand.c, nand_load_image() starting at at line 492 call
> nand_read() at line 514 and line 547. Does it mean that
> nand_load_image() will read NAND bad blocks? Should they be
> nand_read_skip_bad() instead? Especially, line 546 has this comment
> /* FIXME: skip bad blocks */

Yes, it should be nand_read_skip_bad().

-Scott