get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/55465/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 55465,
    "url": "http://patches.dpdk.org/api/patches/55465/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20190627104055.8244-2-bruce.richardson@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20190627104055.8244-2-bruce.richardson@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20190627104055.8244-2-bruce.richardson@intel.com",
    "date": "2019-06-27T10:40:48",
    "name": "[v3,1/8] raw/ioat: add initial support for ioat rawdev driver",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "323bd864245297103ae88dd29a24d92a7214a9c4",
    "submitter": {
        "id": 20,
        "url": "http://patches.dpdk.org/api/people/20/?format=api",
        "name": "Bruce Richardson",
        "email": "bruce.richardson@intel.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20190627104055.8244-2-bruce.richardson@intel.com/mbox/",
    "series": [
        {
            "id": 5195,
            "url": "http://patches.dpdk.org/api/series/5195/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=5195",
            "date": "2019-06-27T10:40:47",
            "name": "raw/ioat: driver for Intel QuickData Technology",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/5195/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/55465/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/55465/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id A74782956;\n\tThu, 27 Jun 2019 12:41:07 +0200 (CEST)",
            "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby dpdk.org (Postfix) with ESMTP id 025F12956\n\tfor <dev@dpdk.org>; Thu, 27 Jun 2019 12:41:04 +0200 (CEST)",
            "from orsmga008.jf.intel.com ([10.7.209.65])\n\tby orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t27 Jun 2019 03:41:04 -0700",
            "from silpixa00399126.ir.intel.com (HELO\n\tsilpixa00399126.ger.corp.intel.com) ([10.237.223.2])\n\tby orsmga008.jf.intel.com with ESMTP; 27 Jun 2019 03:41:02 -0700"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.63,423,1557212400\"; d=\"scan'208\";a=\"156198707\"",
        "From": "Bruce Richardson <bruce.richardson@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "thomas@monjalon.net, jerinj@marvell.com,\n\tBruce Richardson <bruce.richardson@intel.com>",
        "Date": "Thu, 27 Jun 2019 11:40:48 +0100",
        "Message-Id": "<20190627104055.8244-2-bruce.richardson@intel.com>",
        "X-Mailer": "git-send-email 2.21.0",
        "In-Reply-To": "<20190627104055.8244-1-bruce.richardson@intel.com>",
        "References": "<20190530212525.40370-1-bruce.richardson@intel.com>\n\t<20190627104055.8244-1-bruce.richardson@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v3 1/8] raw/ioat: add initial support for ioat\n\trawdev driver",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Add stubs for ioat rawdev driver support in DPDK, specifically:\n\n  * makefile and meson build hooks\n  * initial public header file\n  * rawdev main C file, with probe and release functions\n  * release note update announcing the driver\n  * initial documentation for the new section in the rawdev doc\n  * unit test stubs for device unit tests\n\nSigned-off-by: Bruce Richardson <bruce.richardson@intel.com>\n\n---\nV2: don't create a new file for unit testing, add to existing rawdev test\n    file, and place test cases in the driver selftest routine (added later\n    in set)\n    Add new section in document about identifying hardware using lspci\n---\n MAINTAINERS                                 |  6 +-\n app/test/test_rawdev.c                      |  8 ++\n config/common_armv8a_linux                  |  1 +\n config/common_base                          |  5 ++\n config/defconfig_arm-armv7a-linuxapp-gcc    |  1 +\n config/defconfig_ppc_64-power8-linuxapp-gcc |  1 +\n doc/guides/rawdevs/index.rst                |  1 +\n doc/guides/rawdevs/ioat_rawdev.rst          | 63 ++++++++++++++\n doc/guides/rel_notes/release_19_08.rst      | 11 +++\n drivers/raw/Makefile                        |  1 +\n drivers/raw/ioat/Makefile                   | 28 +++++++\n drivers/raw/ioat/ioat_rawdev.c              | 93 +++++++++++++++++++++\n drivers/raw/ioat/meson.build                |  8 ++\n drivers/raw/ioat/rte_ioat_rawdev.h          | 24 ++++++\n drivers/raw/ioat/rte_pmd_ioat_version.map   |  4 +\n drivers/raw/meson.build                     |  4 +-\n mk/rte.app.mk                               |  1 +\n 17 files changed, 258 insertions(+), 2 deletions(-)\n create mode 100644 doc/guides/rawdevs/ioat_rawdev.rst\n create mode 100644 drivers/raw/ioat/Makefile\n create mode 100644 drivers/raw/ioat/ioat_rawdev.c\n create mode 100644 drivers/raw/ioat/meson.build\n create mode 100644 drivers/raw/ioat/rte_ioat_rawdev.h\n create mode 100644 drivers/raw/ioat/rte_pmd_ioat_version.map",
    "diff": "diff --git a/MAINTAINERS b/MAINTAINERS\nindex 0c3b48920..f28c526bc 100644\n--- a/MAINTAINERS\n+++ b/MAINTAINERS\n@@ -1068,6 +1068,11 @@ M: Tianfei zhang <tianfei.zhang@intel.com>\n F: drivers/raw/ifpga_rawdev/\n F: doc/guides/rawdevs/ifpga_rawdev.rst\n \n+IOAT Rawdev\n+M: Bruce Richardson <bruce.richardson@intel.com>\n+F: drivers/raw/ioat/\n+F: doc/guides/rawdevs/ioat_rawdev.rst\n+\n NXP DPAA2 QDMA\n M: Nipun Gupta <nipun.gupta@nxp.com>\n F: drivers/raw/dpaa2_qdma/\n@@ -1078,7 +1083,6 @@ M: Nipun Gupta <nipun.gupta@nxp.com>\n F: drivers/raw/dpaa2_cmdif/\n F: doc/guides/rawdevs/dpaa2_cmdif.rst\n \n-\n Packet processing\n -----------------\n \ndiff --git a/app/test/test_rawdev.c b/app/test/test_rawdev.c\nindex 043a38a13..88549fb61 100644\n--- a/app/test/test_rawdev.c\n+++ b/app/test/test_rawdev.c\n@@ -25,3 +25,11 @@ test_rawdev_selftest_skeleton(void)\n }\n \n REGISTER_TEST_COMMAND(rawdev_autotest, test_rawdev_selftest_skeleton);\n+\n+static int\n+test_rawdev_selftest_ioat(void)\n+{\n+\treturn TEST_SKIPPED;\n+}\n+\n+REGISTER_TEST_COMMAND(ioat_rawdev_autotest, test_rawdev_selftest_ioat);\ndiff --git a/config/common_armv8a_linux b/config/common_armv8a_linux\nindex 72091de1c..481712ebc 100644\n--- a/config/common_armv8a_linux\n+++ b/config/common_armv8a_linux\n@@ -34,5 +34,6 @@ CONFIG_RTE_ARCH_ARM64_MEMCPY=n\n CONFIG_RTE_LIBRTE_FM10K_PMD=n\n CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n\n CONFIG_RTE_LIBRTE_AVP_PMD=n\n+CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=n\n \n CONFIG_RTE_SCHED_VECTOR=n\ndiff --git a/config/common_base b/config/common_base\nindex fa1ae249a..e6b830923 100644\n--- a/config/common_base\n+++ b/config/common_base\n@@ -747,6 +747,11 @@ CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV=n\n #\n CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV=y\n \n+#\n+# Compile PMD for Intel IOAT raw device\n+#\n+CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=y\n+\n #\n # Compile librte_ring\n #\ndiff --git a/config/defconfig_arm-armv7a-linuxapp-gcc b/config/defconfig_arm-armv7a-linuxapp-gcc\nindex c9509b274..ee158ef9d 100644\n--- a/config/defconfig_arm-armv7a-linuxapp-gcc\n+++ b/config/defconfig_arm-armv7a-linuxapp-gcc\n@@ -54,3 +54,4 @@ CONFIG_RTE_LIBRTE_QEDE_PMD=n\n CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n\n CONFIG_RTE_LIBRTE_AVP_PMD=n\n CONFIG_RTE_LIBRTE_NFP_PMD=n\n+CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=n\ndiff --git a/config/defconfig_ppc_64-power8-linuxapp-gcc b/config/defconfig_ppc_64-power8-linuxapp-gcc\nindex 7e248b755..9f3670ec0 100644\n--- a/config/defconfig_ppc_64-power8-linuxapp-gcc\n+++ b/config/defconfig_ppc_64-power8-linuxapp-gcc\n@@ -56,3 +56,4 @@ CONFIG_RTE_LIBRTE_ENIC_PMD=n\n CONFIG_RTE_LIBRTE_FM10K_PMD=n\n CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n\n CONFIG_RTE_LIBRTE_AVP_PMD=n\n+CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=n\ndiff --git a/doc/guides/rawdevs/index.rst b/doc/guides/rawdevs/index.rst\nindex 7c3bd9586..0a21989e4 100644\n--- a/doc/guides/rawdevs/index.rst\n+++ b/doc/guides/rawdevs/index.rst\n@@ -14,3 +14,4 @@ application through rawdev API.\n     dpaa2_cmdif\n     dpaa2_qdma\n     ifpga_rawdev\n+    ioat_rawdev\ndiff --git a/doc/guides/rawdevs/ioat_rawdev.rst b/doc/guides/rawdevs/ioat_rawdev.rst\nnew file mode 100644\nindex 000000000..0c612e73a\n--- /dev/null\n+++ b/doc/guides/rawdevs/ioat_rawdev.rst\n@@ -0,0 +1,63 @@\n+..  SPDX-License-Identifier: BSD-3-Clause\n+    Copyright(c) 2019 Intel Corporation.\n+\n+.. include:: <isonum.txt>\n+\n+IOAT Rawdev Driver for Intel\\ |reg| QuickData Technology\n+======================================================================\n+\n+The ``ioat`` rawdev driver provides a poll-mode driver (PMD) for Intel\\ |reg|\n+QuickData Technology, part of Intel\\ |reg| I/O Acceleration Technology\n+`(Intel I/OAT)\n+<https://www.intel.com/content/www/us/en/wireless-network/accel-technology.html>`_.\n+This PMD, when used on supported hardware, allows data copies, for example,\n+cloning packet data, to be accelerated by that hardware rather than having to\n+be done by software, freeing up CPU cycles for other tasks.\n+\n+Hardware Requirements\n+----------------------\n+\n+On Linux, the presence of an Intel\\ |reg| QuickData Technology hardware can\n+be detected by checking the output of the ``lspci`` command, where the\n+hardware will be often listed as \"Crystal Beach DMA\" or \"CBDMA\". For\n+example, on a system with Intel\\ |reg| Xeon\\ |reg| CPU E5-2699 v4 @2.20GHz,\n+lspci shows:\n+\n+.. code-block:: console\n+\n+  # lspci | grep DMA\n+  00:04.0 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)\n+  00:04.1 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 1 (rev 01)\n+  00:04.2 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 2 (rev 01)\n+  00:04.3 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 3 (rev 01)\n+  00:04.4 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 4 (rev 01)\n+  00:04.5 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 5 (rev 01)\n+  00:04.6 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 6 (rev 01)\n+  00:04.7 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 7 (rev 01)\n+\n+On a system with Intel\\ |reg| Xeon\\ |reg| Gold 6154 CPU @ 3.00GHz, lspci\n+shows:\n+\n+.. code-block:: console\n+\n+  # lspci | grep DMA\n+  00:04.0 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)\n+  00:04.1 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)\n+  00:04.2 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)\n+  00:04.3 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)\n+  00:04.4 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)\n+  00:04.5 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)\n+  00:04.6 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)\n+  00:04.7 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)\n+\n+\n+Compilation\n+------------\n+\n+For builds done with ``make``, the driver compilation is enabled by the\n+``CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV`` build configuration option. This is\n+enabled by default in builds for x86 platforms, and disabled in other\n+configurations.\n+\n+For builds using ``meson`` and ``ninja``, the driver will be built when the\n+target platform is x86-based.\ndiff --git a/doc/guides/rel_notes/release_19_08.rst b/doc/guides/rel_notes/release_19_08.rst\nindex 3da266705..720c13f8b 100644\n--- a/doc/guides/rel_notes/release_19_08.rst\n+++ b/doc/guides/rel_notes/release_19_08.rst\n@@ -1,6 +1,8 @@\n ..  SPDX-License-Identifier: BSD-3-Clause\n     Copyright 2019 The DPDK contributors\n \n+.. include:: <isonum.txt>\n+\n DPDK Release 19.08\n ==================\n \n@@ -99,6 +101,15 @@ New Features\n   Updated ``librte_telemetry`` to fetch the global metrics from the\n   ``librte_metrics`` library.\n \n+* **Added Intel QuickData Technology PMD**\n+\n+  The PMD for Intel\\ |reg|  QuickData Technology, part of\n+  Intel\\ |reg|  I/O Acceleration Technology `(Intel I/OAT)\n+  <https://www.intel.com/content/www/us/en/wireless-network/accel-technology.html>`_,\n+  allows data copies to be done by hardware instead\n+  of via software, reducing cycles spent copying large blocks of data in\n+  applications.\n+\n \n Removed Items\n -------------\ndiff --git a/drivers/raw/Makefile b/drivers/raw/Makefile\nindex 8e29b4a56..c1b85c8c7 100644\n--- a/drivers/raw/Makefile\n+++ b/drivers/raw/Makefile\n@@ -10,5 +10,6 @@ DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV) += dpaa2_cmdif\n DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV) += dpaa2_qdma\n endif\n DIRS-$(CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV) += ifpga_rawdev\n+DIRS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV) += ioat\n \n include $(RTE_SDK)/mk/rte.subdir.mk\ndiff --git a/drivers/raw/ioat/Makefile b/drivers/raw/ioat/Makefile\nnew file mode 100644\nindex 000000000..7726e310a\n--- /dev/null\n+++ b/drivers/raw/ioat/Makefile\n@@ -0,0 +1,28 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright(c) 2019 Intel Corporation\n+\n+include $(RTE_SDK)/mk/rte.vars.mk\n+\n+# library name\n+LIB = librte_pmd_ioat_rawdev.a\n+\n+# build flags\n+CFLAGS += -O3\n+CFLAGS += $(WERROR_FLAGS)\n+\n+LDLIBS += -lrte_eal -lrte_rawdev\n+LDLIBS += -lrte_pci -lrte_bus_pci\n+\n+# library version\n+LIBABIVER := 1\n+\n+# versioning export map\n+EXPORT_MAP := rte_pmd_ioat_version.map\n+\n+# library source files\n+SRCS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV) += ioat_rawdev.c\n+\n+# export include files\n+SYMLINK-y-include += rte_ioat_rawdev.h\n+\n+include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/drivers/raw/ioat/ioat_rawdev.c b/drivers/raw/ioat/ioat_rawdev.c\nnew file mode 100644\nindex 000000000..d9fc3091a\n--- /dev/null\n+++ b/drivers/raw/ioat/ioat_rawdev.c\n@@ -0,0 +1,93 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2019 Intel Corporation\n+ */\n+\n+#include <rte_bus_pci.h>\n+#include <rte_rawdev_pmd.h>\n+\n+#include \"rte_ioat_rawdev.h\"\n+\n+/* Dynamic log type identifier */\n+int ioat_pmd_logtype;\n+\n+static struct rte_pci_driver ioat_pmd_drv;\n+\n+#define IOAT_VENDOR_ID\t\t0x8086\n+#define IOAT_DEVICE_ID\t\t0x2021\n+\n+#define IOAT_PMD_LOG(level, fmt, args...) rte_log(RTE_LOG_ ## level, \\\n+\tioat_pmd_logtype, \"%s(): \" fmt \"\\n\", __func__, ##args)\n+\n+#define IOAT_PMD_DEBUG(fmt, args...)  IOAT_PMD_LOG(DEBUG, fmt, ## args)\n+#define IOAT_PMD_INFO(fmt, args...)   IOAT_PMD_LOG(INFO, fmt, ## args)\n+#define IOAT_PMD_ERR(fmt, args...)    IOAT_PMD_LOG(ERR, fmt, ## args)\n+#define IOAT_PMD_WARN(fmt, args...)   IOAT_PMD_LOG(WARNING, fmt, ## args)\n+\n+static int\n+ioat_rawdev_create(const char *name, struct rte_pci_device *dev)\n+{\n+\tRTE_SET_USED(name);\n+\tRTE_SET_USED(dev);\n+\treturn 0;\n+}\n+\n+static int\n+ioat_rawdev_destroy(const char *name)\n+{\n+\tRTE_SET_USED(name);\n+\treturn 0;\n+}\n+\n+static int\n+ioat_rawdev_probe(struct rte_pci_driver *drv, struct rte_pci_device *dev)\n+{\n+\tchar name[32];\n+\tint ret = 0;\n+\n+\n+\trte_pci_device_name(&dev->addr, name, sizeof(name));\n+\tIOAT_PMD_INFO(\"Init %s on NUMA node %d\", name, dev->device.numa_node);\n+\n+\tdev->device.driver = &drv->driver;\n+\tret = ioat_rawdev_create(name, dev);\n+\treturn ret;\n+}\n+\n+static int\n+ioat_rawdev_remove(struct rte_pci_device *dev)\n+{\n+\tchar name[32];\n+\tint ret;\n+\n+\trte_pci_device_name(&dev->addr, name, sizeof(name));\n+\n+\tIOAT_PMD_INFO(\"Closing %s on NUMA node %d\",\n+\t\t\tname, dev->device.numa_node);\n+\n+\tret = ioat_rawdev_destroy(name);\n+\treturn ret;\n+}\n+\n+static const struct rte_pci_id pci_id_ioat_map[] = {\n+\t{ RTE_PCI_DEVICE(IOAT_VENDOR_ID, IOAT_DEVICE_ID) },\n+\t{ .vendor_id = 0, /* sentinel */ },\n+};\n+\n+static struct rte_pci_driver ioat_pmd_drv = {\n+\t.id_table = pci_id_ioat_map,\n+\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |\n+\t\t     RTE_PCI_DRV_IOVA_AS_VA,\n+\t.probe = ioat_rawdev_probe,\n+\t.remove = ioat_rawdev_remove,\n+};\n+\n+RTE_PMD_REGISTER_PCI(IOAT_PMD_RAWDEV_NAME, ioat_pmd_drv);\n+RTE_PMD_REGISTER_PCI_TABLE(IOAT_PMD_RAWDEV_NAME, pci_id_ioat_map);\n+RTE_PMD_REGISTER_KMOD_DEP(IOAT_PMD_RAWDEV_NAME, \"* igb_uio | uio_pci_generic\");\n+\n+RTE_INIT(ioat_pmd_init_log)\n+{\n+\tioat_pmd_logtype = rte_log_register(IOAT_PMD_LOG_NAME);\n+\tif (ioat_pmd_logtype >= 0)\n+\t\trte_log_set_level(ioat_pmd_logtype, RTE_LOG_INFO);\n+}\ndiff --git a/drivers/raw/ioat/meson.build b/drivers/raw/ioat/meson.build\nnew file mode 100644\nindex 000000000..ba7620a68\n--- /dev/null\n+++ b/drivers/raw/ioat/meson.build\n@@ -0,0 +1,8 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright 2019 Intel Corporation\n+\n+build = dpdk_conf.has('RTE_ARCH_X86')\n+sources = files('ioat_rawdev.c')\n+deps += ['rawdev', 'bus_pci']\n+\n+install_headers('rte_ioat_rawdev.h')\ndiff --git a/drivers/raw/ioat/rte_ioat_rawdev.h b/drivers/raw/ioat/rte_ioat_rawdev.h\nnew file mode 100644\nindex 000000000..e77406403\n--- /dev/null\n+++ b/drivers/raw/ioat/rte_ioat_rawdev.h\n@@ -0,0 +1,24 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2019 Intel Corporation\n+ */\n+\n+#ifndef _RTE_IOAT_RAWDEV_H_\n+#define _RTE_IOAT_RAWDEV_H_\n+\n+/**\n+ * @file rte_ioat_rawdev.h\n+ *\n+ * Definitions for using the ioat rawdev device driver\n+ *\n+ * @warning\n+ * @b EXPERIMENTAL: these structures and APIs may change without prior notice\n+ */\n+\n+/** Name of the device driver */\n+#define IOAT_PMD_RAWDEV_NAME rawdev_ioat\n+/** String reported as the device driver name by rte_rawdev_info_get() */\n+#define IOAT_PMD_RAWDEV_NAME_STR \"rawdev_ioat\"\n+/** Name used to adjust the log level for this driver */\n+#define IOAT_PMD_LOG_NAME \"rawdev.ioat\"\n+\n+#endif\ndiff --git a/drivers/raw/ioat/rte_pmd_ioat_version.map b/drivers/raw/ioat/rte_pmd_ioat_version.map\nnew file mode 100644\nindex 000000000..9a61188cd\n--- /dev/null\n+++ b/drivers/raw/ioat/rte_pmd_ioat_version.map\n@@ -0,0 +1,4 @@\n+DPDK_19.08 {\n+\n+\tlocal: *;\n+};\ndiff --git a/drivers/raw/meson.build b/drivers/raw/meson.build\nindex a61cdccef..2af8a70d4 100644\n--- a/drivers/raw/meson.build\n+++ b/drivers/raw/meson.build\n@@ -1,7 +1,9 @@\n # SPDX-License-Identifier: BSD-3-Clause\n # Copyright 2018 NXP\n \n-drivers = ['skeleton_rawdev', 'dpaa2_cmdif', 'dpaa2_qdma', 'ifpga_rawdev']\n+drivers = ['dpaa2_cmdif', 'dpaa2_qdma',\n+\t'ifpga_rawdev', 'ioat',\n+\t'skeleton_rawdev']\n std_deps = ['rawdev']\n config_flag_fmt = 'RTE_LIBRTE_PMD_@0@_RAWDEV'\n driver_name_fmt = 'rte_pmd_@0@'\ndiff --git a/mk/rte.app.mk b/mk/rte.app.mk\nindex 81be289a8..2a534796f 100644\n--- a/mk/rte.app.mk\n+++ b/mk/rte.app.mk\n@@ -306,6 +306,7 @@ ifeq ($(CONFIG_RTE_LIBRTE_IFPGA_BUS),y)\n _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV)   += -lrte_pmd_ifpga_rawdev\n _LDLIBS-$(CONFIG_RTE_LIBRTE_IPN3KE_PMD)       += -lrte_pmd_ipn3ke\n endif # CONFIG_RTE_LIBRTE_IFPGA_BUS\n+_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV)   += -lrte_pmd_ioat_rawdev\n endif # CONFIG_RTE_LIBRTE_RAWDEV\n \n endif # !CONFIG_RTE_BUILD_SHARED_LIBS\n",
    "prefixes": [
        "v3",
        "1/8"
    ]
}