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]] -=-=-=-=-=-=-=-=-=-=-=-
