Hi, 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/. The unpatched file yaffs2/yaffs_mtdif2.c is updated with yaffs2/patches/yaffs_mtdif2.c with some variable name fix to make is compilable. The yaffs cofiguration is as follows: CONFIG_YAFFS_FS=y CONFIG_YAFFS_YAFFS1=y # CONFIG_YAFFS_DOES_ECC is not set CONFIG_YAFFS_YAFFS2=y CONFIG_YAFFS_AUTO_YAFFS2=y # CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10 # CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set # CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y # CONFIG_JFFS_FS is not set In the nand flash, there are 5 partition with last partition as ~450MB. The kernel boots up from 2nd partition which have readonly yaffs2 image as rootfs. After bootup, we are mounting this ~450MB partition as yaffs2 and do read/write operation as needed. We are sometime shutting down the board without unmounting the ~450MB partition. After many mount/read/write/unmount, the device failes in mounting the ~450MB partition with following logs. / # mount -t yaffs2 /dev/mtdblock4 /pvr yaffs: dev is 32505860 name is "mtdblock4" yaffs: passed flags "" yaffs: Attempting MTD mount on 31.4, "mtdblock4" mount: Mounting /dev/mtdblock4 on /pvr failed: Invalid argument / # The cat /proc/yaffs is as follows: / # cat /proc/yaffs YAFFS built:Jul 25 2007 22:51:08 $Id: yaffs_fs.c,v 1.2 2007/07/12 15:03:10 msingh Exp $ $Id: yaffs_guts.c,v 1.2 2007/07/12 15:03:10 msingh Exp $ Device 0 "" startBlock......... 0 endBlock........... 127 nDataBytesPerChunk. 2048 chunkGroupBits..... 0 chunkGroupSize..... 1 nErasedBlocks...... 54 nReservedBlocks.... 5 nCheckptResBlocks.. 10 blocksInCheckpoint. 0 nTnodesCreated..... 800 nFreeTnodes........ 70 nObjectsCreated.... 400 nFreeObjects....... 89 nFreeChunks........ 7088 nPageWrites........ 0 nPageReads......... 0 nBlockErasures..... 3 nGCCopies.......... 384 garbageCollections. 3 passiveGCs......... 3 nRetriedWrites..... 0 nShortOpCaches..... 10 nRetireBlocks...... 0 eccFixed........... 0 eccUnfixed......... 0 tagsEccFixed....... 0 tagsEccUnfixed..... 0 cacheHits.......... 0 nDeletedFiles...... 0 nUnlinkedFiles..... 2 nBackgroudDeletions 0 useNANDECC......... 1 isYaffs2........... 1 Device 1 "Àü&À" startBlock......... 0 endBlock........... 19 nDataBytesPerChunk. 2048 chunkGroupBits..... 0 chunkGroupSize..... 1 nErasedBlocks...... 15 nReservedBlocks.... 5 nCheckptResBlocks.. 10 blocksInCheckpoint. 0 nTnodesCreated..... 100 nFreeTnodes........ 46 nObjectsCreated.... 200 nFreeObjects....... 86 nFreeChunks........ 2034 nPageWrites........ 0 nPageReads......... 0 nBlockErasures..... 1 nGCCopies.......... 6 garbageCollections. 1 passiveGCs......... 0 nRetriedWrites..... 0 nShortOpCaches..... 10 nRetireBlocks...... 0 eccFixed........... 0 eccUnfixed......... 0 tagsEccFixed....... 0 tagsEccUnfixed..... 0 cacheHits.......... 0 nDeletedFiles...... 0 nUnlinkedFiles..... 0 nBackgroudDeletions 0 useNANDECC......... 1 isYaffs2........... 1 Device 2 "À¯XÀ ¾(Àè½(À¾(À ¾(Àô½(ÀpŒ À°Àh¶:À" startBlock......... 0 endBlock........... 1837 nDataBytesPerChunk. 2048 chunkGroupBits..... 0 chunkGroupSize..... 1 nErasedBlocks...... 1806 nReservedBlocks.... 5 nCheckptResBlocks.. 10 blocksInCheckpoint. 0 nTnodesCreated..... 400 nFreeTnodes........ 225 nObjectsCreated.... 300 nFreeObjects....... 76 nFreeChunks........ 234418 nPageWrites........ 0 nPageReads......... 0 nBlockErasures..... 0 nGCCopies.......... 0 garbageCollections. 0 passiveGCs......... 0 nRetriedWrites..... 0 nShortOpCaches..... 10 nRetireBlocks...... 0 eccFixed........... 0 eccUnfixed......... 0 tagsEccFixed....... 0 tagsEccUnfixed..... 0 cacheHits.......... 4 nDeletedFiles...... 112 nUnlinkedFiles..... 114 nBackgroudDeletions 0 useNANDECC......... 1 isYaffs2........... 1 / # The detailed mount logs with all trace enabled (ech0 all > /proc/yaffs) is attached in the mail. / # mount -t yaffs2 /dev/mtdblock4 /mnt yaffs: dev is 32505860 name is "mtdblock4" yaffs: passed flags "" yaffs_read_super: Using yaffs2 yaffs_read_super: block size 4096 yaffs: Attempting MTD mount on 31.4, "mtdblock4" erase c014714c read c014685c write c0146c48 readoob c0146ae8 writeoob c0146e14 block_isbad c014734c block_markbad c01473a0 oobblock 2048 oobsize 64 erasesize 262144 size 481820672 yaffs: yaffs_GutsInitialise() ... ... 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. yaffs_read_super: guts initialised FAILED mount: Mounting /dev/mtdblock4 on /pvr failed: Invalid argument / # According to the logs It seems the issue due to uncleaned shutdown and check-pointing. All suggestions are Welcome. Thanks, Raj Kumar Yadav