On Saturday 24 October 2009 05:05:35 Babrian Viktor wrote:
> e a uC with a nand flash controller that computes ECC on the
> whole page at once. It has no separate bytes for spare area ECC. Which
> means that oob data cannot be written separately. Yaffs is going to be
> used on this chip and the question is that does yaffs write oob data
> separately? I looked into the sources and I see write_oob() function calls
yaffs1 writes tags seperately when it writes deletion markers.
yaffs2 only ever writes tags together with data.
The write_oob() call does not only write the oob area, it also writes the
data. From yaffs_mtdif2.c:
ops.mode = MTD_OOB_AUTO;
ops.ooblen = (dev->inbandTags) ? 0 : packed_tags_size;
ops.len = dev->totalBytesPerChunk;
ops.ooboffs = 0;
ops.datbuf = (__u8 *)data;
ops.oobbuf = (dev->inbandTags) ? NULL : packed_tags_ptr;
retval = mtd->write_oob(mtd, addr, &ops);
-- CHarles