[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