From: Yongxin Liu <[email protected]>

Support Intel QAT software for Linux version 1.1.50-00003 for HW 2.0.

Tested with linux-yocto 6.6.50 and Intel Corporation 4xxx Series QAT.

Signed-off-by: Yongxin Liu <[email protected]>
---
 ...20-add-install-target-and-add-folder.patch | 76 +++++++++++++++++++
 ...it-the-use-of-adf_enable-disable_aer.patch | 52 +++++++++++++
 ...ty-function-adf_dev_mm_invalidate_ra.patch | 37 +++++++++
 ...20-update-KDIR-for-cross-compilation.patch | 41 ++++++++++
 recipes-extended/qat/qat20_1.1.50-00003.bb    | 29 +++++++
 5 files changed, 235 insertions(+)
 create mode 100644 
recipes-extended/qat/files/qat20-add-install-target-and-add-folder.patch
 create mode 100644 
recipes-extended/qat/files/qat20-limit-the-use-of-adf_enable-disable_aer.patch
 create mode 100644 
recipes-extended/qat/files/qat20-remove-empty-function-adf_dev_mm_invalidate_ra.patch
 create mode 100644 
recipes-extended/qat/files/qat20-update-KDIR-for-cross-compilation.patch
 create mode 100644 recipes-extended/qat/qat20_1.1.50-00003.bb

diff --git 
a/recipes-extended/qat/files/qat20-add-install-target-and-add-folder.patch 
b/recipes-extended/qat/files/qat20-add-install-target-and-add-folder.patch
new file mode 100644
index 0000000..afda5c0
--- /dev/null
+++ b/recipes-extended/qat/files/qat20-add-install-target-and-add-folder.patch
@@ -0,0 +1,76 @@
+From 1cb0c03ef9122ea241f33e41b5ec1c0bab194ea1 Mon Sep 17 00:00:00 2001
+From: "Tan, Raymond" <[email protected]>
+Date: Mon, 4 Jun 2018 09:26:33 +0800
+Subject: [PATCH] qat20: add install target and add folder
+
+Upstream-Status: Inappropriate [Configuration]
+
+Modify Makefile to add install target and add folder
+
+Signed-off-by: Tan, Raymond <[email protected]>
+[YL: update context and add qat_4xxx for qat20]
+Signed-off-by: Yongxin Liu <[email protected]>
+---
+ quickassist/Makefile | 29 ++++++++++++++++++++++++++---
+ 1 file changed, 26 insertions(+), 3 deletions(-)
+
+diff --git a/quickassist/Makefile b/quickassist/Makefile
+index bef7961..d479466 100755
+--- a/quickassist/Makefile
++++ b/quickassist/Makefile
+@@ -65,6 +65,7 @@ ICP_TOP_ENV=$(ICP_BUILDSYSTEM_PATH)/build_files/env_files/
+ export ICP_ACCEL_INC=YES
+ export QAT_LEGACY_ALGORITHMS ?= n
+ LAC_LIB_DIR=$(LAC_PATH)/build/libs
++MODULE_INSTALLPATH=$(SAMPLE_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat
+ 
+ #Release Package build steps
+ ALL_TARGETS =  clean lac_lib_dir qat_direct libosal_user lac_user
+@@ -80,10 +81,14 @@ all: $(ALL_TARGETS)
+ 
+ user: lac_lib_dir libosal_user lac_user
+ 
++install: output_dir install_scripts
++      @cp $(ICP_ROOT)/quickassist/utilities/libusdm_drv/usdm_drv.ko 
$(MODULE_INSTALLPATH);
++      @cp 
$(ICP_ROOT)/quickassist/lookaside/access_layer/src/sample_code/performance/build/linux_2.6/user_space/cpa_sample_code
 $(ICP_BUILD_OUTPUT)$(DEST_BINDIR);
++
+ install_scripts:
+       @echo ; echo 'Copying Install Scripts';
+-      @cp $(ICP_BUILDSYSTEM_PATH)/build_files/qat_service 
$(ICP_BUILD_OUTPUT)/;
+-      @chmod 750 $(ICP_BUILD_OUTPUT)/qat_service;
++      @cp $(ICP_BUILDSYSTEM_PATH)/build_files/qat_service 
$(ICP_BUILD_OUTPUT)/etc/init.d;
++      @chmod 750 $(ICP_BUILD_OUTPUT)/etc/init.d/qat_service;
+ 
+ #
+ # Common memory driver
+@@ -143,8 +148,26 @@ ifeq ($(ICP_NO_CLEAN),)
+ endif
+ 
+ 
+-output_dir: clean
++output_dir:
+       test -d $(ICP_BUILD_OUTPUT) || mkdir -p $(ICP_BUILD_OUTPUT);
++      test -d $(ICP_BUILD_OUTPUT)$(DEST_LIBDIR) || mkdir -p 
$(ICP_BUILD_OUTPUT)$(DEST_LIBDIR);
++      test -d $(ICP_BUILD_OUTPUT)$(DEST_BINDIR) || mkdir -p 
$(ICP_BUILD_OUTPUT)$(DEST_BINDIR);
++      test -d $(ICP_BUILD_OUTPUT)/lib/firmware || mkdir -p 
$(ICP_BUILD_OUTPUT)/lib/firmware;
++      test -d 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat || 
mkdir -p 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat;
++      test -d 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_common
 || mkdir -p 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_common;
++      test -d 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_4xxx
 || mkdir -p 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_4xxx;
++      test -d 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_4xxxvf
 || mkdir -p 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_4xxxvf;
++      test -d 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c3xxx
 || mkdir -p 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c3xxx;
++      test -d 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c3xxxvf
 || mkdir -p 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c3xxxvf;
++      test -d 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c4xxx
 || mkdir -p 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c4xxx;
++      test -d 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c4xxxvf
 || mkdir -p 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c4xxxvf;
++      test -d 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c62x
 || mkdir -p 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c62x;
++      test -d 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c62xvf
 || mkdir -p 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_c62xvf;
++      test -d 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_dh895xcc
 || mkdir -p 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_dh895xcc;
++      test -d 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_dh895xccvf
 || mkdir -p 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_dh895xccvf;
++      test -d 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_d15xx
 || mkdir -p 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_d15xx;
++      test -d 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_d15xxvf
 || mkdir -p 
$(ICP_BUILD_OUTPUT)/lib/modules/$(QAT_KERNEL_VER)/updates/drivers/crypto/qat/qat_d15xxvf;
++      test -d $(ICP_BUILD_OUTPUT)/etc/init.d || mkdir -p 
$(ICP_BUILD_OUTPUT)/etc/init.d;
+ 
+ lac_lib_dir: clean
+       test -d $(LAC_LIB_DIR) || mkdir -p $(LAC_LIB_DIR);
+-- 
+2.39.3
+
diff --git 
a/recipes-extended/qat/files/qat20-limit-the-use-of-adf_enable-disable_aer.patch
 
b/recipes-extended/qat/files/qat20-limit-the-use-of-adf_enable-disable_aer.patch
new file mode 100644
index 0000000..43fb3db
--- /dev/null
+++ 
b/recipes-extended/qat/files/qat20-limit-the-use-of-adf_enable-disable_aer.patch
@@ -0,0 +1,52 @@
+From 19f21ce1d86ebe9f409ad03dfd15fa92bbae5f89 Mon Sep 17 00:00:00 2001
+From: Yongxin Liu <[email protected]>
+Date: Tue, 24 Sep 2024 20:14:56 +0000
+Subject: [PATCH] qat20: limit the use of adf_enable/disable_aer()
+
+adf_enable/disable_aer() was dropped in kernel commit 197cccc771e
+("crypto: qat - drop redundant adf_enable_aer()"), so we also drop
+it in out-of-tree driver of qat for kernel >= 6.3.
+
+Upstream-Status: Inappropriate [Code released in tarball form only]
+
+Signed-off-by: Yongxin Liu <[email protected]>
+---
+ .../qat/drivers/crypto/qat/qat_common/adf_aer.c        | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/adf_aer.c 
b/quickassist/qat/drivers/crypto/qat/qat_common/adf_aer.c
+index ba277e0..9255b94 100644
+--- a/quickassist/qat/drivers/crypto/qat/qat_common/adf_aer.c
++++ b/quickassist/qat/drivers/crypto/qat/qat_common/adf_aer.c
+@@ -378,10 +378,15 @@ int adf_enable_aer(struct adf_accel_dev *accel_dev, 
struct pci_driver *adf)
+ #else
+       adf->err_handler = &adf_err_handler;
+ #endif
++
++#if (KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE)
++      return 0;
++#else
+       ret = pci_enable_pcie_error_reporting(pdev);
+       if (ret)
+               dev_warn(&pdev->dev,
+                        "QAT: Failed to enable AER, error code %d\n", ret);
++#endif
+ 
+       return 0;
+ }
+@@ -400,8 +405,11 @@ EXPORT_SYMBOL_GPL(adf_enable_aer);
+ void adf_disable_aer(struct adf_accel_dev *accel_dev)
+ {
+       struct pci_dev *pdev = accel_to_pci_dev(accel_dev);
+-
++#if (KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE)
++      return;
++#else
+       pci_disable_pcie_error_reporting(pdev);
++#endif
+ }
+ EXPORT_SYMBOL_GPL(adf_disable_aer);
+ 
+-- 
+2.44.1
+
diff --git 
a/recipes-extended/qat/files/qat20-remove-empty-function-adf_dev_mm_invalidate_ra.patch
 
b/recipes-extended/qat/files/qat20-remove-empty-function-adf_dev_mm_invalidate_ra.patch
new file mode 100644
index 0000000..2da3a18
--- /dev/null
+++ 
b/recipes-extended/qat/files/qat20-remove-empty-function-adf_dev_mm_invalidate_ra.patch
@@ -0,0 +1,37 @@
+From bf5b64d2839c51fb9f59f8bc19d4e8660767b4b9 Mon Sep 17 00:00:00 2001
+From: Yongxin Liu <[email protected]>
+Date: Tue, 24 Sep 2024 20:45:08 +0000
+Subject: [PATCH] qat20: remove empty function adf_dev_mm_invalidate_range()
+
+Upstream-Status: Inappropriate [Code released in tarball form only]
+
+Signed-off-by: Yongxin Liu <[email protected]>
+---
+ .../qat/drivers/crypto/qat/qat_common/adf_pasid.c        | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/adf_pasid.c 
b/quickassist/qat/drivers/crypto/qat/qat_common/adf_pasid.c
+index 1871663..bd7110d 100644
+--- a/quickassist/qat/drivers/crypto/qat/qat_common/adf_pasid.c
++++ b/quickassist/qat/drivers/crypto/qat/qat_common/adf_pasid.c
+@@ -171,17 +171,8 @@ static void adf_dev_mm_release(struct mmu_notifier *mn,
+       }
+ }
+ 
+-static void adf_dev_mm_invalidate_range(struct mmu_notifier *mn,
+-                                      struct mm_struct *mm,
+-                                      unsigned long start,
+-                                      unsigned long end)
+-{
+-      /* Empty, required to be implemented */
+-}
+-
+ static const struct mmu_notifier_ops adf_dev_mmu_notifier_ops = {
+       .release = adf_dev_mm_release,
+-      .invalidate_range = adf_dev_mm_invalidate_range,
+ };
+ 
+ #if (KERNEL_VERSION(5, 7, 0) <= LINUX_VERSION_CODE)
+-- 
+2.44.1
+
diff --git 
a/recipes-extended/qat/files/qat20-update-KDIR-for-cross-compilation.patch 
b/recipes-extended/qat/files/qat20-update-KDIR-for-cross-compilation.patch
new file mode 100644
index 0000000..417deb0
--- /dev/null
+++ b/recipes-extended/qat/files/qat20-update-KDIR-for-cross-compilation.patch
@@ -0,0 +1,41 @@
+From b2834a88692361853867920c1fa55ec2ac72800a Mon Sep 17 00:00:00 2001
+From: "Tan, Raymond" <[email protected]>
+Date: Wed, 30 May 2018 22:17:58 +0800
+Subject: [PATCH 3/6] qat20: update KDIR for cross-compilation
+
+Upstream-Status: Inappropriate [Configuration]
+
+This patch updates the kernel path for cross-compilation, avoid using the host
+machine path.
+
+Signed-off-by: Tan, Raymond <[email protected]>
+[YL: update context for qat20]
+Signed-off-by: Yongxin Liu <[email protected]>
+---
+ quickassist/qat/Makefile | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/quickassist/qat/Makefile b/quickassist/qat/Makefile
+index cd0dc01..bcbd6c2 100644
+--- a/quickassist/qat/Makefile
++++ b/quickassist/qat/Makefile
+@@ -38,13 +38,13 @@ $(info Compiling with Debug Injection Simulation feature)
+ endif
+ 
+ ifeq ($(KERNELRELEASE),)
+-KDIR ?= $(INSTALL_MOD_PATH)/lib/modules/$(shell uname -r)/build
+-ifneq ($(shell if [ -e $(KDIR)/include/config/auto.conf ]; then echo 1; fi),1)
++KDIR ?= $(KERNEL_SOURCE_ROOT)
++ifneq ($(shell if [ -e $(KERNEL_BUILDDIR)/include/config/auto.conf ]; then 
echo 1; fi),1)
+   $(error ERROR: Kernel header files not found.  Install the appropriate \
+     kernel development package necessary for building external kernel modules 
\
+     or run 'make oldconfig && make modules_prepare' on kernel src to fix it)
+ endif
+-include $(KDIR)/include/config/auto.conf
++include $(KERNEL_BUILDDIR)/include/config/auto.conf
+ INSTALL_FW_PATH ?= $(INSTALL_MOD_PATH)/lib/firmware
+ 
+ 
+-- 
+2.39.3
+
diff --git a/recipes-extended/qat/qat20_1.1.50-00003.bb 
b/recipes-extended/qat/qat20_1.1.50-00003.bb
new file mode 100644
index 0000000..4c386d3
--- /dev/null
+++ b/recipes-extended/qat/qat20_1.1.50-00003.bb
@@ -0,0 +1,29 @@
+include qat.inc
+
+#Dual BSD and GPLv2 License
+LICENSE = "BSD-3-Clause & GPL-2.0-only & Apache-2.0"
+LIC_FILES_CHKSUM = "\
+                    file://LICENSE.GPL;md5=751419260aa954499f7abaabaa882bbe \
+                    file://LICENSE.BSD;md5=4a6a5cd99f6064d61adad8c6c0bd080f \
+                    file://LICENSE.APACHE;md5=c75985e733726beaba57bc5253e96d04 
\
+                    "
+
+DEPENDS += "boost udev zlib openssl yasm-native"
+
+export SYSROOT = "${RECIPE_SYSROOT}"
+
+SRC_URI = 
"https://downloadmirror.intel.com/822703/QAT20.L.1.1.50-00003.tar.gz;subdir=qat20
 \
+           file://0001-qat-fix-for-cross-compilation-issue.patch \
+           file://0003-qat-override-CC-LD-AR-only-when-it-is-not-define.patch \
+           file://0005-Added-include-dir-path.patch \
+           
file://0001-usdm_drv-convert-mutex_lock-to-mutex_trylock-to-avio.patch \
+           file://build_fix.patch \
+           file://qat20-add-install-target-and-add-folder.patch \
+           file://qat20-update-KDIR-for-cross-compilation.patch \
+           file://qat20-limit-the-use-of-adf_enable-disable_aer.patch \
+           file://qat20-remove-empty-function-adf_dev_mm_invalidate_ra.patch \
+          "
+
+SRC_URI[sha256sum] = 
"a505e0807b82e87314d214244dce4c34de477a555e6c95034f150c079c6d1b51"
+
+S = "${WORKDIR}/qat20"
-- 
2.44.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#8417): 
https://lists.yoctoproject.org/g/meta-intel/message/8417
Mute This Topic: https://lists.yoctoproject.org/mt/108641803/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-intel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to