Hi Charles,
>
> First off, please pick up the latest from cvs. The most recent patches should
> not be material to the issues you are dealing with but they might be
> confusing things a bit.
>
I have compiled in the latest version of YAFFS as of what was in the public
repository Aug 6th and loaded it on my board. I've been testing the filesystem
by untarring an archive and repeatedly copying the directory to new directories,
removing some of them, and then continuing copying. Things seems to be working
fine. When I went to go remove everything from NAND and give the board to one
of the other developers I got some more bad messages from YAFFS.
/mnt/nand # \rm -rf *
**>> Erasure failed 3515
**>> Block 3515 retired
Block 3515 is in state 9 after gc, should be erased
**>> Erasure failed 4201
**>> Block 4201 retired
Block 4201 is in state 9 after gc, should be erased
**>> Erasure failed 8045
**>> Block 8045 retired
Block 8045 is in state 9 after gc, should be erased
/proc/yaffs is reporting:
/mnt/nand # cat /proc/yaffs
YAFFS built:Aug 6 2009 12:52:21
$Id: yaffs_fs.c,v 1.81 2009-05-26 01:22:44 charles Exp $
$Id: yaffs_guts.c,v 1.87 2009-07-29 04:30:24 charles Exp $
Device 0 "NAND 1GiB 3,3V 8-bit"
startBlock......... 0
endBlock........... 8191
totalBytesPerChunk. 4096
nDataBytesPerChunk. 4096
chunkGroupBits..... 0
chunkGroupSize..... 1
nErasedBlocks...... 3834
nReservedBlocks.... 5
blocksInCheckpoint. 0
nTnodesCreated..... 41600
nFreeTnodes........ 26625
nObjectsCreated.... 71100
nFreeObjects....... 45012
nFreeChunks........ 456051
nPageWrites........ 0
nPageReads......... 0
nBlockErasures..... 4733
nGCCopies.......... 776
garbageCollections. 1513
passiveGCs......... 1513
nRetriedWrites..... 0
nShortOpCaches..... 10
nRetireBlocks...... 3
eccFixed........... 0
eccUnfixed......... 0
tagsEccFixed....... 0
tagsEccUnfixed..... 0
cacheHits.......... 0
nDeletedFiles...... 0
nUnlinkedFiles..... 89898
nBackgroudDeletions 0
useNANDECC......... 1
isYaffs2........... 1
inbandTags......... 0
I ran nanddump from mtd-utils, and it is reporting that there were a bunch of
ECC errors while reading NAND:
/mnt/zen/mtd-utils # ./nanddump /dev/mtd12 > /dev/null
ECC failed: 6144
ECC corrected: 0
Number of bad blocks: 13
Number of bbt blocks: 0
Block size 262144, page size 4096, OOB size 128
Dumping data starting at 0x00000000 and ending at 0x80000000...
Do you have anymore hints? I'm running out of ideas. I'm starting to wonder if
there is something fishy about these NAND parts (MT2916G08DAA). I am testing
across 3 boards, so it isn't limited to one particular part or board. This part
has been EOL'd by Micron and there is a recommended replacement. I wonder if
the replacement will show the same issues.
Our NAND driver is pretty simple and mainly uses the functions defined by
nand_base, and has worked fine with ST NAND parts. When I was testing the block
device directly with dd, I wasn't able to turn up any obvious issues, though I'm
going to look into that a bit further.
Thanks,
Andrew McKay