[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9dedf9bb-5377-9f2c-cbb1-2a57b40493da@molgen.mpg.de>
Date: Sat, 9 Oct 2021 11:24:09 +0200
From: Paul Menzel <pmenzel@...gen.mpg.de>
To: Arnd Bergmann <arnd@...nel.org>,
Bjorn Andersson <bjorn.andersson@...aro.org>
Cc: Arnd Bergmann <arnd@...db.de>, Mark Brown <broonie@...nel.org>,
Liam Girdwood <lgirdwood@...il.com>,
Charles Keepax <ckeepax@...nsource.cirrus.com>,
Simon Trimmer <simont@...nsource.cirrus.com>,
Michael Ellerman <mpe@...erman.id.au>,
Russell King <linux@...linux.org.uk>,
Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will@...nel.org>,
Thomas Bogendoerfer <tsbogend@...ha.franken.de>,
"James E.J. Bottomley" <James.Bottomley@...senPartnership.com>,
Helge Deller <deller@....de>,
Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>,
Albert Ou <aou@...s.berkeley.edu>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
x86@...nel.org, "H. Peter Anvin" <hpa@...or.com>,
Geert Uytterhoeven <geert+renesas@...der.be>,
Linus Walleij <linus.walleij@...aro.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
linux-ia64@...r.kernel.org, linux-mips@...r.kernel.org,
linux-parisc@...r.kernel.org, linux-riscv@...ts.infradead.org,
linuxppc-dev@...ts.ozlabs.org
Subject: Re: [PATCH 1/2] firmware: include drivers/firmware/Kconfig
unconditionally
[Cc: +linuxppc-dev@...ts.ozlabs.org]
Dear Arnd,
Am 28.09.21 um 09:50 schrieb Arnd Bergmann:
> From: Arnd Bergmann <arnd@...db.de>
>
> Compile-testing drivers that require access to a firmware layer
> fails when that firmware symbol is unavailable. This happened
> twice this week:
>
> - My proposed to change to rework the QCOM_SCM firmware symbol
> broke on ppc64 and others.
>
> - The cs_dsp firmware patch added device specific firmware loader
> into drivers/firmware, which broke on the same set of
> architectures.
>
> We should probably do the same thing for other subsystems as well,
> but fix this one first as this is a dependency for other patches
> getting merged.
>
> Cc: Mark Brown <broonie@...nel.org>
> Cc: Liam Girdwood <lgirdwood@...il.com>
> Cc: Charles Keepax <ckeepax@...nsource.cirrus.com>
> Cc: Simon Trimmer <simont@...nsource.cirrus.com>
> Cc: Arnd Bergmann <arnd@...db.de>
> Cc: Michael Ellerman <mpe@...erman.id.au>
> Signed-off-by: Arnd Bergmann <arnd@...db.de>
> ---
> Not sure how we'd want to merge this patch, if two other things
> need it. I'd prefer to merge it along with the QCOM_SCM change
> through the soc tree, but that leaves the cirrus firmware broken
> unless we also merge it the same way (rather than through ASoC
> as it is now).
>
> Alternatively, we can try to find a different home for the Cirrus
> firmware to decouple the two problems. I'd argue that it's actually
> misplaced here, as drivers/firmware is meant for kernel code that
> interfaces with system firmware, not for device drivers to load
> their own firmware blobs from user space.
> ---
> arch/arm/Kconfig | 2 --
> arch/arm64/Kconfig | 2 --
> arch/ia64/Kconfig | 2 --
> arch/mips/Kconfig | 2 --
> arch/parisc/Kconfig | 2 --
> arch/riscv/Kconfig | 2 --
> arch/x86/Kconfig | 2 --
> drivers/Kconfig | 2 ++
> 8 files changed, 2 insertions(+), 14 deletions(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index ad96f3dd7e83..194d10bbff9e 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1993,8 +1993,6 @@ config ARCH_HIBERNATION_POSSIBLE
>
> endmenu
>
> -source "drivers/firmware/Kconfig"
> -
> if CRYPTO
> source "arch/arm/crypto/Kconfig"
> endif
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index ebb49585a63f..8749517482ae 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -1931,8 +1931,6 @@ source "drivers/cpufreq/Kconfig"
>
> endmenu
>
> -source "drivers/firmware/Kconfig"
> -
> source "drivers/acpi/Kconfig"
>
> source "arch/arm64/kvm/Kconfig"
> diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
> index 045792cde481..1e33666fa679 100644
> --- a/arch/ia64/Kconfig
> +++ b/arch/ia64/Kconfig
> @@ -388,8 +388,6 @@ config CRASH_DUMP
> help
> Generate crash dump after being started by kexec.
>
> -source "drivers/firmware/Kconfig"
> -
> endmenu
>
> menu "Power management and ACPI options"
> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> index 771ca53af06d..6b8f591c5054 100644
> --- a/arch/mips/Kconfig
> +++ b/arch/mips/Kconfig
> @@ -3316,8 +3316,6 @@ source "drivers/cpuidle/Kconfig"
>
> endmenu
>
> -source "drivers/firmware/Kconfig"
> -
> source "arch/mips/kvm/Kconfig"
>
> source "arch/mips/vdso/Kconfig"
> diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
> index 4742b6f169b7..27a8b49af11f 100644
> --- a/arch/parisc/Kconfig
> +++ b/arch/parisc/Kconfig
> @@ -384,6 +384,4 @@ config KEXEC_FILE
>
> endmenu
>
> -source "drivers/firmware/Kconfig"
> -
> source "drivers/parisc/Kconfig"
> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
> index 301a54233c7e..6a6fa9e976d5 100644
> --- a/arch/riscv/Kconfig
> +++ b/arch/riscv/Kconfig
> @@ -561,5 +561,3 @@ menu "Power management options"
> source "kernel/power/Kconfig"
>
> endmenu
> -
> -source "drivers/firmware/Kconfig"
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index e5ba8afd29a0..5dcec5f13a82 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -2834,8 +2834,6 @@ config HAVE_ATOMIC_IOMAP
> def_bool y
> depends on X86_32
>
> -source "drivers/firmware/Kconfig"
> -
> source "arch/x86/kvm/Kconfig"
>
> source "arch/x86/Kconfig.assembler"
> diff --git a/drivers/Kconfig b/drivers/Kconfig
> index 30d2db37cc87..0d399ddaa185 100644
> --- a/drivers/Kconfig
> +++ b/drivers/Kconfig
> @@ -17,6 +17,8 @@ source "drivers/bus/Kconfig"
>
> source "drivers/connector/Kconfig"
>
> +source "drivers/firmware/Kconfig"
> +
> source "drivers/gnss/Kconfig"
>
> source "drivers/mtd/Kconfig"
>
With this change, I have the new entries below in my .config:
```
$ diff -u .config.old .config
--- .config.old 2021-10-07 11:38:39.544000000 +0200
+++ .config 2021-10-09 10:02:03.156000000 +0200
@@ -1992,6 +1992,25 @@
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
+
+#
+# Firmware Drivers
+#
+
+#
+# ARM System Control and Management Interface Protocol
+#
+# end of ARM System Control and Management Interface Protocol
+
+# CONFIG_FIRMWARE_MEMMAP is not set
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# Tegra firmware driver
+#
+# end of Tegra firmware driver
+# end of Firmware Drivers
+
# CONFIG_GNSS is not set
CONFIG_MTD=m
# CONFIG_MTD_TESTS is not set
```
No idea if the entries could be hidden for platforms not supporting them.
ARM System Control and Management Interface Protocol ----
[ ] Add firmware-provided memory map to sysfs
[ ] Google Firmware Drivers ----
Tegra firmware driver ----
Kind regards,
Paul
Powered by blists - more mailing lists