[Yaffs] [PATCH] YAFFS2 to work with current MTD
Vitaly Wool
vitalywool at gmail.com
Tue Jul 18 12:35:47 BST 2006
Hi Karl,
> In the read and write functions, isn't the "if (dev->useNANDECC)"
> unnecessary since the yaffs2 code only supports the MTD ECC?
I thought YAFFS2 was also capable of doing its own ECC. Anyway, I was
aiming to preserve functionality and only make things work with the
curernt MTD stack.
> And in the write function, you write the data and tags using separate mtd
> calls. This means (at least for normal NAND) that the spare area is written
> twice, first with data ecc, and then with tags. Wouldn't something like
> this be better, since write_oob() can write both in one go? Note that tags
> is never NULL.
There definitely is rationale in your words. Though, as far as I
thought, tags might be NULL, but anyway tags were never written
without writing data.
I was trying to do writing both data and tags in one call but I wasn't
successful. Later I discovered that the problem was outside YAFFS and
submitted the patch fixing it linux-mtd, so now everything is ready to
do that in a better way (ie as you propose).
>
> /* Write data and oob area, or only oob area */
> yaffs_PackTags2 (&pt, tags);
> ops.mode = MTD_OOB_AUTO;
> ops.oobbuf = (void *)&pt;
> ops.ooblen = sizeof(pt);
> ops.len = data ? dev->nBytesPerChunk : sizeof(pt);
> ops.ooboffs = 0;
> ops.datbuf = (uint8_t *)data;
> retval = mtd->write_oob (mtd, addr, &ops);
Well, a bit differently, but still... please find the updated patch attached.
Thanks for feedback!
Best regards,
Vitaly
-------------- next part --------------
A non-text attachment was scrubbed...
Name: yaffs2-new.patch
Type: text/x-patch
Size: 14737 bytes
Desc: not available
Url : http://lists.aleph1.co.uk/pipermail/yaffs/attachments/20060718/6cb6ee16/yaffs2-new.bin
More information about the yaffs
mailing list