[PATCH v5 0/2] firmware_loader: allow firmware_class.path to take multiple paths

From: Jeff Layton

Date: Mon Mar 23 2026 - 10:52:30 EST


This is something Michal had asked for last year, and I just got around
to implementing. This version also adds some selftests for this
functionality.

Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx>
---
Changes in v5:
- Increase search= string length from 256 to 4096
- Preprocess search= path when it's set rather than on every firmware load
- Add selftests for search= functionality
- Link to v4: https://lore.kernel.org/r/20260320-fw-path-v4-1-7547e2f0dc64@xxxxxxxxxx

Changes in v4:
- Move search path to new search= option that is tried after path=
- Link to v3: https://lore.kernel.org/r/20260318-fw-path-v3-1-a701a08bc025@xxxxxxxxxx

Changes in v3:
- Allow '\' to escape a literal ':' or '\' in the string
- Link to v2: https://lore.kernel.org/r/20260318-fw-path-v2-1-8a106eb91eb4@xxxxxxxxxx

Changes in v2:
- switch to using ':' as path delimiter
- Link to v1: https://lore.kernel.org/r/20260318-fw-path-v1-1-7884d9bf618f@xxxxxxxxxx

---
Jeff Layton (2):
firmware_loader: add search= module option for multi-path firmware lookup
selftests/firmware: add search path test for firmware_class.search=

drivers/base/firmware_loader/main.c | 273 +++++++++++++++++++-------
tools/testing/selftests/firmware/Makefile | 2 +-
tools/testing/selftests/firmware/fw_search.sh | 222 +++++++++++++++++++++
3 files changed, 420 insertions(+), 77 deletions(-)
---
base-commit: c369299895a591d96745d6492d4888259b004a9e
change-id: 20260317-fw-path-a094c30259a5

Best regards,
--
Jeff Layton <jlayton@xxxxxxxxxx>