[PATCH 00/14] firmware_loader: built-in API and make x86 use it
From: Luis R. Rodriguez
Date: Fri Sep 17 2021 - 14:22:52 EST
From: Luis Chamberlain <mcgrof@xxxxxxxxxx>
A while ago I noted to Boris how we could likely do away the odd
direct use of the firmware sections on x86 and instead have it use
the API directly. This indeed was possible but it required quite
a bit of spring cleaning as well and on its way I spotted a small
fix.
This goes with a new series of tests against built-in firmware as well.
Boris has confirmed this also does work for the x86 microcode loader.
0day is happy with the build results. You can find these changes on my
git tree branch 20210916-firmware-builtin-v2 [0].
[0] https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/log/?h=20210916-firmware-builtin-v2
Borislav Petkov (1):
x86/microcode: Use the firmware_loader built-in API
Luis Chamberlain (13):
firmware_loader: fix pre-allocated buf built-in firmware use
firmware_loader: split built-in firmware call
firmware_loader: add a sanity check for firmware_request_builtin()
firmware_loader: add built-in firmware kconfig entry
firmware_loader: formalize built-in firmware API
firmware_loader: remove old DECLARE_BUILTIN_FIRMWARE()
firmware_loader: move struct builtin_fw to the only place used
vmlinux.lds.h: wrap built-in firmware support under its kconfig symbol
x86/build: Tuck away built-in firmware under its kconfig symbol
firmware_loader: rename EXTRA_FIRMWARE and EXTRA_FIRMWARE_DIR
firmware_loader: move builtin build helper to shared library
test_firmware: move a few test knobs out to its library
test_firmware: add support for testing built-in firmware
.../driver-api/firmware/built-in-fw.rst | 8 +-
Documentation/x86/microcode.rst | 9 +-
arch/x86/Kconfig | 4 +-
arch/x86/include/asm/microcode.h | 3 -
arch/x86/kernel/cpu/microcode/amd.c | 14 ++-
arch/x86/kernel/cpu/microcode/core.c | 17 ---
arch/x86/kernel/cpu/microcode/intel.c | 9 +-
arch/x86/tools/relocs.c | 2 +
drivers/base/firmware_loader/Kconfig | 39 ++++---
drivers/base/firmware_loader/Makefile | 4 +-
drivers/base/firmware_loader/builtin/Makefile | 43 ++------
.../base/firmware_loader/builtin/lib.Makefile | 32 ++++++
drivers/base/firmware_loader/builtin/main.c | 101 ++++++++++++++++++
drivers/base/firmware_loader/firmware.h | 17 +++
drivers/base/firmware_loader/main.c | 65 +----------
.../firmware_loader/test-builtin/.gitignore | 3 +
.../firmware_loader/test-builtin/Makefile | 18 ++++
drivers/staging/media/av7110/Kconfig | 4 +-
include/asm-generic/vmlinux.lds.h | 20 ++--
include/linux/firmware.h | 26 ++---
lib/Kconfig.debug | 34 ++++++
lib/test_firmware.c | 52 ++++++++-
.../testing/selftests/firmware/fw_builtin.sh | 69 ++++++++++++
.../selftests/firmware/fw_filesystem.sh | 16 ---
tools/testing/selftests/firmware/fw_lib.sh | 24 +++++
.../selftests/firmware/fw_run_tests.sh | 2 +
26 files changed, 447 insertions(+), 188 deletions(-)
create mode 100644 drivers/base/firmware_loader/builtin/lib.Makefile
create mode 100644 drivers/base/firmware_loader/builtin/main.c
create mode 100644 drivers/base/firmware_loader/test-builtin/.gitignore
create mode 100644 drivers/base/firmware_loader/test-builtin/Makefile
create mode 100755 tools/testing/selftests/firmware/fw_builtin.sh
--
2.30.2