[PATCH v3] Fix mtd-utils bugs

Artem Bityutskiy dedekind1 at gmail.com
Sun Jul 18 04:40:14 EDT 2010


On Sun, 2010-06-20 at 20:22 +0800, Stanley.Miao wrote:
> Changes from V2:
> 1, Get the linux version via uname() according to Joakim Tjernlund.
> 2, Set the default version the latest version according to Joakim Tjernlund.
> 
> The "struct nand_oobinfo" is able to record only 32 ECC code positions,which
> is not enough for many big NAND chips. Therefore, this structure is replaced
> by "struct nand_ecclayout" in linux kernel from the version 2.6.17.
> Consequently, the ioctl command changed from MEMGETOOBSEL to ECCGETLAYOUT.
> 
> Now update nandwrite to use the new ioctl command ECCGETLAYOUT. In order to
> keep compatible with the old linux kernel, a linux version detection function
> is added.
> 
> YAFFS and JFFS2 has updated and we don't need the arguments "forcelegacy",
> "forcejffs2", "forceyaffs" anymore. Now clean them up. 

Stanley, sorry that this all takes so long time, I do not have enough
time. Basically, Kevin's patches are almost there, I sent him 2 other
patches, as soon as he reviews them, they should go in. Then you can
start using libmtd for your purposes as well. You'll need to extend it a
bit, though.

Vs. uname() - I do not really like this idea, because kernel version
does not cover the case when ECCGETLAYOUT is back-ported to older
kernels.

Try to use similar technique as Kevin used - just call ECCGETLAYOUT
ioctl, and if it returns ENOTTY, this ioctl is not supported. See also
offs64_ioctl flag handling in my patches to Kevin (sent 1 yesterday, and
1 today).

-- 
Best Regards,
Artem Bityutskiy (Артём Битюцкий)




More information about the linux-mtd mailing list