Re: [dpdk-dev] [PATCH v3 2/2] eal: handle compressed firmwares
From: Wang, Haiyue <hidden>
Date: 2021-07-05 13:19:34
-----Original Message----- From: dev <redacted> On Behalf Of David Marchand Sent: Tuesday, June 29, 2021 16:07 To: dev@dpdk.org Cc: Igor Russkikh <redacted>; Aaron Conole <aconole@redhat.com>; Michael Santana [off-list ref]; Richardson, Bruce [off-list ref]; Rasesh Mody [off-list ref]; Shahed Shaikh [off-list ref]; Yang, Qiming [off-list ref]; Zhang, Qi Z [off-list ref]; Heinrich Kuhn [off-list ref]; Devendra Singh Rawat [off-list ref]; Ray Kinsella [off-list ref]; Neil Horman [off-list ref]; Dmitry Kozlyuk [off-list ref]; Narcisa Ana Maria Vasile [off-list ref]; Dmitry Malloy [off-list ref]; Kadam, Pallavi [off-list ref] Subject: [dpdk-dev] [PATCH v3 2/2] eal: handle compressed firmwares Introduce an internal firmware loading helper to remove code duplication in our drivers and handle xz compressed firmwares by calling libarchive. This helper tries to look for .xz suffixes so that drivers are not aware the firmwares have been compressed. libarchive is set as an optional dependency: without libarchive, a runtime warning is emitted so that users know there is a compressed firmware. Windows implementation is left as an empty stub. Signed-off-by: David Marchand <redacted> Reviewed-by: Igor Russkikh <redacted> --- Changes since v2: - added a comment on libarchive link dependency, Changes since v1: - used pkg-config for libarchive detection, - updated doxygen annotations, - added internal helpers in eal_firmware.c to enhance readability, - dropped whitespace damage in version.map, --- .github/workflows/build.yml | 1 + .travis.yml | 1 + config/meson.build | 10 +++ drivers/net/bnx2x/bnx2x.c | 35 +++----- drivers/net/ice/ice_ethdev.c | 60 +++----------
For ice PMD: Tested-by: Haiyue Wang <redacted>
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 ++ 12 files changed, 259 insertions(+), 142 deletions(-) create mode 100644 lib/eal/include/rte_firmware.h create mode 100644 lib/eal/unix/eal_firmware.c
-- 2.23.0