[PATCH v3 2/2] mtd: rawnand: ingenic: Limit MTD_NAND_JZ4780 to architecture only

Paul Cercueil paul at crapouillou.net
Sun Jul 26 12:12:27 EDT 2020



Le dim. 26 juil. 2020 à 18:06, Krzysztof Kozlowski <krzk at kernel.org> a 
écrit :
> On Sat, Jul 25, 2020 at 08:30:56PM +0200, Arnd Bergmann wrote:
>>  On Sat, Jul 25, 2020 at 2:17 PM Paul Cercueil 
>> <paul at crapouillou.net> wrote:
>>  > Le ven. 24 juil. 2020 à 17:54, Krzysztof Kozlowski 
>> <krzk at kernel.org> a
>>  > écrit :
>>  > > On Fri, Jul 24, 2020 at 05:50:06PM +0200, Paul Cercueil wrote:
>>  > >>  Le ven. 24 juil. 2020 à 17:33, Krzysztof Kozlowski
>>  > >> <krzk at kernel.org> a écrit:
>>  > >>  > On Fri, 24 Jul 2020 at 17:19, Paul Cercueil 
>> <paul at crapouillou.net>
>>  > >>  > wrote:
>>  > >>
>>  > >>  On MIPS, the SoC selection is a Kconfig "choice", so you can 
>> only
>>  > >> support
>>  > >>  one SoC family, unfortunately.
>>  > >
>>  > > Let's say someone selected then some other architecture
>>  > > (MIPS_ALCHEMY).
>>  > > They could select this MTD driver.
>>  > >
>>  > > Does it mean they would be able to run it on Ingenic hardware?
>>  >
>>  > In *theory* yes, as long as the Kconfig options that MACH_INGENIC
>>  > selects are enabled, the kernel should boot and work on Ingenic 
>> SoCs.
>> 
>>  Right now, this won't work yet, because there are platform specific
>>  functions that are implemented by each of the platforms in 
>> arch/mips,
>>  e.g. arch/mips/generic/init.c and arch/mips/jz4740/setup.c.
> 
> I would say even more - no DTS would be provided for such 
> configuration.
> All Ingenic DTSes are included only with MACH_INGENIC.  You cannot 
> build
> a kernel working on Ingenic without MACH_INGENIC. Even in theory.

But the devicetree doesn't have to be built-in.

-Paul

>> 
>>  A lot of the newer platforms are part of arch/mips/generic
>>  (CONFIG_MIPS_GENERIC), which roughly corresponds to
>>  CONFIG_ARCH_MULTIPLATFORM on in arch/arm/.
>>  Similarly, there are header files in arch/mips/include/asm/mach-*/
>>  that conflict and you need to have the right one.
>> 
>>  To have more than one platform enabled, each one needs to
>>  have all of that platform code converted to fit into the
>>  MIPS_GENERIC framework. This can be a lot of work, but
>>  I suppose the ingenic platform would be a candidate for
>>  which this makes sense, as long as new SoCs of that family
>>  still come out.
> 
> I can therefore change the patch to:
> depends on MACH_INGENIC || MIPS_GENERIC || COMPILE_TEST
> 
> Other solution is to leave MTD driver as is and for the memory driver 
> go
> with my v2 approach:
> https://lore.kernel.org/lkml/20200724074038.5597-6-krzk@kernel.org/
> 
> Best regards,
> Krzysztof
> 





More information about the linux-mtd mailing list