On Thursday 07 July 2005 07:00,
yaffs-request@stoneboat.aleph1.co.uk wrote:
> I know this will make you cringe, but just so you know....
> I have taking 2.6 mtd and yaffs2 code and back ported them to
> the 2.4 kernel.
> I know someone will suggest that I switch to 2.6, but that is
> not an option for me.
I am having to do something similar. We have been using YAFFS1
on a 2.4.24 base with MTD from November 2004. Now we need large
block support (YAFFS2). I took the last version of MTD that was
said to run with 2.4 (cvs update -dP -D 2005-03-04) and I fixed
it up to run with YAFFS2. I suspect that the MTD user base is
primarily 2.4 based embedded systems and support for 2.4 will be
needed for a long time yet.
There seem to be a number of issues with the interface between
the filesystem (YAFFS) and MTD (2005-03-04). The most
significant is with MTD's mtd->read_oob function, i.e.
nand_read_oob(). JAFFS2 needs 'autoplacement' functionality on
this function (used during initial scan to examine tags), but
MTD uses it internally (bad block scan etc.) and that requires
read_oob to provide raw oob/spare data. I hacked nand_read_oob()
to do autoplacement when called by yaffs (using a null retlen
ptr as a hack to signal need for autoplacement).
There are a number of other areas where the API between the
filesystem (yaffs) and MTD are broken. I know there is a lot of
focus on developing JFFS3, but I think MTD itself should be
fully revised. Linux MTD has evolved and lessons have been
learned -- memory technology devices are evolving. MTD needs
re-layering with cleaner abstractions between the layers. If
this were done, it would be easy to support MTD on different
major revisions of Linux, and it may port easily to other
platforms (as yaffs does).
-imcd