JFFS2 and bad blocks
tglx at linutronix.de
Mon Jan 6 13:59:08 EST 2003
On Monday 06 January 2003 18:04, simon at baydel.com wrote:
> I download the CVS stuff mid December and again today. The
> hardware ran ok before and could use jffs2 without errors but as I
> added files it was slow and I could not make file systems on
> partitions which contained bad blocks.
> The new CVS code seems to be much quicker and I can erase,
> mount and copy files to my new filesystem without error. I have set
> up the specific driver to do soft ecc. I noticed that when I reboot the
> system and the filesystem gets mounted I get errors. The more
> writes that occur the more errors I seem to get. I ran a test for a
> week or so over the break which generated log files. A reboot after
> this produced thousands of errors but the filesystem seemed ok.
> The errors are something like
> Empty flash at 0x00469ffcb ends at 0x0046a000
This happens due to NAND specific timed buffer flushing. JFFS2 fills up the
write buffer to a full page boundary with 0xff and writes out the buffer to
the chip, if you have no consecutive write within 2 seconds. This is done to
ensure, that data is written to FLASH. This fill looks like empty FLASH on
mount. So JFFS2 is wondering why there is data after the "empty" FLASH.
No reason to worry.
> jffs2_scan_dirent_node(): Node CRC failed on node at 0x0046a7f0
> read 0xffffffff calculated 0xdec8161b
This happens, if the write buffer is not written to FLASH before you power
down your system without umount. Then the write buffer is lost and you get
this error on mount. This indicates, that you may have lost data.
> I was wondering if any of you could shed any light on this.
linutronix - competence in embedded & realtime linux
mail: tglx at linutronix.de
More information about the linux-mtd