Sorry for the premature post on this - it turned out to be entirely my fault - my NAND driver was messing up auto oob placement, and also I was using mtd partitions which were getting in between my driver & YAFFS. After fixing the bug & dropping partitions, it all seems to work fine. Regards, Andre Andre Renaud wrote: > Hi, > I'm developing a new MTD/NAND driver under Linux based on highly > customised interface. Unfortunately this means that I cannot re-use the > existing NAND subsystem (although I can reuse the MTD bits). > > As a result of this I'm reimplementing read_oob/write_oob etc... from > scratch. They appear to be working in broad terms (I can read/write raw > data acceptably), however I think I've still got some issues relating to > MTD_OOB_AUTO / MTD_OOB_PLACE for oob data placement. As such I don't > seem to be able to use the device with YAFFS. > > As soon as I attempt to touch a file on my yaffs partition it goes > haywire, believing that all of the blocks are not erased properly. > > Here is some of the output (with full debugging enabled): > yaffs locking c78f9840 > yaffs locked c78f9840 > yaffs_lookup for 1:foo > yaffs unlocking c78f9840 > yaffs_lookup not found > yaffs_create > yaffs_mknod: parent object 1 type 3 > yaffs_mknod: making oject for foo, mode 81a4 dev 0 > yaffs locking c78f9840 > yaffs locked c78f9840 > yaffs_mknod: making file > yaffs: Tnodes added > yaffs_MarkSuperBlockDirty() sb = c791ea00 > Allocated block 1, seq 4097, 126 left > nandmtd2_ReadChunkWithTagsFromNAND chunk 0 data c79a8000 tags c7955ae0 > 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 > packed tags obj -1 chunk -1 byte -1 seq -1 > ext.tags eccres 1 blkbad 0 chused 0 obj 0 chunk0 byte 0 del 0 ser 0 seq 0 > Chunk 64 not erased > **>> yaffs chunk 64 was not erased > line 1018 delete of chunk 64 > Allocated block 2, seq 4098, 125 left > nandmtd2_ReadChunkWithTagsFromNAND chunk 64 data c79a8000 tags c7955ae0 > 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 > packed tags obj -1 chunk -1 byte -1 seq -1 > ext.tags eccres 1 blkbad 0 chused 0 obj 0 chunk0 byte 0 del 0 ser 0 seq 0 > Chunk 128 not erased > **>> yaffs chunk 128 was not erased > line 1018 delete of chunk 128 > Allocated block 3, seq 4099, 124 left > nandmtd2_ReadChunkWithTagsFromNAND chunk 128 data c79a8000 tags c7955ae0 > 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 > packed tags obj -1 chunk -1 byte -1 seq -1 > ext.tags eccres 1 blkbad 0 chused 0 obj 0 chunk0 byte 0 del 0 ser 0 seq 0 > Chunk 192 not erased > **>> yaffs chunk 192 was not erased > > > > Here is a copy of /proc/yaffs (from just prior to running the touch > command): > > YAFFS built:Jun 14 2010 14:09:20 > > > Device 0 "Stack0" > startBlock......... 0 > endBlock........... 127 > totalBytesPerChunk. 16384 > useNANDECC......... 1 > noTagsECC.......... 0 > isYaffs2........... 1 > inbandTags......... 0 > emptyLostAndFound.. 0 > disableLazyLoad.... 0 > refreshPeriod...... 500 > nShortOpCaches..... 10 > nReservedBlocks.... 5 > > nDataBytesPerChunk. 16384 > chunkGroupBits..... 0 > chunkGroupSize..... 1 > nErasedBlocks...... 127 > blocksInCheckpoint. 0 > > nTnodesCreated..... 0 > nFreeTnodes........ 0 > nObjectsCreated.... 100 > nFreeObjects....... 96 > nFreeChunks........ 8128 > > nPageWrites........ 0 > nPageReads......... 0 > nBlockErasures..... 0 > nGCCopies.......... 0 > allGCs............. 0 > passiveGCs......... 0 > oldestDirtyGCs..... 0 > backgroundGCs...... 0 > nRetriedWrites..... 0 > nRetireBlocks...... 0 > eccFixed........... 0 > eccUnfixed......... 0 > tagsEccFixed....... 0 > tagsEccUnfixed..... 0 > cacheHits.......... 0 > nDeletedFiles...... 0 > nUnlinkedFiles..... 0 > refreshCount....... 1 > nBackgroudDeletions 0 > > Any hints as to where I could have made a mistake? > > Regards, > Andre > -- Bluewater Systems Ltd - ARM Technology Solution Centre Andre Renaud 5 Amuri Park, 404 Barbadoes St andre@bluewatersys.com PO Box 13 889, Christchurch 8013 http://www.bluewatersys.com New Zealand Phone: +64 3 3779127 Freecall: Australia 1800 148 751 Fax: +64 3 3779135 USA 1800 261 2934