2021-09-30 22:22:36

by Bjorn Andersson

[permalink] [raw]
Subject: [PATCH] arm64: defconfig: Disable firmware sysfs fallback

Part of the enablement of SDMA on the IMX platforms, '7f4e4afa140c
("arm64: defconfig: Enable SDMA on i.mx8mq/8mm")' also enabled
CONFIG_FW_LOADER_USER_HELPER_FALLBACK, to allow "firmware loaded by
udev".

Unfortunately having the fallback enabled does, due to the 60 second
timeout, essentially requiring userspace to provide a firmware loader.
But systemd dropped the support for this interface back in 2014 and
because arm64 is the only architecture that has this enabled, there
doesn't seem to be any standard solution available.

Examples of this problem can be found in e.g. the ath10k driver, which
with a standard distro can take about 10 minutes before wlan0 appears.

The alternative to this patch would be to change these drivers to use
firmware_request_direct(), to avoid the sysfs fallback. But that would
prevent other systems, such as Android, to rely on a userspace firmware
loader to pick the firmware from a non-standard place, with just a
custom defconfig.

This patch therefor attempts to align the arm64 defconfig will all other
architectures in the upstream kernel.

Cc: Robin Gong <[email protected]>
Cc: Shawn Guo <[email protected]>
Signed-off-by: Bjorn Andersson <[email protected]>
---
arch/arm64/configs/defconfig | 1 -
1 file changed, 1 deletion(-)

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index da988a54bfb9..f9e0b3fdaf0b 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -243,7 +243,6 @@ CONFIG_PCI_EPF_TEST=m
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_FW_LOADER_USER_HELPER=y
-CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
CONFIG_HISILICON_LPC=y
CONFIG_SIMPLE_PM_BUS=y
CONFIG_FSL_MC_BUS=y
--
2.29.2


2021-10-01 00:14:38

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH] arm64: defconfig: Disable firmware sysfs fallback

On Fri, 1 Oct 2021 at 00:51, Bjorn Andersson <[email protected]> wrote:
>
> Part of the enablement of SDMA on the IMX platforms, '7f4e4afa140c
> ("arm64: defconfig: Enable SDMA on i.mx8mq/8mm")' also enabled
> CONFIG_FW_LOADER_USER_HELPER_FALLBACK, to allow "firmware loaded by
> udev".
>
> Unfortunately having the fallback enabled does, due to the 60 second
> timeout, essentially requiring userspace to provide a firmware loader.
> But systemd dropped the support for this interface back in 2014 and
> because arm64 is the only architecture that has this enabled, there
> doesn't seem to be any standard solution available.

I tend to use the following 'standard' solution:

cat /lib/udev/rules.d/50-firmware.rules
# stub for immediately telling the kernel that userspace firmware loading
# failed; necessary to avoid long timeouts with CONFIG_FW_LOADER_USER_HELPER=y
SUBSYSTEM=="firmware", ACTION=="add", ATTR{loading}="-1"

> Examples of this problem can be found in e.g. the ath10k driver, which
> with a standard distro can take about 10 minutes before wlan0 appears.
>
> The alternative to this patch would be to change these drivers to use
> firmware_request_direct(), to avoid the sysfs fallback. But that would
> prevent other systems, such as Android, to rely on a userspace firmware
> loader to pick the firmware from a non-standard place, with just a
> custom defconfig.
>
> This patch therefor attempts to align the arm64 defconfig will all other
> architectures in the upstream kernel.
>
> Cc: Robin Gong <[email protected]>
> Cc: Shawn Guo <[email protected]>
> Signed-off-by: Bjorn Andersson <[email protected]>

Reviewed-by: Dmitry Baryshkov <[email protected]>

> ---
> arch/arm64/configs/defconfig | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
> index da988a54bfb9..f9e0b3fdaf0b 100644
> --- a/arch/arm64/configs/defconfig
> +++ b/arch/arm64/configs/defconfig
> @@ -243,7 +243,6 @@ CONFIG_PCI_EPF_TEST=m
> CONFIG_DEVTMPFS=y
> CONFIG_DEVTMPFS_MOUNT=y
> CONFIG_FW_LOADER_USER_HELPER=y
> -CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
> CONFIG_HISILICON_LPC=y
> CONFIG_SIMPLE_PM_BUS=y
> CONFIG_FSL_MC_BUS=y
> --
> 2.29.2
>


--
With best wishes
Dmitry

2021-10-05 06:09:45

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH] arm64: defconfig: Disable firmware sysfs fallback

On Thu, Sep 30, 2021 at 02:53:00PM -0700, Bjorn Andersson wrote:
> Part of the enablement of SDMA on the IMX platforms, '7f4e4afa140c
> ("arm64: defconfig: Enable SDMA on i.mx8mq/8mm")' also enabled
> CONFIG_FW_LOADER_USER_HELPER_FALLBACK, to allow "firmware loaded by
> udev".
>
> Unfortunately having the fallback enabled does, due to the 60 second
> timeout, essentially requiring userspace to provide a firmware loader.
> But systemd dropped the support for this interface back in 2014 and
> because arm64 is the only architecture that has this enabled, there
> doesn't seem to be any standard solution available.
>
> Examples of this problem can be found in e.g. the ath10k driver, which
> with a standard distro can take about 10 minutes before wlan0 appears.
>
> The alternative to this patch would be to change these drivers to use
> firmware_request_direct(), to avoid the sysfs fallback. But that would
> prevent other systems, such as Android, to rely on a userspace firmware
> loader to pick the firmware from a non-standard place, with just a
> custom defconfig.
>
> This patch therefor attempts to align the arm64 defconfig will all other
> architectures in the upstream kernel.
>
> Cc: Robin Gong <[email protected]>
> Cc: Shawn Guo <[email protected]>

Acked-by: Shawn Guo <[email protected]>

> Signed-off-by: Bjorn Andersson <[email protected]>
> ---
> arch/arm64/configs/defconfig | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
> index da988a54bfb9..f9e0b3fdaf0b 100644
> --- a/arch/arm64/configs/defconfig
> +++ b/arch/arm64/configs/defconfig
> @@ -243,7 +243,6 @@ CONFIG_PCI_EPF_TEST=m
> CONFIG_DEVTMPFS=y
> CONFIG_DEVTMPFS_MOUNT=y
> CONFIG_FW_LOADER_USER_HELPER=y
> -CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
> CONFIG_HISILICON_LPC=y
> CONFIG_SIMPLE_PM_BUS=y
> CONFIG_FSL_MC_BUS=y
> --
> 2.29.2
>

2021-10-18 03:46:40

by Bjorn Andersson

[permalink] [raw]
Subject: Re: (subset) [PATCH] arm64: defconfig: Disable firmware sysfs fallback

On Thu, 30 Sep 2021 14:53:00 -0700, Bjorn Andersson wrote:
> Part of the enablement of SDMA on the IMX platforms, '7f4e4afa140c
> ("arm64: defconfig: Enable SDMA on i.mx8mq/8mm")' also enabled
> CONFIG_FW_LOADER_USER_HELPER_FALLBACK, to allow "firmware loaded by
> udev".
>
> Unfortunately having the fallback enabled does, due to the 60 second
> timeout, essentially requiring userspace to provide a firmware loader.
> But systemd dropped the support for this interface back in 2014 and
> because arm64 is the only architecture that has this enabled, there
> doesn't seem to be any standard solution available.
>
> [...]

Applied, thanks!

[1/1] arm64: defconfig: Disable firmware sysfs fallback
commit: 5c1c3e2a7693c5e47a7d93898ade1acaac2afb38

Best regards,
--
Bjorn Andersson <[email protected]>