[PATCH v3 06/10] mtd: fix the wrong mtd->type for nand chip
Huang Shijie
b32955 at freescale.com
Wed Aug 28 02:59:24 EDT 2013
于 2013年08月28日 11:08, Brian Norris 写道:
> Since we may see a v4 anyway, I'll make a comment here that I've been
> mulling over.
>
> On 08/26/2013 02:36 AM, Huang Shijie wrote:
>> Current code sets the mtd->type with MTD_NANDFLASH for both
>> SLC and MLC. So the jffs2 may supports the MLC nand, but in actually,
>> the jffs2 should not support the MLC.
>>
>> This patch uses the nand_is_slc() to check the nand cell type,
>> and set the mtd->type with the right nand type.
>>
>> After this patch, the jffs2 only can support the SLC nand.
>>
>> Signed-off-by: Huang Shijie <b32955 at freescale.com>
>
> This patch doesn't note here that it is breaking the ABI: it is the
> first (AFAIK; I don't think onenand ever actually had MLC, right?)
> patch to cause an MTD to show up as MTD_MLCNANDFLASH (and "unknown" in
> sysfs -- but you change this later to "mlc-nand"). This should be made
> more clear, if we're going to do this. And you should document and
> explain it *before* this patch.
okay.
>
> But more importantly, you don't really answer this question I have:
> why we want to expose this MTD_MLCNANDFLASH type to user-space? It
> seems you need this for internal drivers' usage and for JFFS2 (both
> valid reasons). But exporting it to user-space just makes us work to
> change mtd-utils (and any other scripts that might rely on these
> types). Note that not everybody upgrades mtd-utils along with their
> kernel.
>
After we change the code with this patch, the SLC still expose the
'nand' to the user space, it's ok;
but the MLC will expose "unknown" as you said above. Some mtd-utils,
such as mtd_debug will not work well any more.
If we do expose the MTD_MLCNANDFLASH to use space, the mtd-utils may can
not work with MLC nand, some code only checks the
MTD_NANDFLASH. Please see the :
http://lists.infradead.org/pipermail/linux-mtd/2013-August/048213.html
That's why we should expose the MTD_MLCNANDFLASH to the user-space
> One argument in favor of your change: so a user can programmatically
> determine whether to use JFFS2 or UBIFS on a particular NAND. (But
> then again, SLC are getting more and more MLC-like properties that
> make them unsuitable for JFFS2...)
>
> So, I would recommend a few rearrangements of part of this series:
> (1) fixup the sysfs show() function and ABI documentation (in the same
> patch) to cover "mlc-nand". *** must clearly explain the rationale for
> userspace change (currently missing) ***
> (2) do any changes to JFFS2 based on the MLC type
> (3) allow nand_base.c to export MTD_MLCNANDFLASH
I will arrange the next version in this order.
thanks
Huang Shijie
More information about the linux-mtd
mailing list