Re: [Yaffs] yaffs2 mount failure after sometime

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: ian@brightstareng.com
Date:  
To: Raj Kumar Yadav
CC: yaffs
Subject: Re: [Yaffs] yaffs2 mount failure after sometime
Raj,

On Thursday 02 August 2007 06:31, Raj Kumar Yadav wrote:
> On 7/31/07, <>

wrote:
> > On Tuesday 31 July 2007 07:16, Raj Kumar Yadav wrote:
> > > I am using ARM9 based board with 512MB large page(2K page,
> > > 256K Block) nand flash. The linux kernel version is 2.6.14
> > > with yaffs source on date July
> > > 12, 2007 from
> > > http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2/.
> >
> > <snip>
> >
> > > nandmtd2_ReadChunkWithTagsToNAND chunk 60290 data 00000000
> > > tags c0ae9ccc packed tags obj -1 chunk -1 byte -1 seq -1
> > > ext.tags eccres 0 blkbad 0 chused 0 obj 0 chunk0 byte 0
> > > del 0 ser 0 seq 0 Allocating from 472 2
> > > nandmtd2_ReadChunkWithTagsToNAND chunk 60289 data 00000000
> > > tags c0ae9ccc packed tags obj -1 chunk -1 byte -1 seq -1
> > > ext.tags eccres 0 blkbad 0 chused 0 obj 0 chunk0 byte 0
> > > del 0 ser 0 seq 0 Allocating from 472 1
> > > nandmtd2_ReadChunkWithTagsToNAND chunk 60288 data 00000000
> > > tags c0ae9ccc packed tags obj 117900047 chunk 117698535
> > > byte 117902083 seq 117905375 ext.tags eccres 3 blkbad 0
> > > chused 1 obj 117900047 chunk117698535 byte 117902083 del 0
> > > ser 0 seq 117905375
> > > yaffs: Tnodes added
> > > yaffs: yaffs_GutsInitialise() aborted.
> >
> > Some decoding...
> > The "ext.tags eccres 3" indicates that an underlying NAND
> > page read has failed with YAFFS_ECC_RESULT_UNFIXED (3).
> >  This may have come from the MTD's NAND read returning
> > -EBADMSG, or Yaffs's tags ecc test.  Probably the later
> > because this error is during the mount scan.  Either way,
> > the data read from chunk/page 60288 is bad.
>
> Thanks for pointing, I found that the block is bad but not
> marked as bad, I wrote and verify the data on the chunk number
> 60288 and found the nand ecc correction is failing.


Are you saying that, after erasing the block that contains the
'bad page', the page again fails to store data correctly? If so
then this really looks like a failure. If not, there are other
possibilities, like an incomplete write, not fully erased,
or corrupt data transfer during write.

> Do you think, it is necessary to enable the option "page
> verify after write" in nand driver under MTD layer. Will it
> solve the problem ?


Turning on verify while you figure out what's going is not a bad
idea. Verification costs however, the data is read back and
compared after the write, so there's additional i/o and CPU
involved. The NAND chip itself is supposed to check that the
write/erase is successful as the operation completes -- it
indicates this in a status byte that's read by MTD -- so it
should not be necessary to read back the data to verify the
write. Now there could be other issues outside the NAND chip
that cause data errors, in which case having MTD read-back and
verify data just written may be useful.

-imcd