On Thursday 27 January 2005 20:52, Abhishek Bhattacharya wrote: > Hello > > Form the code of yaffs2, direct interface, it looks like there is no > function like yaffs_LoadTagsIntoSpare(). > Instead in "yaffs_flashif.c", an attempt is made to write to the flash > with tags. > > How does this spare concept get replaced by Extended tags? In YAFFS, the yaffs_guts did the job of stuffing tags into a "spare" area. This worked OK-ish for the fixed 512 byte page size, but has some problems: 1) The "spare" atructure included ECC placement etc which made it messy trying to work with mtd and alternative ECC schemes (like hardware ECC etc). 2) It did not really work well for larger page sizes. 3) It did not work well for alternative bad block marking methods. So, for YAFFS2 I moved all the "spare awareness" out of yaffs-guts. Instead, a more abstract ExtendedTags structure is passed throughthe NAND glue is responsible for the job. yaffs_packedtags1.c is used for packing extended tags into old Spare strucutres. yaffs_packedtags2.c is appropriate for use with 2K NAND devices. > > Is it necessary to use pack and unpack tags for yaffs2 , or can we > directly pass a pointer to > extended tags to the driver? > Which pack, unpack routine should be used for yaffs2? You can't store extended tags directly since some of the flags (eg. blockBad, chunkUsed, eccResult) must be computed. See yaffs_packedtags2.c > > > I am using 128 MB NAND flash ( 2K + 64) bytes page