Fedora 34 only provides compressed firmwares. Introduce an internal driver helper to handle transparently compression.
I chose libarchive for decompressing as it seems widely available and DPDK had used it in the past. Windows support only matters for net/ice and firmware loading was skipped in this driver before this series. Since I don't know if/how we want to load firmwares on Windows, I let an empty stub for this OS. This series has been compile tested on Linux (I'll trust the CI for others OSes). I only tested basic init with a net/ice device (no DCF test). So please drivers maintainers, check nothing is broken. -- David Marchand Changes since v2: - update comment on libarchive link dependency, Changes since v1: - address comments on patch2, David Marchand (2): net/ice: factorize firmware loading eal: handle compressed firmwares .github/workflows/build.yml | 1 + .travis.yml | 1 + config/meson.build | 10 ++ drivers/net/bnx2x/bnx2x.c | 35 +++---- drivers/net/ice/base/ice_osdep.h | 6 -- drivers/net/ice/ice_dcf_parent.c | 97 ++--------------- drivers/net/ice/ice_ethdev.c | 175 ++++++++++++------------------- drivers/net/ice/ice_ethdev.h | 3 +- drivers/net/nfp/nfp_net.c | 57 +++------- drivers/net/qede/qede_main.c | 45 ++++---- lib/eal/include/rte_firmware.h | 32 ++++++ lib/eal/unix/eal_firmware.c | 149 ++++++++++++++++++++++++++ lib/eal/unix/meson.build | 1 + lib/eal/version.map | 1 + lib/eal/windows/eal.c | 9 ++ 15 files changed, 324 insertions(+), 298 deletions(-) create mode 100644 lib/eal/include/rte_firmware.h create mode 100644 lib/eal/unix/eal_firmware.c -- 2.23.0