From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from netronome.com (host-79-78-33-110.static.as9105.net [79.78.33.110]) by dpdk.org (Postfix) with ESMTP id 7B8FD1CBDD for ; Thu, 5 Apr 2018 16:29:09 +0200 (CEST) Received: from netronome.com (localhost [127.0.0.1]) by netronome.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id w35ESU4S005210 for ; Thu, 5 Apr 2018 15:28:30 +0100 Received: (from alucero@localhost) by netronome.com (8.14.4/8.14.4/Submit) id w35ESU3J005209 for dev@dpdk.org; Thu, 5 Apr 2018 15:28:30 +0100 From: Alejandro Lucero To: dev@dpdk.org Date: Thu, 5 Apr 2018 15:28:26 +0100 Message-Id: <1522938510-5156-1-git-send-email-alejandro.lucero@netronome.com> X-Mailer: git-send-email 1.9.1 Subject: [dpdk-dev] [PATCH v2 0/4] NFP PF support based on new CPP interface 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: , X-List-Received-Date: Thu, 05 Apr 2018 14:29:09 -0000 NFP PMD PF support requires to access the NFP chip for initialization. Current NFP PMD PF support was added based on the NSPU interface. This implies to do initialization through the NSP, a embedded ARM processor which does initialization tasks on demand. The main problem with this approach is it requires to add support for new NSP commands each time a new functionality is required, which does not scale well and it is not really flexible. Using the new CPP user space interface, the PMD can do whatever could be done by the NSP, this is current commands and any new functionality required. This CPP interface allows to access any single chip component facilitating initialization, firmware uploading, firmware debugging or extended stats. The changes just change the PMD PF initialization and do not touch the datapath at all. No performance changes nor PMD functionalities are affected. The initial impact using the new CPP interface is the way firmware upload is handled, which helps the PMD detecting the card type and the firmware file to upload. Future commits will include extended stats and some sort of debug channel. The specific CPP code is contained in the first patch, which has not been splitted up because is completely internal to the NFP functionality. The second patch makes the PMD changes required for using the new interface. v2: - removing unused reference to zlib.h - fix build errors - add SPDX tags in new files - rebase changes nfp.rst Alejandro Lucero (4): net/nfp: add NFP CPP support net/nfp: update PMD for using new CPP interface doc: update NFP guide net/nfp: remove files doc/guides/nics/nfp.rst | 34 +- drivers/net/nfp/Makefile | 17 +- drivers/net/nfp/nfp_net.c | 342 +++++--- drivers/net/nfp/nfp_net_eth.h | 82 -- drivers/net/nfp/nfp_net_pmd.h | 16 +- drivers/net/nfp/nfp_nfpu.c | 108 --- drivers/net/nfp/nfp_nfpu.h | 55 -- drivers/net/nfp/nfp_nspu.c | 642 --------------- drivers/net/nfp/nfp_nspu.h | 83 -- drivers/net/nfp/nfpcore/nfp-common/nfp_cppat.h | 722 +++++++++++++++++ drivers/net/nfp/nfpcore/nfp-common/nfp_platform.h | 36 + drivers/net/nfp/nfpcore/nfp-common/nfp_resid.h | 592 ++++++++++++++ drivers/net/nfp/nfpcore/nfp6000/nfp6000.h | 40 + drivers/net/nfp/nfpcore/nfp6000/nfp_xpb.h | 26 + drivers/net/nfp/nfpcore/nfp_cpp.h | 776 ++++++++++++++++++ drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c | 936 ++++++++++++++++++++++ drivers/net/nfp/nfpcore/nfp_cppcore.c | 856 ++++++++++++++++++++ drivers/net/nfp/nfpcore/nfp_crc.c | 49 ++ drivers/net/nfp/nfpcore/nfp_crc.h | 19 + drivers/net/nfp/nfpcore/nfp_hwinfo.c | 199 +++++ drivers/net/nfp/nfpcore/nfp_hwinfo.h | 85 ++ drivers/net/nfp/nfpcore/nfp_mip.c | 154 ++++ drivers/net/nfp/nfpcore/nfp_mip.h | 21 + drivers/net/nfp/nfpcore/nfp_mutex.c | 424 ++++++++++ drivers/net/nfp/nfpcore/nfp_nffw.c | 235 ++++++ drivers/net/nfp/nfpcore/nfp_nffw.h | 86 ++ drivers/net/nfp/nfpcore/nfp_nsp.c | 427 ++++++++++ drivers/net/nfp/nfpcore/nfp_nsp.h | 304 +++++++ drivers/net/nfp/nfpcore/nfp_nsp_cmds.c | 109 +++ drivers/net/nfp/nfpcore/nfp_nsp_eth.c | 665 +++++++++++++++ drivers/net/nfp/nfpcore/nfp_resource.c | 264 ++++++ drivers/net/nfp/nfpcore/nfp_resource.h | 52 ++ drivers/net/nfp/nfpcore/nfp_rtsym.c | 327 ++++++++ drivers/net/nfp/nfpcore/nfp_rtsym.h | 61 ++ drivers/net/nfp/nfpcore/nfp_target.h | 579 +++++++++++++ 35 files changed, 8334 insertions(+), 1089 deletions(-) delete mode 100644 drivers/net/nfp/nfp_net_eth.h delete mode 100644 drivers/net/nfp/nfp_nfpu.c delete mode 100644 drivers/net/nfp/nfp_nfpu.h delete mode 100644 drivers/net/nfp/nfp_nspu.c delete mode 100644 drivers/net/nfp/nfp_nspu.h create mode 100644 drivers/net/nfp/nfpcore/nfp-common/nfp_cppat.h create mode 100644 drivers/net/nfp/nfpcore/nfp-common/nfp_platform.h create mode 100644 drivers/net/nfp/nfpcore/nfp-common/nfp_resid.h create mode 100644 drivers/net/nfp/nfpcore/nfp6000/nfp6000.h create mode 100644 drivers/net/nfp/nfpcore/nfp6000/nfp_xpb.h create mode 100644 drivers/net/nfp/nfpcore/nfp_cpp.h create mode 100644 drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c create mode 100644 drivers/net/nfp/nfpcore/nfp_cppcore.c create mode 100644 drivers/net/nfp/nfpcore/nfp_crc.c create mode 100644 drivers/net/nfp/nfpcore/nfp_crc.h create mode 100644 drivers/net/nfp/nfpcore/nfp_hwinfo.c create mode 100644 drivers/net/nfp/nfpcore/nfp_hwinfo.h create mode 100644 drivers/net/nfp/nfpcore/nfp_mip.c create mode 100644 drivers/net/nfp/nfpcore/nfp_mip.h create mode 100644 drivers/net/nfp/nfpcore/nfp_mutex.c create mode 100644 drivers/net/nfp/nfpcore/nfp_nffw.c create mode 100644 drivers/net/nfp/nfpcore/nfp_nffw.h create mode 100644 drivers/net/nfp/nfpcore/nfp_nsp.c create mode 100644 drivers/net/nfp/nfpcore/nfp_nsp.h create mode 100644 drivers/net/nfp/nfpcore/nfp_nsp_cmds.c create mode 100644 drivers/net/nfp/nfpcore/nfp_nsp_eth.c create mode 100644 drivers/net/nfp/nfpcore/nfp_resource.c create mode 100644 drivers/net/nfp/nfpcore/nfp_resource.h create mode 100644 drivers/net/nfp/nfpcore/nfp_rtsym.c create mode 100644 drivers/net/nfp/nfpcore/nfp_rtsym.h create mode 100644 drivers/net/nfp/nfpcore/nfp_target.h -- 1.9.1