meta-crystalforest: Zlib QAT_MEM MM Module

The zlib software library and the Intel QuickAssist Technology both implement
the deflate algorithm as described in RFC 1951.

This software accelerates the data compression algorithm in the zlib software
library via the Intel QuickAssist Technology implemented on Intel
Communications Chipsets.

Signed-off-by: venkatasubramanian pattu <venkatasubramanianx.pattu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
This commit is contained in:
venkatasubramanian pattu 2015-07-07 14:43:51 +08:00 committed by Saul Wold
parent 58a0886f0b
commit 3ee02a36e0
2 changed files with 164 additions and 0 deletions

View File

@ -0,0 +1,110 @@
SUMMARY = "Zlib QAT_MEM Memory Management Module for Intel Quick Assist \
Technology"
DESCRIPTION = "This software acelerates the data compression algorithm \
in the zlib software library via the Intel QuickAssist Technology \
implemented on Intel Communications Chipset 89xx and 895x Series based platforms."
HOMEPAGE = "http://zlib.net/"
SECTION = "libs"
LICENSE = "Zlib & GPLv2 & BSD"
LIC_FILES_CHKSUM = "file://${WORKDIR}/zlib-${ZLIB_VERSION}/zlib.h;beginline=4;endline=23;md5=fde612df1e5933c428b73844a0c494fd \
file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \
file://${COMMON_LICENSE_DIR}/BSD;md5=3775480a712fc46a69647678acb234cb"
# For target side versions of openssl enable support for OCF Linux driver
# if they are available.
DEPENDS += "cryptodev-linux pkgconfig qat16"
SRC_URI = "http://www.zlib.net/zlib-${ZLIB_VERSION}.tar.gz;name=zlib \
https://01.org/sites/default/files/page/zlib_shim_0.4.7-002_withdocumentation.zip;name=zlibqat \
file://0001-Fix-for-Zlib-qat-Compilation-issue.patch \
"
SRC_URI[zlib.md5sum] = "44d667c142d7cda120332623eab69f40"
SRC_URI[zlib.sha256sum] = "36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d"
SRC_URI[zlibqat.md5sum] = "dfde8618198aa8d35ecc00d10dcc7000"
SRC_URI[zlibqat.sha256sum] = "8e5786400bbc2a879ae705c864ec63b53ae019b4f2d1c94524a97223847b6e46"
ZLIB_VERSION = "1.2.8"
ZLIB_QAT_VERSION = "0.4.7-002"
S = "${WORKDIR}/zlib-${ZLIB_VERSION}"
export ICP_ROOT = "${PKG_CONFIG_SYSROOT_DIR}"
export ZLIB_ROOT = "${S}"
export ICP_ZLIBQAT = "${S}"
export ICP_BUILD_OUTPUT = "${ICP_ROOT}/lib"
export KERNEL_SOURCE_ROOT = "${STAGING_KERNEL_DIR}"
CFLAGS += "\
-I${ICP_ROOT}/usr/include \
-I${ICP_ROOT}/usr/include/dc \
-I${ZLIB_ROOT}/ \
-D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DUSE_QAT_MEM -I${ZLIB_ROOT}/contrib/qat/qat_mem -D_GNU_SOURCE \
-L${ZLIB_ROOT} -lz \
-L${ICP_ROOT}/usr/lib/ -lpthread -lcrypto -ldl -lrt \
-L${ICP_ROOT}/usr/lib/ -licp_qa_al -losal -ladf_proxy"
inherit module
MODULE_DIR = "${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers"
MEM_PATH = "${S}/contrib/qat"
do_unpack2(){
cd ${WORKDIR}/
unzip zlib_quickassist_patch_l.0.4.7_002_stable.zip
cd zlib_quickassist_patch_l.0.4.7_002_devbranch
tar -xvzf zlib-1.2.8-qat.L.0.4.7-002.tar.gz
cp zlib-1.2.8-qat.patch ${WORKDIR}
}
addtask unpack2 after do_unpack before do_patch
do_patch() {
cd ${S}
patch -p1 < ${WORKDIR}/zlib-1.2.8-qat.patch
patch -p1 < ${WORKDIR}/0001-Fix-for-Zlib-qat-Compilation-issue.patch
}
do_configure() {
cd ${S}
./configure
}
do_compile() {
EXTRA_OEMAKE="'CFLAGS=${CFLAGS} -fPIC'"
cd ${MEM_PATH}/qat_mem/
oe_runmake
cd ${S}/
oe_runmake
cd ${MEM_PATH}/qat_zlib_test/
oe_runmake
}
do_install() {
chrpath -d ${MEM_PATH}/qat_zlib_test/comptestapp
install -m 0755 -d ${MODULE_DIR}/
install -m 0755 -d ${D}${bindir}/
install -m 0755 -d ${D}${sysconfdir}/zlib_conf/
install -m 640 ${MEM_PATH}/qat_mem/qat_mem.ko ${MODULE_DIR}/
install -m 0755 ${WORKDIR}/zlib-${ZLIB_VERSION}/zpipe ${D}${bindir}/
install -m 0755 ${WORKDIR}/zlib-${ZLIB_VERSION}/minigzip ${D}${bindir}/
install -m 0755 ${MEM_PATH}/qat_zlib_test/comptestapp ${D}${bindir}/
install -m 660 ${MEM_PATH}/config/dh895xcc/multi_thread_optimized/* ${D}${sysconfdir}/zlib_conf/
install -m 660 ${MEM_PATH}/config/dh89xxcc/multi_thread_optimized/* ${D}${sysconfdir}/zlib_conf/
}
PACKAGES += "${PN}-app"
FILES_${PN} += " \
${sysconfdir}/zlib_conf/ \
"
FILES_${PN}-app += " \
${bindir}/* \
"
FILES_${PN}-dbg += " \
${bindir}/.debug \
"

View File

@ -0,0 +1,54 @@
From 9ba7bca8e30f76cdc9d667dd7b6d203314301edc Mon Sep 17 00:00:00 2001
From: venkatasubramanian pattu <venkatasubramanianx.pattu@intel.com>
Date: Thu, 11 Jun 2015 11:45:33 +0800
Subject: [PATCH] Fix for Zlib-qat Compilation issue
This patch is used to fix the compliation issue when QAT is enabled with
Zlib.
When compiling the Zlib-qat by default it takes the kernel source from the host machine .
Since we are working on the yocto recipe implementation we need to change the path
of the kernel source by exporting the variable (KERNEL_SOURCE_ROOT) in the main recipe.
Upstream-Status: Inappropriate
Signed-off-by: venkatasubramanian pattu <venkatasubramanianx.pattu@intel.com>
---
contrib/qat/qat_mem/Makefile | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/contrib/qat/qat_mem/Makefile b/contrib/qat/qat_mem/Makefile
index ddf5b59..0a521f2 100644
--- a/contrib/qat/qat_mem/Makefile
+++ b/contrib/qat/qat_mem/Makefile
@@ -61,16 +61,10 @@
#########################################################################
MODULENAME := qat_mem
-KDIR := /lib/modules/$(shell uname -r)/build
+KDIR := $(KERNEL_SOURCE_ROOT)
PWD := $(shell pwd)
-ifeq ($(shell uname -r|grep -c grsec-WR), 1)
-AUTO_CONF=/lib/modules/$(shell uname -r)/build/include/generated/autoconf.h
-else
-AUTO_CONF=/usr/src/kernels/$(shell uname -r)/include/linux/autoconf.h
-endif
-
-CC := gcc -Wall -imacros $(AUTO_CONF)
+CC := gcc -Wall -imacros $(KERNEL_SOURCE_ROOT)/include/generated/autoconf.h
ifeq ($(KERNELRELEASE),)
all: $(MODULENAME)_test
@@ -80,6 +74,8 @@ else
obj-m := $(MODULENAME).o
endif
+modules_install:
+ $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules_install
$(MODULENAME)_test: $(MODULENAME)_test.c
$(CC) -g -o $(MODULENAME)_test $(MODULENAME)_test.c
--
1.9.1