All of lore.kernel.org
 help / color / mirror / Atom feed
From: Deepak Kumar Jain <deepak.k.jain@intel.com>
To: dev@dpdk.org
Cc: pablo.de.lara.guarch@intel.com,
	Deepak Kumar JAIN <deepak.k.jain@intel.com>
Subject: [PATCH v2] crypto/qat: add Intel(R) QuickAssist C3xxx device
Date: Wed, 14 Sep 2016 10:56:33 +0100	[thread overview]
Message-ID: <1473846993-29139-1-git-send-email-deepak.k.jain@intel.com> (raw)
In-Reply-To: <1472214451-163515-1-git-send-email-deepak.k.jain@intel.com>

From: Deepak Kumar JAIN <deepak.k.jain@intel.com>

Signed-off-by: Deepak Kumar Jain <deepak.k.jain@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
---
Changes in v2:
Added new feature information in release_16_11.rst file.

 doc/guides/cryptodevs/qat.rst          | 76 +++++++++++++++++++++++++++++++---
 doc/guides/rel_notes/release_16_11.rst |  3 ++
 drivers/crypto/qat/rte_qat_cryptodev.c |  3 ++
 3 files changed, 76 insertions(+), 6 deletions(-)

diff --git a/doc/guides/cryptodevs/qat.rst b/doc/guides/cryptodevs/qat.rst
index 3819e51..78cadc4 100644
--- a/doc/guides/cryptodevs/qat.rst
+++ b/doc/guides/cryptodevs/qat.rst
@@ -31,8 +31,8 @@ Intel(R) QuickAssist (QAT) Crypto Poll Mode Driver
 ==================================================
 
 The QAT PMD provides poll mode crypto driver support for **Intel QuickAssist
-Technology DH895xxC** and **Intel QuickAssist Technology C62x**
-hardware accelerator.
+Technology DH895xxC** , **Intel QuickAssist Technology C62x** and
+**Intel QuickAssist Technology C3xxx** hardware accelerator.
 
 
 Features
@@ -75,6 +75,7 @@ Limitations
 * Snow3g(UEA2) supported only if cipher length, cipher offset fields are byte-aligned.
 * Snow3g(UIA2) supported only if hash length, hash offset fields are byte-aligned.
 * No BSD support as BSD QAT kernel driver not available.
+* Snow3g (UIA2) not supported in the PMD of **Intel QuickAssist Technology C3xxx** device.
 
 
 Installation
@@ -98,14 +99,16 @@ If you are running on kernel 4.4 or greater, see instructions for
 `Installation using kernel.org driver`_ below. If you are on a kernel earlier
 than 4.4, see `Installation using 01.org QAT driver`_.
 
-For **Intel QuickAssist Technology C62x** device, kernel 4.5 or greater is
-needed. See instructions for `Installation using kernel.org driver`_ below.
+For **Intel QuickAssist Technology C62x** and **Intel QuickAssist Technology C3xxx**
+device, kernel 4.5 or greater is needed.
+See instructions for `Installation using kernel.org driver`_ below.
 
 
 Installation using 01.org QAT driver
 ------------------------------------
 
-NOTE: There is no driver available for **Intel QuickAssist Technology C62x** on 01.org.
+NOTE: There is no driver available for **Intel QuickAssist Technology C62x** and
+**Intel QuickAssist Technology C3xxx** devices on 01.org.
 
 Download the latest QuickAssist Technology Driver from `01.org
 <https://01.org/packet-processing/intel%C2%AE-quickassist-technology-drivers-and-patches>`_
@@ -184,6 +187,7 @@ Installation using kernel.org driver
 ------------------------------------
 
 For **Intel QuickAssist Technology DH895xxC**:
+
 Assuming you are running on at least a 4.4 kernel, you can use the stock kernel.org QAT
 driver to start the QAT hardware.
 
@@ -242,7 +246,6 @@ cd to your linux source root directory and start the qat kernel modules:
 **Note**:The following warning in /var/log/messages can be ignored:
     ``IOMMU should be enabled for SR-IOV to work correctly``
 
-
 For **Intel QuickAssist Technology C62x**:
 Assuming you are running on at least a 4.5 kernel, you can use the stock kernel.org QAT
 driver to start the QAT hardware.
@@ -287,6 +290,47 @@ the bdf of the 48 VF devices are available per ``C62x`` device.
 
 To complete the installation - follow instructions in `Binding the available VFs to the DPDK UIO driver`_.
 
+For **Intel QuickAssist Technology C3xxx**:
+Assuming you are running on at least a 4.5 kernel, you can use the stock kernel.org QAT
+driver to start the QAT hardware.
+
+The steps below assume you are:
+
+* Running DPDK on a platform with one ``C3xxx`` device.
+* On a kernel at least version 4.5.
+
+In BIOS ensure that SRIOV is enabled and VT-d is disabled.
+
+Ensure the QAT driver is loaded on your system, by executing::
+
+    lsmod | grep qat
+
+You should see the following output::
+
+    qat_c3xxx               16384  0
+    intel_qat             122880  1 qat_c3xxx
+
+Next, you need to expose the Virtual Functions (VFs) using the sysfs file system.
+
+First find the bdf of the physical function (PF) of the C3xxx device
+
+    lspci -d:19e2
+
+You should see output similar to::
+
+    01:00.0 Co-processor: Intel Corporation Device 19e2
+
+For c3xxx device there is 1 PFs.
+Using the sysfs, enable the 16 VFs::
+
+    echo 16 > /sys/bus/pci/drivers/c3xxx/0000\:01\:00.0/sriov_numvfs
+
+If you get an error, it's likely you're using a QAT kernel driver earlier than kernel 4.5.
+
+To verify that the VFs are available for use - use ``lspci -d:19e3`` to confirm
+the bdf of the 16 VF devices are available per ``C3xxx`` device.
+To complete the installation - follow instructions in `Binding the available VFs to the DPDK UIO driver`_.
+
 Binding the available VFs to the DPDK UIO driver
 ------------------------------------------------
 
@@ -332,3 +376,23 @@ if yours are different adjust the unbind command below::
    echo "8086 37c9" > /sys/bus/pci/drivers/igb_uio/new_id
 
 You can use ``lspci -vvd:37c9`` to confirm that all devices are now in use by igb_uio kernel driver.
+
+For **Intel(R) QuickAssist Technology C3xxx** device:
+The unbind command below assumes ``bdfs`` of ``01:01.00-01:02.07``,
+if yours are different adjust the unbind command below::
+
+   cd $RTE_SDK
+   modprobe uio
+   insmod ./build/kmod/igb_uio.ko
+
+   for device in $(seq 1 2); do \
+       for fn in $(seq 0 7); do \
+           echo -n 0000:01:0${device}.${fn} > \
+           /sys/bus/pci/devices/0000\:01\:0${device}.${fn}/driver/unbind; \
+
+       done; \
+   done
+
+   echo "8086 19e3" > /sys/bus/pci/drivers/igb_uio/new_id
+
+You can use ``lspci -vvd:19e3`` to confirm that all devices are now in use by igb_uio kernel driver.
diff --git a/doc/guides/rel_notes/release_16_11.rst b/doc/guides/rel_notes/release_16_11.rst
index 5db495e..4bc67e0 100644
--- a/doc/guides/rel_notes/release_16_11.rst
+++ b/doc/guides/rel_notes/release_16_11.rst
@@ -36,6 +36,9 @@ New Features
 
      This section is a comment. Make sure to start the actual text at the margin.
 
+* ** Added support of C3xxx Device in QAT PMD.**
+  Support for Device c3xxx has been enabled in QAT PMD.
+
 * ** Added support of C62XX Device in QAT PMD.**
   Support for Device c62xx has been enabled in QAT PMD.
 
diff --git a/drivers/crypto/qat/rte_qat_cryptodev.c b/drivers/crypto/qat/rte_qat_cryptodev.c
index e606eb5..eb929b5 100644
--- a/drivers/crypto/qat/rte_qat_cryptodev.c
+++ b/drivers/crypto/qat/rte_qat_cryptodev.c
@@ -74,6 +74,9 @@ static struct rte_pci_id pci_id_qat_map[] = {
 		{
 			RTE_PCI_DEVICE(0x8086, 0x37c9),
 		},
+		{
+			RTE_PCI_DEVICE(0x8086, 0x19e3),
+		},
 		{.device_id = 0},
 };
 
-- 
2.5.5

  parent reply	other threads:[~2016-09-14  9:56 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-26 12:27 [PATCH] crypto/qat: add Intel(R) QuickAssist C3xxx device Deepak Kumar Jain
2016-08-26 13:06 ` Trahe, Fiona
2016-09-07 18:07 ` De Lara Guarch, Pablo
2016-09-07 19:34   ` Jain, Deepak K
2016-09-14  9:56 ` Deepak Kumar Jain [this message]
2016-09-19 16:37   ` [PATCH v3] " Deepak Kumar Jain
2016-09-20  0:01     ` De Lara Guarch, Pablo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1473846993-29139-1-git-send-email-deepak.k.jain@intel.com \
    --to=deepak.k.jain@intel.com \
    --cc=dev@dpdk.org \
    --cc=pablo.de.lara.guarch@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.