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