[dpdk-dev] [PATCH v2 0/4] NFP PF support based on new CPP interface

Alejandro Lucero alejandro.lucero at netronome.com
Thu Apr 5 16:42:43 CEST 2018


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



More information about the dev mailing list