mbox series

[0/2] Enable compressed files in EXTRA_FIRMWARE

Message ID cover.1703042081.git.kevinmbecause@gmail.com (mailing list archive)
Headers show
Series Enable compressed files in EXTRA_FIRMWARE | expand

Message

Kevin Martin Dec. 20, 2023, 10:22 a.m. UTC
The linux-firmware packages on Gentoo, Fedora, Arch, and others compress
the firmware files. This works well with CONFIG_FW_LOADER_COMPRESS, but
does not work with CONFIG_EXTRA_FIRMWARE. This patch allows the build
system to decompress firmware files specified by CONFIG_EXTRA_FIRMWARE.

PATCH 1/2 adds decompression routines next to the compression routines
in scripts/Makefile.lib. That patch is then used by PATCH 2/2 to
decompress files before compiling them into the kernel.

The patch works by copying or decompressing the specified firmware files
into the build directory, then compiling them in from there. I would
prefer to not copy any uncompressed files, but I have not found a clean
way to do that.

Kevin Martin (2):
  kbuild: Enable decompression for use by EXTRA_FIRMWARE The build
    system can currently only compress files. This patch adds the
    functionality to decompress files. Decompression is needed for
    building firmware files into the kernel if those files are
    compressed on the filesystem. Compressed firmware files are in use
    by Gentoo, Fedora, Arch, and others.
  firmware_loader: Enable compressed files with EXTRA_FIRMWARE The
    linux-firmware packages on Gentoo, Fedora, Arch, and others compress
    the firmware files. This works well with CONFIG_FW_LOADER_COMPRESS
    but does not work with CONFIG_EXTRA_FIRMWARE. This patch allows the
    build system to decompress firmware files specified by
    CONFIG_EXTRA_FIRMWARE. Uncompressed files are used first, then the
    compressed files are used.

 drivers/base/firmware_loader/Kconfig          |  5 ++++-
 drivers/base/firmware_loader/builtin/Makefile | 16 ++++++++++++----
 scripts/Makefile.lib                          |  6 ++++++
 3 files changed, 22 insertions(+), 5 deletions(-)