Le mar., sept. 20 2022 at 14:31:38 +0200, H. Nikolaus Schaller
<hns@xxxxxxxxxxxxx> a écrit :
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)
v6.0-rc does not have 'cpu_has_tx39_cache' anywhere in that file, or in
arch/mips/ for that matter. It was removed in v5.18.
And a v5.17 kernel compiles fine here with these options enabled. So
it's a problem on your side, I guess.
CONFIG_BOARD_INGENIC=y
This config option does not exist (at least in v6.0-rc). Probably you
refer to CONFIG_INGENIC_GENERIC_BOARD.
No, I do not, and yes, it exists.
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.
Because in the first case you build a generic kernel, which does not
embed any .dtb, and you are responsible for providing the kernel with
the blob at boot time; while if you build with CONFIG_JZ4780_CI20=y it
embeds the .dtb inside the kernel.
You can embed the .dtb into the generic kernel at compile-time too,
have a look at "Kernel type -> Kernel appended dtb support." Not sure
why you'd want that for a generic kernel, though.
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?
They *are* used.
BTW: there are also seems to be some board specific CONFIGs in
processor specific code (e.g. CONFIG_JZ4780_CI20 in irqchip code).
rgrep CI20 drivers/irqchip/
returns nothing for me.
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.
It is not "fragile and incomplete", it works as intended, and it's a
feature I use often.
-Paul