DPDK patches and discussions
 help / color / mirror / Atom feed
From: Alejandro Lucero <alejandro.lucero@netronome.com>
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH 0/4] NFP PF support based on new CPP interface
Date: Fri, 23 Mar 2018 17:35:00 +0000	[thread overview]
Message-ID: <1521826504-20195-1-git-send-email-alejandro.lucero@netronome.com> (raw)

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

             reply	other threads:[~2018-03-23 17:35 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-23 17:35 Alejandro Lucero [this message]
2018-03-23 17:35 ` [dpdk-dev] [PATCH 1/4] net/nfp: add NFP CPP support Alejandro Lucero
2018-03-30 10:37   ` Ferruh Yigit
2018-03-31 17:04     ` Alejandro Lucero
2018-04-03 11:09       ` Ferruh Yigit
2018-04-03 12:54         ` Ferruh Yigit
2018-03-23 17:35 ` [dpdk-dev] [PATCH 2/4] net/nfp: update PMD for using new CPP interface Alejandro Lucero
2018-03-23 17:35 ` [dpdk-dev] [PATCH 3/4] doc: update NFP guide Alejandro Lucero
2018-03-30 10:37   ` Ferruh Yigit
2018-03-31 17:04     ` Alejandro Lucero
2018-03-23 17:35 ` [dpdk-dev] [PATCH 4/4] net/nfp: remove files Alejandro Lucero

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1521826504-20195-1-git-send-email-alejandro.lucero@netronome.com \
    --to=alejandro.lucero@netronome.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).