From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id BE498A0487 for ; Mon, 1 Jul 2019 10:29:31 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B7F0A2BC8; Mon, 1 Jul 2019 10:29:30 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 381FB23D for ; Mon, 1 Jul 2019 10:29:29 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Jul 2019 01:29:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,438,1557212400"; d="scan'208";a="157224244" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga008.jf.intel.com with ESMTP; 01 Jul 2019 01:29:27 -0700 Received: from fmsmsx155.amr.corp.intel.com (10.18.116.71) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 1 Jul 2019 01:29:25 -0700 Received: from shsmsx153.ccr.corp.intel.com (10.239.6.53) by FMSMSX155.amr.corp.intel.com (10.18.116.71) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 1 Jul 2019 01:29:24 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.3]) by SHSMSX153.ccr.corp.intel.com ([169.254.12.60]) with mapi id 14.03.0439.000; Mon, 1 Jul 2019 16:29:22 +0800 From: "Hu, Jiayu" To: "Richardson, Bruce" , "dev@dpdk.org" CC: "thomas@monjalon.net" , "jerinj@marvell.com" , "Richardson, Bruce" Thread-Topic: [dpdk-dev] [PATCH v3 1/8] raw/ioat: add initial support for ioat rawdev driver Thread-Index: AQHVLNTka3gHUT9MgUqSODCeLt1V+6a1c8ww Date: Mon, 1 Jul 2019 08:29:21 +0000 Message-ID: References: <20190530212525.40370-1-bruce.richardson@intel.com> <20190627104055.8244-1-bruce.richardson@intel.com> <20190627104055.8244-2-bruce.richardson@intel.com> In-Reply-To: <20190627104055.8244-2-bruce.richardson@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.600.7 dlp-reaction: no-action x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNGU3MGZmM2QtMTJjOC00ZjJhLWFmZGUtZDhiMzY5Nzg1MDg3IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiaGJJNTk4eW5MU1FPa1ZkQndwUVBvV1c5cTNLVnhHcjZ2SkpSbm5vM0loKzJYdGVwcVoyUkFuZTUyeWxTUVFJMCJ9 x-ctpclassification: CTP_NT x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v3 1/8] raw/ioat: add initial support for ioat rawdev driver X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Sorry for the incorrect format in the last mail. The comment is repeated below. > -----Original Message----- > From: dev On Behalf Of Bruce Richardson > Sent: Thursday, June 27, 2019 6:41 PM > To: dev@dpdk.org > Cc: thomas@monjalon.net; jerinj@marvell.com; Richardson, Bruce > > Subject: [dpdk-dev] [PATCH v3 1/8] raw/ioat: add initial support for ioat > rawdev driver >=20 > Add stubs for ioat rawdev driver support in DPDK, specifically: >=20 > * makefile and meson build hooks > * initial public header file > * rawdev main C file, with probe and release functions > * release note update announcing the driver > * initial documentation for the new section in the rawdev doc > * unit test stubs for device unit tests >=20 > Signed-off-by: Bruce Richardson >=20 > --- > V2: don't create a new file for unit testing, add to existing rawdev test > file, and place test cases in the driver selftest routine (added late= r > in set) > Add new section in document about identifying hardware using lspci > --- > MAINTAINERS | 6 +- > app/test/test_rawdev.c | 8 ++ > config/common_armv8a_linux | 1 + > config/common_base | 5 ++ > config/defconfig_arm-armv7a-linuxapp-gcc | 1 + > config/defconfig_ppc_64-power8-linuxapp-gcc | 1 + > doc/guides/rawdevs/index.rst | 1 + > doc/guides/rawdevs/ioat_rawdev.rst | 63 ++++++++++++++ > doc/guides/rel_notes/release_19_08.rst | 11 +++ > drivers/raw/Makefile | 1 + > drivers/raw/ioat/Makefile | 28 +++++++ > drivers/raw/ioat/ioat_rawdev.c | 93 +++++++++++++++++++++ > drivers/raw/ioat/meson.build | 8 ++ > drivers/raw/ioat/rte_ioat_rawdev.h | 24 ++++++ > drivers/raw/ioat/rte_pmd_ioat_version.map | 4 + > drivers/raw/meson.build | 4 +- > mk/rte.app.mk | 1 + > 17 files changed, 258 insertions(+), 2 deletions(-) > create mode 100644 doc/guides/rawdevs/ioat_rawdev.rst > create mode 100644 drivers/raw/ioat/Makefile > create mode 100644 drivers/raw/ioat/ioat_rawdev.c > create mode 100644 drivers/raw/ioat/meson.build > create mode 100644 drivers/raw/ioat/rte_ioat_rawdev.h > create mode 100644 drivers/raw/ioat/rte_pmd_ioat_version.map >=20 > diff --git a/MAINTAINERS b/MAINTAINERS > index 0c3b48920..f28c526bc 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1068,6 +1068,11 @@ M: Tianfei zhang > F: drivers/raw/ifpga_rawdev/ > F: doc/guides/rawdevs/ifpga_rawdev.rst >=20 > +IOAT Rawdev > +M: Bruce Richardson > +F: drivers/raw/ioat/ > +F: doc/guides/rawdevs/ioat_rawdev.rst > + > NXP DPAA2 QDMA > M: Nipun Gupta > F: drivers/raw/dpaa2_qdma/ > @@ -1078,7 +1083,6 @@ M: Nipun Gupta > F: drivers/raw/dpaa2_cmdif/ > F: doc/guides/rawdevs/dpaa2_cmdif.rst >=20 > - > Packet processing > ----------------- >=20 > diff --git a/app/test/test_rawdev.c b/app/test/test_rawdev.c > index 043a38a13..88549fb61 100644 > --- a/app/test/test_rawdev.c > +++ b/app/test/test_rawdev.c > @@ -25,3 +25,11 @@ test_rawdev_selftest_skeleton(void) > } >=20 > REGISTER_TEST_COMMAND(rawdev_autotest, > test_rawdev_selftest_skeleton); > + > +static int > +test_rawdev_selftest_ioat(void) > +{ > + return TEST_SKIPPED; > +} > + > +REGISTER_TEST_COMMAND(ioat_rawdev_autotest, > test_rawdev_selftest_ioat); > diff --git a/config/common_armv8a_linux b/config/common_armv8a_linux > index 72091de1c..481712ebc 100644 > --- a/config/common_armv8a_linux > +++ b/config/common_armv8a_linux > @@ -34,5 +34,6 @@ CONFIG_RTE_ARCH_ARM64_MEMCPY=3Dn > CONFIG_RTE_LIBRTE_FM10K_PMD=3Dn > CONFIG_RTE_LIBRTE_SFC_EFX_PMD=3Dn > CONFIG_RTE_LIBRTE_AVP_PMD=3Dn > +CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=3Dn >=20 > CONFIG_RTE_SCHED_VECTOR=3Dn > diff --git a/config/common_base b/config/common_base > index fa1ae249a..e6b830923 100644 > --- a/config/common_base > +++ b/config/common_base > @@ -747,6 +747,11 @@ > CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV=3Dn > # > CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV=3Dy >=20 > +# > +# Compile PMD for Intel IOAT raw device > +# > +CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=3Dy > + > # > # Compile librte_ring > # > diff --git a/config/defconfig_arm-armv7a-linuxapp-gcc > b/config/defconfig_arm-armv7a-linuxapp-gcc > index c9509b274..ee158ef9d 100644 > --- a/config/defconfig_arm-armv7a-linuxapp-gcc > +++ b/config/defconfig_arm-armv7a-linuxapp-gcc > @@ -54,3 +54,4 @@ CONFIG_RTE_LIBRTE_QEDE_PMD=3Dn > CONFIG_RTE_LIBRTE_SFC_EFX_PMD=3Dn > CONFIG_RTE_LIBRTE_AVP_PMD=3Dn > CONFIG_RTE_LIBRTE_NFP_PMD=3Dn > +CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=3Dn > diff --git a/config/defconfig_ppc_64-power8-linuxapp-gcc > b/config/defconfig_ppc_64-power8-linuxapp-gcc > index 7e248b755..9f3670ec0 100644 > --- a/config/defconfig_ppc_64-power8-linuxapp-gcc > +++ b/config/defconfig_ppc_64-power8-linuxapp-gcc > @@ -56,3 +56,4 @@ CONFIG_RTE_LIBRTE_ENIC_PMD=3Dn > CONFIG_RTE_LIBRTE_FM10K_PMD=3Dn > CONFIG_RTE_LIBRTE_SFC_EFX_PMD=3Dn > CONFIG_RTE_LIBRTE_AVP_PMD=3Dn > +CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV=3Dn > diff --git a/doc/guides/rawdevs/index.rst b/doc/guides/rawdevs/index.rst > index 7c3bd9586..0a21989e4 100644 > --- a/doc/guides/rawdevs/index.rst > +++ b/doc/guides/rawdevs/index.rst > @@ -14,3 +14,4 @@ application through rawdev API. > dpaa2_cmdif > dpaa2_qdma > ifpga_rawdev > + ioat_rawdev > diff --git a/doc/guides/rawdevs/ioat_rawdev.rst > b/doc/guides/rawdevs/ioat_rawdev.rst > new file mode 100644 > index 000000000..0c612e73a > --- /dev/null > +++ b/doc/guides/rawdevs/ioat_rawdev.rst > @@ -0,0 +1,63 @@ > +.. SPDX-License-Identifier: BSD-3-Clause > + Copyright(c) 2019 Intel Corporation. > + > +.. include:: > + > +IOAT Rawdev Driver for Intel\ |reg| QuickData Technology > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D=3D=3D=3D=3D > + > +The ``ioat`` rawdev driver provides a poll-mode driver (PMD) for Intel\ = |reg| > +QuickData Technology, part of Intel\ |reg| I/O Acceleration Technology > +`(Intel I/OAT) > + technology.html>`_. > +This PMD, when used on supported hardware, allows data copies, for > example, > +cloning packet data, to be accelerated by that hardware rather than havi= ng > to > +be done by software, freeing up CPU cycles for other tasks. > + > +Hardware Requirements > +---------------------- > + > +On Linux, the presence of an Intel\ |reg| QuickData Technology hardware > can > +be detected by checking the output of the ``lspci`` command, where the > +hardware will be often listed as "Crystal Beach DMA" or "CBDMA". For > +example, on a system with Intel\ |reg| Xeon\ |reg| CPU E5-2699 v4 > @2.20GHz, > +lspci shows: > + > +.. code-block:: console > + > + # lspci | grep DMA > + 00:04.0 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeo= n > E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01) > + 00:04.1 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeo= n > E3 v4/Xeon D Crystal Beach DMA Channel 1 (rev 01) > + 00:04.2 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeo= n > E3 v4/Xeon D Crystal Beach DMA Channel 2 (rev 01) > + 00:04.3 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeo= n > E3 v4/Xeon D Crystal Beach DMA Channel 3 (rev 01) > + 00:04.4 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeo= n > E3 v4/Xeon D Crystal Beach DMA Channel 4 (rev 01) > + 00:04.5 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeo= n > E3 v4/Xeon D Crystal Beach DMA Channel 5 (rev 01) > + 00:04.6 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeo= n > E3 v4/Xeon D Crystal Beach DMA Channel 6 (rev 01) > + 00:04.7 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeo= n > E3 v4/Xeon D Crystal Beach DMA Channel 7 (rev 01) > + > +On a system with Intel\ |reg| Xeon\ |reg| Gold 6154 CPU @ 3.00GHz, lspci > +shows: > + > +.. code-block:: console > + > + # lspci | grep DMA > + 00:04.0 System peripheral: Intel Corporation Sky Lake-E CBDMA Register= s > (rev 04) > + 00:04.1 System peripheral: Intel Corporation Sky Lake-E CBDMA Register= s > (rev 04) > + 00:04.2 System peripheral: Intel Corporation Sky Lake-E CBDMA Register= s > (rev 04) > + 00:04.3 System peripheral: Intel Corporation Sky Lake-E CBDMA Register= s > (rev 04) > + 00:04.4 System peripheral: Intel Corporation Sky Lake-E CBDMA Register= s > (rev 04) > + 00:04.5 System peripheral: Intel Corporation Sky Lake-E CBDMA Register= s > (rev 04) > + 00:04.6 System peripheral: Intel Corporation Sky Lake-E CBDMA Register= s > (rev 04) > + 00:04.7 System peripheral: Intel Corporation Sky Lake-E CBDMA Register= s > (rev 04) > + > + > +Compilation > +------------ > + > +For builds done with ``make``, the driver compilation is enabled by the > +``CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV`` build configuration option. > This is > +enabled by default in builds for x86 platforms, and disabled in other > +configurations. > + > +For builds using ``meson`` and ``ninja``, the driver will be built when = the > +target platform is x86-based. > diff --git a/doc/guides/rel_notes/release_19_08.rst > b/doc/guides/rel_notes/release_19_08.rst > index 3da266705..720c13f8b 100644 > --- a/doc/guides/rel_notes/release_19_08.rst > +++ b/doc/guides/rel_notes/release_19_08.rst > @@ -1,6 +1,8 @@ > .. SPDX-License-Identifier: BSD-3-Clause > Copyright 2019 The DPDK contributors >=20 > +.. include:: > + > DPDK Release 19.08 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >=20 > @@ -99,6 +101,15 @@ New Features > Updated ``librte_telemetry`` to fetch the global metrics from the > ``librte_metrics`` library. >=20 > +* **Added Intel QuickData Technology PMD** > + > + The PMD for Intel\ |reg| QuickData Technology, part of > + Intel\ |reg| I/O Acceleration Technology `(Intel I/OAT) > + technology.html>`_, > + allows data copies to be done by hardware instead > + of via software, reducing cycles spent copying large blocks of data in > + applications. > + >=20 > Removed Items > ------------- > diff --git a/drivers/raw/Makefile b/drivers/raw/Makefile > index 8e29b4a56..c1b85c8c7 100644 > --- a/drivers/raw/Makefile > +++ b/drivers/raw/Makefile > @@ -10,5 +10,6 @@ DIRS- > $(CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV) +=3D dpaa2_cmdif > DIRS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV) +=3D > dpaa2_qdma > endif > DIRS-$(CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV) +=3D ifpga_rawdev > +DIRS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV) +=3D ioat >=20 > include $(RTE_SDK)/mk/rte.subdir.mk > diff --git a/drivers/raw/ioat/Makefile b/drivers/raw/ioat/Makefile > new file mode 100644 > index 000000000..7726e310a > --- /dev/null > +++ b/drivers/raw/ioat/Makefile > @@ -0,0 +1,28 @@ > +# SPDX-License-Identifier: BSD-3-Clause > +# Copyright(c) 2019 Intel Corporation > + > +include $(RTE_SDK)/mk/rte.vars.mk > + > +# library name > +LIB =3D librte_pmd_ioat_rawdev.a > + > +# build flags > +CFLAGS +=3D -O3 > +CFLAGS +=3D $(WERROR_FLAGS) > + > +LDLIBS +=3D -lrte_eal -lrte_rawdev > +LDLIBS +=3D -lrte_pci -lrte_bus_pci > + > +# library version > +LIBABIVER :=3D 1 > + > +# versioning export map > +EXPORT_MAP :=3D rte_pmd_ioat_version.map > + > +# library source files > +SRCS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV) +=3D ioat_rawdev.c > + > +# export include files > +SYMLINK-y-include +=3D rte_ioat_rawdev.h > + > +include $(RTE_SDK)/mk/rte.lib.mk > diff --git a/drivers/raw/ioat/ioat_rawdev.c b/drivers/raw/ioat/ioat_rawde= v.c > new file mode 100644 > index 000000000..d9fc3091a > --- /dev/null > +++ b/drivers/raw/ioat/ioat_rawdev.c > @@ -0,0 +1,93 @@ > +/* SPDX-License-Identifier: BSD-3-Clause > + * Copyright(c) 2019 Intel Corporation > + */ > + > +#include > +#include > + > +#include "rte_ioat_rawdev.h" > + > +/* Dynamic log type identifier */ > +int ioat_pmd_logtype; > + > +static struct rte_pci_driver ioat_pmd_drv; > + > +#define IOAT_VENDOR_ID 0x8086 > +#define IOAT_DEVICE_ID 0x2021 In the second patch, the script dpdk-devbind.py supports CBDMAs in both Broadwell and Skylake. But you only supports Skylake here. Thanks, Jiayu > + > +#define IOAT_PMD_LOG(level, fmt, args...) rte_log(RTE_LOG_ ## level, \ > + ioat_pmd_logtype, "%s(): " fmt "\n", __func__, ##args) > + > +#define IOAT_PMD_DEBUG(fmt, args...) IOAT_PMD_LOG(DEBUG, fmt, ## > args) > +#define IOAT_PMD_INFO(fmt, args...) IOAT_PMD_LOG(INFO, fmt, ## args) > +#define IOAT_PMD_ERR(fmt, args...) IOAT_PMD_LOG(ERR, fmt, ## args) > +#define IOAT_PMD_WARN(fmt, args...) IOAT_PMD_LOG(WARNING, fmt, > ## args) > + > +static int > +ioat_rawdev_create(const char *name, struct rte_pci_device *dev) > +{ > + RTE_SET_USED(name); > + RTE_SET_USED(dev); > + return 0; > +} > + > +static int > +ioat_rawdev_destroy(const char *name) > +{ > + RTE_SET_USED(name); > + return 0; > +} > + > +static int > +ioat_rawdev_probe(struct rte_pci_driver *drv, struct rte_pci_device *dev= ) > +{ > + char name[32]; > + int ret =3D 0; > + > + > + rte_pci_device_name(&dev->addr, name, sizeof(name)); > + IOAT_PMD_INFO("Init %s on NUMA node %d", name, dev- > >device.numa_node); > + > + dev->device.driver =3D &drv->driver; > + ret =3D ioat_rawdev_create(name, dev); > + return ret; > +} > + > +static int > +ioat_rawdev_remove(struct rte_pci_device *dev) > +{ > + char name[32]; > + int ret; > + > + rte_pci_device_name(&dev->addr, name, sizeof(name)); > + > + IOAT_PMD_INFO("Closing %s on NUMA node %d", > + name, dev->device.numa_node); > + > + ret =3D ioat_rawdev_destroy(name); > + return ret; > +} > + > +static const struct rte_pci_id pci_id_ioat_map[] =3D { > + { RTE_PCI_DEVICE(IOAT_VENDOR_ID, IOAT_DEVICE_ID) }, > + { .vendor_id =3D 0, /* sentinel */ }, > +}; > + > +static struct rte_pci_driver ioat_pmd_drv =3D { > + .id_table =3D pci_id_ioat_map, > + .drv_flags =3D RTE_PCI_DRV_NEED_MAPPING | > RTE_PCI_DRV_INTR_LSC | > + RTE_PCI_DRV_IOVA_AS_VA, > + .probe =3D ioat_rawdev_probe, > + .remove =3D ioat_rawdev_remove, > +}; > + > +RTE_PMD_REGISTER_PCI(IOAT_PMD_RAWDEV_NAME, ioat_pmd_drv); > +RTE_PMD_REGISTER_PCI_TABLE(IOAT_PMD_RAWDEV_NAME, > pci_id_ioat_map); > +RTE_PMD_REGISTER_KMOD_DEP(IOAT_PMD_RAWDEV_NAME, "* igb_uio | > uio_pci_generic"); > + > +RTE_INIT(ioat_pmd_init_log) > +{ > + ioat_pmd_logtype =3D rte_log_register(IOAT_PMD_LOG_NAME); > + if (ioat_pmd_logtype >=3D 0) > + rte_log_set_level(ioat_pmd_logtype, RTE_LOG_INFO); > +} > diff --git a/drivers/raw/ioat/meson.build b/drivers/raw/ioat/meson.build > new file mode 100644 > index 000000000..ba7620a68 > --- /dev/null > +++ b/drivers/raw/ioat/meson.build > @@ -0,0 +1,8 @@ > +# SPDX-License-Identifier: BSD-3-Clause > +# Copyright 2019 Intel Corporation > + > +build =3D dpdk_conf.has('RTE_ARCH_X86') > +sources =3D files('ioat_rawdev.c') > +deps +=3D ['rawdev', 'bus_pci'] > + > +install_headers('rte_ioat_rawdev.h') > diff --git a/drivers/raw/ioat/rte_ioat_rawdev.h > b/drivers/raw/ioat/rte_ioat_rawdev.h > new file mode 100644 > index 000000000..e77406403 > --- /dev/null > +++ b/drivers/raw/ioat/rte_ioat_rawdev.h > @@ -0,0 +1,24 @@ > +/* SPDX-License-Identifier: BSD-3-Clause > + * Copyright(c) 2019 Intel Corporation > + */ > + > +#ifndef _RTE_IOAT_RAWDEV_H_ > +#define _RTE_IOAT_RAWDEV_H_ > + > +/** > + * @file rte_ioat_rawdev.h > + * > + * Definitions for using the ioat rawdev device driver > + * > + * @warning > + * @b EXPERIMENTAL: these structures and APIs may change without prior > notice > + */ > + > +/** Name of the device driver */ > +#define IOAT_PMD_RAWDEV_NAME rawdev_ioat > +/** String reported as the device driver name by rte_rawdev_info_get() *= / > +#define IOAT_PMD_RAWDEV_NAME_STR "rawdev_ioat" > +/** Name used to adjust the log level for this driver */ > +#define IOAT_PMD_LOG_NAME "rawdev.ioat" > + > +#endif > diff --git a/drivers/raw/ioat/rte_pmd_ioat_version.map > b/drivers/raw/ioat/rte_pmd_ioat_version.map > new file mode 100644 > index 000000000..9a61188cd > --- /dev/null > +++ b/drivers/raw/ioat/rte_pmd_ioat_version.map > @@ -0,0 +1,4 @@ > +DPDK_19.08 { > + > + local: *; > +}; > diff --git a/drivers/raw/meson.build b/drivers/raw/meson.build > index a61cdccef..2af8a70d4 100644 > --- a/drivers/raw/meson.build > +++ b/drivers/raw/meson.build > @@ -1,7 +1,9 @@ > # SPDX-License-Identifier: BSD-3-Clause > # Copyright 2018 NXP >=20 > -drivers =3D ['skeleton_rawdev', 'dpaa2_cmdif', 'dpaa2_qdma', 'ifpga_rawd= ev'] > +drivers =3D ['dpaa2_cmdif', 'dpaa2_qdma', > + 'ifpga_rawdev', 'ioat', > + 'skeleton_rawdev'] > std_deps =3D ['rawdev'] > config_flag_fmt =3D 'RTE_LIBRTE_PMD_@0@_RAWDEV' > driver_name_fmt =3D 'rte_pmd_@0@' > diff --git a/mk/rte.app.mk b/mk/rte.app.mk > index 81be289a8..2a534796f 100644 > --- a/mk/rte.app.mk > +++ b/mk/rte.app.mk > @@ -306,6 +306,7 @@ ifeq ($(CONFIG_RTE_LIBRTE_IFPGA_BUS),y) > _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_IFPGA_RAWDEV) +=3D - > lrte_pmd_ifpga_rawdev > _LDLIBS-$(CONFIG_RTE_LIBRTE_IPN3KE_PMD) +=3D -lrte_pmd_ipn3ke > endif # CONFIG_RTE_LIBRTE_IFPGA_BUS > +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV) +=3D - > lrte_pmd_ioat_rawdev > endif # CONFIG_RTE_LIBRTE_RAWDEV >=20 > endif # !CONFIG_RTE_BUILD_SHARED_LIBS > -- > 2.21.0