Its possible that the file system in FLASH is corrupted to a point that you might need to wipe it clean. Try to erase the entire partition either at U-boot command line or from a USB/RAM disk booted Linux.
U-boot:
nand erase 0x400000 0x7c00000
Linux RAM disk boot:
eraseall /dev/mtd2
Linux USB Debian boot:
flash_eraseall /dev/mtd2
Linux USB Debian boot does not work:
flash_eraseall /dev/mtd2
flash_eraseall: command not found
Tried from U-boot:
----------------------------------------------------------------
U-Boot> nand erase 0x400000 0x7c00000
NAND erase: device 0 offset 0x400000, size 0x7c00000
Skipping bad block at 0x015a0000
Skipping bad block at 0x05200000
Skipping bad block at 0x05920000
Erasing at 0x7fe0000 -- 100% complete.
OK
----------------------------------------------------------------
It seems that the flash has "bad blocks". What does it mean?
Can I use it anyway?
After this erase, I copied with success all my debian-usb root fs into the JFFS2 internal flash, and it works.