From patchwork Tue Jun 18 02:10:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Li, Xiaoyun" X-Patchwork-Id: 54883 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id AACB11BFD6; Tue, 18 Jun 2019 04:11:43 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 11D9E1BDB8 for ; Tue, 18 Jun 2019 04:11:41 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Jun 2019 19:11:41 -0700 X-ExtLoop1: 1 Received: from dpdk-xiaoyun3.sh.intel.com ([10.67.119.132]) by orsmga005.jf.intel.com with ESMTP; 17 Jun 2019 19:11:39 -0700 From: Xiaoyun Li To: jingjing.wu@intel.com, keith.wiles@intel.com, cunming.liang@intel.com, omkar.maslekar@intel.com Cc: dev@dpdk.org, Xiaoyun Li Date: Tue, 18 Jun 2019 10:10:49 +0800 Message-Id: <20190618021055.12709-1-xiaoyun.li@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190614021940.78631-1-xiaoyun.li@intel.com> References: <20190614021940.78631-1-xiaoyun.li@intel.com> Subject: [dpdk-dev] [PATCH v6 0/6] rawdev driver for ntb 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" This patch set adds support for Intel NTB device with Skylake platform. It is a raw device for allowing two hosts to communicate with each other and access the peer memory. This patch set also provides a simple example to transmit a file between two hosts. But since there is no FIFO here, only support file which is no more than 4M. And will add FIFO in the future. v6: * Fixed a typo. v5: * Actual v4. v4 patchset is the same as v3. v4: * Fix compile issues of comparison of array with null pointer. v3: * Fixed compilation issues with target i686. * Renamed communication devices to misc devices in usertool. * Rebased to the newest dpdk-next-net-intel branch. v2: * Replaced ! with NULL check for pointers. * Added ntb_ops valid check before use it. * Replaced RTE_MEMZONE_1GB with RTE_MEMZONE_IOVA_CONTIG in case users do not use 1G hugepage. * Added a timeout for dev_stop handshake in case that the peer stopped abnormally such as crashed while debugging. * Updated docs especailly about how to setup BIOS for skylake. * Fixed not return issue and not free issue in example. * Renamed ntb_devices to communication_devices to be more generic in usertools. * Polish the codes and docs. Xiaoyun Li (6): raw/ntb: introduce ntb rawdev driver raw/ntb: add intel ntb support raw/ntb: add handshake process examples/ntb: enable an example for ntb usertools/dpdk-devbind.py: add support for ntb doc: update docs for ntb driver MAINTAINERS | 8 + config/common_base | 5 + doc/guides/rawdevs/index.rst | 1 + doc/guides/rawdevs/ntb_rawdev.rst | 41 + doc/guides/rel_notes/release_19_08.rst | 15 + doc/guides/sample_app_ug/index.rst | 1 + doc/guides/sample_app_ug/ntb.rst | 47 + drivers/raw/Makefile | 1 + drivers/raw/meson.build | 2 +- drivers/raw/ntb_rawdev/Makefile | 28 + drivers/raw/ntb_rawdev/meson.build | 8 + drivers/raw/ntb_rawdev/ntb_hw_intel.c | 368 ++++++++ drivers/raw/ntb_rawdev/ntb_hw_intel.h | 86 ++ drivers/raw/ntb_rawdev/ntb_rawdev.c | 851 ++++++++++++++++++ drivers/raw/ntb_rawdev/ntb_rawdev.h | 158 ++++ .../ntb_rawdev/rte_pmd_ntb_rawdev_version.map | 4 + examples/Makefile | 1 + examples/meson.build | 2 +- examples/ntb/Makefile | 68 ++ examples/ntb/meson.build | 16 + examples/ntb/ntb_fwd.c | 377 ++++++++ mk/rte.app.mk | 1 + usertools/dpdk-devbind.py | 9 + 23 files changed, 2096 insertions(+), 2 deletions(-) create mode 100644 doc/guides/rawdevs/ntb_rawdev.rst create mode 100644 doc/guides/sample_app_ug/ntb.rst create mode 100644 drivers/raw/ntb_rawdev/Makefile create mode 100644 drivers/raw/ntb_rawdev/meson.build create mode 100644 drivers/raw/ntb_rawdev/ntb_hw_intel.c create mode 100644 drivers/raw/ntb_rawdev/ntb_hw_intel.h create mode 100644 drivers/raw/ntb_rawdev/ntb_rawdev.c create mode 100644 drivers/raw/ntb_rawdev/ntb_rawdev.h create mode 100644 drivers/raw/ntb_rawdev/rte_pmd_ntb_rawdev_version.map create mode 100644 examples/ntb/Makefile create mode 100644 examples/ntb/meson.build create mode 100644 examples/ntb/ntb_fwd.c