NFP PMD has just had support for SRIOV VFs until now. This patchset adds support for the PF, but just for being used as another DPDK port. No VF management is added by now.
NFP is a programmable device and it supports virtual NICs (vNICs) through firmware implementation. Different firmware applications implement vNICs for PF devices and VF devices, being number of vNICs dependent on the firmware and the NFP card available. PF vNIC (virtual) BARs are a subset of PF PCI device BARs while VF vNIC BARs are same than VF PCI BARs. Working with VF vNICs requires a PF driver uploading the firmware and doing some NFP configuration. This needs can be only done with the kernel NFP PF netdev driver by now. Working with PF vNIC requires the PMD doing the NFP configuration and for accessing the NFP a specific user space interface is created. NFP Service Processor Userspace (NSPU) interface allows to create specific PCI BAR windows for accessing different parts of the NFP device, including the Network Service Processor (NSP) itself. The NSPU interface is implemented as the base for working with the PF. Alejandro Lucero (16): nfp: add nsp user space interface nfp: add specific pf probe function nfp: add support for new pci id nfp: add nsp support for commands nfp: add nsp fw upload command nfp: add nsp symbol resolution command nfp: add fw upload logic nfp: add support for vnic config bar mapping nfp: add support for vNIC rx/tx bar mappings nfp: support pf devices inside pmd initialization nfp: allocate eth_dev from pf probe function nfp: support pf multiport nfp: add nsp support for hw link configuration nfp: add support for hw port link configuration nfp: read pf port mac addr using nsp doc: update nfp with pf support information doc/guides/nics/nfp.rst | 71 +++-- drivers/net/nfp/Makefile | 2 + drivers/net/nfp/nfp_net.c | 377 +++++++++++++++++++++++-- drivers/net/nfp/nfp_net_ctrl.h | 3 + drivers/net/nfp/nfp_net_eth.h | 82 ++++++ drivers/net/nfp/nfp_net_pmd.h | 8 + drivers/net/nfp/nfp_nfpu.c | 103 +++++++ drivers/net/nfp/nfp_nfpu.h | 55 ++++ drivers/net/nfp/nfp_nspu.c | 623 +++++++++++++++++++++++++++++++++++++++++ drivers/net/nfp/nfp_nspu.h | 83 ++++++ 10 files changed, 1369 insertions(+), 38 deletions(-) create mode 100644 drivers/net/nfp/nfp_net_eth.h create mode 100644 drivers/net/nfp/nfp_nfpu.c create mode 100644 drivers/net/nfp/nfp_nfpu.h create mode 100644 drivers/net/nfp/nfp_nspu.c create mode 100644 drivers/net/nfp/nfp_nspu.h -- 1.9.1