
I have a few issues/questions regarding the NAND commands in the latest git main tree. 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.
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?
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 */
Thanks, Derek

On Fri, Feb 13, 2009 at 10:39:34AM -0700, Derek Ou wrote:
- 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.
- "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. :-)
- 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
participants (2)
-
Derek Ou
-
Scott Wood