[PATCH] mtd: nand: Add support for reading ooblayout from device tree
Paul Cercueil
paul at crapouillou.net
Sat May 12 11:30:29 PDT 2018
Le sam. 12 mai 2018 à 20:02, Boris Brezillon
<boris.brezillon at bootlin.com> a écrit :
> On Sat, 12 May 2018 19:42:49 +0200
> Paul Cercueil <paul at crapouillou.net> wrote:
>
>> >> >> My motivation is to get rid of this (move it to devicetree):
>> >> >>
>> >> >>
>> >>
>> https://elixir.bootlin.com/linux/latest/source/arch/mips/jz4740/board-qi_lb60.c#L93
>> >> >> And enable the support of other boards with custom OOB
>> layouts.
>> >> >
>> >> > Can you list the different layouts you have? I'm pretty sure
>> >> there's a
>> >> > pattern. Maybe we can even deduce the layout from the page
>> size
>> >> or OOB
>> >> > size.
>> >>
>> >> This is the other layout I have for another ingenic device:
>> >>
>> >>
>> http://projects.qi-hardware.com/index.php/p/qi-kernel/source/tree/od-2011-09-18/arch/mips/jz4740/board-a320.c#L125
>> >>
>> >> Page size and OOB size are the same between these two devices.
>> >
>> > Indeed. Do you know if there are other kind of layouts in the
>> wild?
>>
>> I'm getting a new board in a few weeks, I'll be able to check that
>> out.
>>
>> > Note that <layout-id> can be a string, so if each each board is
>> > defining its own layout, you could specify the board name here.
>> > Otherwise, if you just have those 2 patterns, you can just name
>> them
>> > "contiguous" and "interleaved".
>>
>> I don't like the idea of adding board-specific data inside the
>> driver...
>> I'd prefer to use the method I used in this patch, but inside the
>> jz4740-nand driver, if you're OK with it.
>
> Please don't. Encoding such detailed description in the DT has almost
> always proven to be poor choice. Also, people are likely to get it
> wrong, and then you'll have to fix all DTs, while, with a single
> unique
> ID representing the layout, you can
> - re-use existing layouts easily without having to describe everything
> again in the DT
> - fix the driver without getting in trouble with people who claim
> that DT is a stable ABI and don't want to update their DT
>
> So, please just pick user-friendly IDs and add layout definitions in
> the driver. If you don't want to leak board info in the driver, then
> don't name the layout with the board name. BTW, I still hope you'll
> only
> have 2 kind of layouts (contiguous and interleaved).
Alright. Thanks for the insights.
-Paul
More information about the linux-mtd
mailing list