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 14AEF34F2 for ; Fri, 23 Mar 2018 18:35:33 +0100 (CET) Received: from netronome.com (localhost [127.0.0.1]) by netronome.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id w2NHZ43B020238 for ; Fri, 23 Mar 2018 17:35:04 GMT Received: (from alucero@localhost) by netronome.com (8.14.4/8.14.4/Submit) id w2NHZ4rc020237 for dev@dpdk.org; Fri, 23 Mar 2018 17:35:04 GMT From: Alejandro Lucero To: dev@dpdk.org Date: Fri, 23 Mar 2018 17:35:00 +0000 Message-Id: <1521826504-20195-1-git-send-email-alejandro.lucero@netronome.com> X-Mailer: git-send-email 1.9.1 Subject: [dpdk-dev] [PATCH 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: Fri, 23 Mar 2018 17:35:34 -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. 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 | 31 +- 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 | 748 +++++++++++++++++ drivers/net/nfp/nfpcore/nfp-common/nfp_platform.h | 62 ++ drivers/net/nfp/nfpcore/nfp-common/nfp_resid.h | 620 ++++++++++++++ drivers/net/nfp/nfpcore/nfp6000/nfp6000.h | 68 ++ drivers/net/nfp/nfpcore/nfp6000/nfp_xpb.h | 54 ++ drivers/net/nfp/nfpcore/nfp_cpp.h | 803 ++++++++++++++++++ drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c | 962 ++++++++++++++++++++++ drivers/net/nfp/nfpcore/nfp_cppcore.c | 901 ++++++++++++++++++++ drivers/net/nfp/nfpcore/nfp_crc.c | 75 ++ drivers/net/nfp/nfpcore/nfp_crc.h | 45 + drivers/net/nfp/nfpcore/nfp_hwinfo.c | 226 +++++ drivers/net/nfp/nfpcore/nfp_hwinfo.h | 111 +++ drivers/net/nfp/nfpcore/nfp_mip.c | 180 ++++ drivers/net/nfp/nfpcore/nfp_mip.h | 47 ++ drivers/net/nfp/nfpcore/nfp_mutex.c | 450 ++++++++++ drivers/net/nfp/nfpcore/nfp_nffw.c | 261 ++++++ drivers/net/nfp/nfpcore/nfp_nffw.h | 112 +++ drivers/net/nfp/nfpcore/nfp_nsp.c | 453 ++++++++++ drivers/net/nfp/nfpcore/nfp_nsp.h | 330 ++++++++ drivers/net/nfp/nfpcore/nfp_nsp_cmds.c | 135 +++ drivers/net/nfp/nfpcore/nfp_nsp_eth.c | 691 ++++++++++++++++ drivers/net/nfp/nfpcore/nfp_resource.c | 291 +++++++ drivers/net/nfp/nfpcore/nfp_resource.h | 78 ++ drivers/net/nfp/nfpcore/nfp_rtsym.c | 353 ++++++++ drivers/net/nfp/nfpcore/nfp_rtsym.h | 87 ++ drivers/net/nfp/nfpcore/nfp_target.h | 605 ++++++++++++++ 35 files changed, 9036 insertions(+), 1088 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