Hello all,
 
When I traced code of function yaffs_scan() in YAFFS2 source code:

----------------------------------------------------------------

yaffs_Scan -> yaffs_QueryInitialBlockState -> nandmtd2_QueryNANDBlock -> nandmtd2_ReadChunkWithTagsFromNAND

----------------------------------------------------------------

 
In function nandmtd2_ReadChunkWithTagsFromNAND(), it writes:

----------------------------------------------------------------

       yaffs_PackedTags2 pt;

       ¡­¡­

       if(tags)

              retval = mtd->read_oob(mtd,addr,mtd->oobsize,&dummy,dev->spareBuffer);

       ¡­¡­

       memcpy(&pt,dev->spareBuffer,sizeof(pt));

----------------------------------------------------------------
 

Value of "sizeof(pt)" is 32Bytes. So I have 2 questions:

1.       Do the forhead 32B data stored in spare area of each page of NAND Device can 1-1 map to member variables of structure yaffs_PackedTags2?

2.       For small page NAND Device, there are ONLY 16B for spare area, how could execute

memcpy(&pt,dev->spareBuffer,sizeof(pt));

for them?

Does YAFFS2 can only support Large-Page NAND?
 
Thanks!