Re: Usefulness of CONFIG_MACH_JZ47*

From: H. Nikolaus Schaller
Date: Tue Sep 20 2022 - 08:34:53 EST


Hi Paul,

> Am 20.09.2022 um 11:09 schrieb Paul Cercueil <paul@xxxxxxxxxxxxxxx>:
>
> Hi Nikolaus,
>
> Le mar., sept. 20 2022 at 08:31:30 +0200, H. Nikolaus Schaller <hns@xxxxxxxxxxxxx> a écrit :
>> Hi Paul,
>> it seems as if there aren't many places left over where the MACH_JZ47* configs are still in use:
>> drivers/char/hw_ramdom/Kconfig
>> drivers/clk/ingenic/Kconfig
>> drivers/gpu/drm/ingenic/Kconfig
>> drivers/pinctrl/pinctrl-ingenic.c
>> Is it possible to get rid of them and just have CONFIG_MACH_INGENIC_GENERIC?
>> This might simplify my defconfig for multiple machines.
>
> CONFIG_MIPS_GENERIC_KERNEL=y

This breaks compilation for me, e.g.

arch/mips/mm/cache.c:203:6: error: 'cpu_has_tx39_cache' undeclared (first use in this function)

> CONFIG_BOARD_INGENIC=y

This config option does not exist (at least in v6.0-rc). Probably you refer to CONFIG_INGENIC_GENERIC_BOARD.

As far as I see, this does not choose to build any device tree blob.

I tried some patch to get the .dtb built, but the resulting kernel does not show any activity.

If I e.g. switch back from CONFIG_INGENIC_GENERIC_BOARD=y to CONFIG_JZ4780_CI20=y the kernel works.

>
> Then you can support all Ingenic-based boards alongside other MIPS boards.

Yes, I know, but why are the MACH_JZ47* not replaced by CONFIG_MACH_INGENIC_GENERIC if they are almost unused or completely removed?

BTW: there are also seems to be some board specific CONFIGs in processor specific code (e.g. CONFIG_JZ4780_CI20 in irqchip code).
So selecting a MACH is not sufficient to get these features.

All this looks a little fragile and incomplete... Maybe if I find some time (which is unfortunately quite unlikely) I can propose some fixes.

BR,
Nikolaus