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

From: Krzysztof Kozlowski
Date: Sun Jul 26 2020 - 12:06:23 EST


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@xxxxxxxxxxxxxxx> wrote:
> > Le ven. 24 juil. 2020 Ã 17:54, Krzysztof Kozlowski <krzk@xxxxxxxxxx> 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@xxxxxxxxxx> a Ãcrit:
> > >> > On Fri, 24 Jul 2020 at 17:19, Paul Cercueil <paul@xxxxxxxxxxxxxxx>
> > >> > 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.

>
> 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@xxxxxxxxxx/

Best regards,
Krzysztof