Files
openwrt/target/linux/airoha
Daniel Pawlik e4e7c4f70c airoha: disable CONFIG_FW_LOADER_USER_HELPER_FALLBACK
NET_AIROHA_NPU is built-in and probes before rootfs is mounted, so
request_firmware() correctly fails with -ENOENT. The driver maps that
to -EPROBE_DEFER and succeeds once /lib/firmware is available.

With CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y (inherited from generic),
a missing firmware instead blocks ~60s on the sysfs userspace helper
and returns -ETIMEDOUT. That is not mapped to -EPROBE_DEFER, so NPU
probe fails permanently:

  Direct firmware load for airoha/en7581_MT7996_npu_rv32.bin failed with error -2
  Falling back to sysfs fallback for: airoha/en7581_MT7996_npu_rv32.bin
  error -ETIMEDOUT: failed to run npu firmware
  probe with driver airoha-npu failed with error -110

This shows up on official / firmware-selector images because
CONFIG_ALL_KMODS=y builds kmod-leds-lp55xx-common, which implies
FW_LOADER_USER_HELPER and then FALLBACK from generic takes effect.

Match bcm53xx/gemini/layerscape: keep FW_LOADER_USER_HELPER (from
generic) and unset only FALLBACK on an7581/an7583. Unsetting both is
not refresh-safe — FALLBACK depends on USER_HELPER, so
make target/linux/refresh drops the FALLBACK line when USER_HELPER is
off, and ALL_KMODS builds then reintroduce the -ETIMEDOUT failure.

With FALLBACK disabled, early firmware misses keep returning -ENOENT
and deferred probe can load the NPU firmware after rootfs.

Fixes: https://github.com/openwrt/openwrt/issues/22709
Supersedes: https://github.com/openwrt/openwrt/pull/22697
Signed-off-by: Daniel Pawlik <pawlik.dan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24571
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-09-06 19:29:31 +02:00
..