[RFC PATCH 0/7] mtd: partitions: add of_match_table support

Michal Suchanek hramrach at gmail.com
Fri Dec 11 07:34:10 PST 2015


On 11 December 2015 at 09:44, Geert Uytterhoeven <geert at linux-m68k.org> wrote:
> Hi Brian,
>
> On Thu, Dec 10, 2015 at 9:54 PM, Brian Norris
> <computersforpeace at gmail.com> wrote:
>> On Sat, Dec 05, 2015 at 11:15:54AM +0100, Geert Uytterhoeven wrote:
>>> On Sat, Dec 5, 2015 at 6:19 AM, Brian Norris
>>> <computersforpeace at gmail.com> wrote:
>>> > There have been several discussions [1] about adding a device tree binding for
>>> > associating flash devices with the partition parser(s) that are used on the
>>> > flash. There are a few reasons:
>>> >
>>> >  (1) drivers shouldn't have to be encoding platform knowledge by listing what
>>> >      parsers might be used on a given system (this is the currently all that's
>>> >      supported)
>>> >  (2) we can't just scan for all supported parsers (like the block system does), since
>>> >      there is a wide diversity of "formats" (no standardization), and it is not
>>> >      always safe or efficient to attempt to do so, particularly since many of
>>> >      them allow their data structures to be placed anywhere on the flash, and
>>> >      so require scanning the entire flash device to find them.
>>>
>>> I read the second reason, but would it be useful to (partially) merge
>>> block/partitions/ and drivers/mtd/partitions/, so I can use e.g. msdos
>>> partitions
>>> on an mtd device??
>>
>> I kinda agree with Michal: is there a good use case?
>
> I don't have an immediate use case.
> Just looking at it from a high-level viewpoint.
>
>> Really, MTD partitioning is not a highly-scalable design. Particularly,
>> it's not typically that well-suited to large (read: unreliable) NAND
>> flash, where fixing partitions at the raw flash level mostly serves to
>> restrict UBI's ability to wear-level across the device. For that sort of
>> case, it's best if people are using UBI volumes on a (mostly?)
>> unpartitioned MTD, instead of using MTD partitions as the main
>> separation mechanism. Also, most partition designs (either MTD or block)
>> aren't very robust against bitflips, read disturb, etc.
>>
>> IOW, I wouldn't expect MBR or GPT to work well on large raw NAND flash,
>> and so I don't plan to do that sort of work myself. If you can provide
>> some better argument for it, and some nice maintainable code to go with
>> it, then of course it could be considered :)
>
> There's also NOR FLASH (e.g. SPI-NOR), which is what most boards I'm
> working on have.
>

Yes, you can dump the content of a NOR flash to a file, attach a loop
device to it, and if block devices had the ability to use flash
partitioning access the different partitions.

Maybe it would be more useful to use some kind of mtdloop, though.
There might even be one already. I never needed it.

Thanks

Michal



More information about the linux-mtd mailing list