DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v2 0/4] NFP PF support based on new CPP interface
@ 2018-04-05 14:28 Alejandro Lucero
  2018-04-05 14:28 ` [dpdk-dev] [PATCH 1/4] net/nfp: add NFP CPP support Alejandro Lucero
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Alejandro Lucero @ 2018-04-05 14:28 UTC (permalink / raw)
  To: dev

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

^ permalink raw reply	[flat|nested] 10+ messages in thread
* [dpdk-dev] [PATCH v2 0/4] NFP PF support based on new CPP interface
@ 2018-04-05 14:42 Alejandro Lucero
  2018-04-06 14:44 ` Ferruh Yigit
  0 siblings, 1 reply; 10+ messages in thread
From: Alejandro Lucero @ 2018-04-05 14:42 UTC (permalink / raw)
  To: dev

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-04-09  7:20 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-05 14:28 [dpdk-dev] [PATCH v2 0/4] NFP PF support based on new CPP interface Alejandro Lucero
2018-04-05 14:28 ` [dpdk-dev] [PATCH 1/4] net/nfp: add NFP CPP support Alejandro Lucero
2018-04-05 14:28 ` [dpdk-dev] [PATCH 2/4] net/nfp: update PMD for using new CPP interface Alejandro Lucero
2018-04-05 14:28 ` [dpdk-dev] [PATCH 3/4] doc: update NFP guide Alejandro Lucero
2018-04-05 14:28 ` [dpdk-dev] [PATCH 4/4] net/nfp: remove files Alejandro Lucero
2018-04-05 14:39 ` [dpdk-dev] [PATCH v2 0/4] NFP PF support based on new CPP interface Alejandro Lucero
2018-04-05 14:42 Alejandro Lucero
2018-04-06 14:44 ` Ferruh Yigit
2018-04-06 14:47   ` Ferruh Yigit
2018-04-09  7:20     ` Alejandro Lucero

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).