[U-Boot] NAND issues

Scott Wood scottwood at freescale.com
Fri Feb 13 21:37:30 CET 2009


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


More information about the U-Boot mailing list