Hi! This series lays groundwork for advanced buffer management NIC feature. It makes necessary NFP core changes, spawns representors and adds devlink glue. Following series will add the actual buffering configuration (patch series size limit).
First three patches add support for configuring NFP buffer pools via a mailbox. The existing devlink APIs are used for the purpose. Third patch allows us to perform small reads from the NFP memory. The rest of the patch set adds eswitch mode change support and makes the driver spawn appropriate representors. Jakub Kicinski (13): nfp: move rtsym helpers to pf code nfp: add support for per-PCI PF mailbox nfp: add shared buffer configuration nfp: core: allow 4-byte aligned accesses to Memory Units nfp: abm: add initial active buffer management NIC skeleton nfp: abm: create project-specific vNIC structure nfp: add app pointer to port representors devlink: don't take instance lock around eswitch mode set nfp: add devlink_eswitch_mode_set callback nfp: abm: spawn port netdevs nfp: abm: force Ethternet port up nfp: use split in naming of PCIe PF ports nfp: assign vNIC id as phys_port_name of vNICs which are not ports drivers/net/ethernet/netronome/Kconfig | 10 + drivers/net/ethernet/netronome/nfp/Makefile | 7 + drivers/net/ethernet/netronome/nfp/abm/ctrl.c | 58 +++ drivers/net/ethernet/netronome/nfp/abm/main.c | 399 ++++++++++++++++++ drivers/net/ethernet/netronome/nfp/abm/main.h | 75 ++++ drivers/net/ethernet/netronome/nfp/nfp_abi.h | 129 ++++++ drivers/net/ethernet/netronome/nfp/nfp_app.c | 3 + drivers/net/ethernet/netronome/nfp/nfp_app.h | 13 + .../net/ethernet/netronome/nfp/nfp_app_nic.c | 5 +- .../net/ethernet/netronome/nfp/nfp_devlink.c | 35 ++ drivers/net/ethernet/netronome/nfp/nfp_main.c | 140 ++++++ drivers/net/ethernet/netronome/nfp/nfp_main.h | 27 +- drivers/net/ethernet/netronome/nfp/nfp_net.h | 7 +- .../ethernet/netronome/nfp/nfp_net_common.c | 20 +- .../ethernet/netronome/nfp/nfp_net_debugfs.c | 4 +- .../net/ethernet/netronome/nfp/nfp_net_main.c | 72 +--- .../net/ethernet/netronome/nfp/nfp_net_repr.c | 2 +- .../net/ethernet/netronome/nfp/nfp_net_repr.h | 3 + .../ethernet/netronome/nfp/nfp_netvf_main.c | 2 +- drivers/net/ethernet/netronome/nfp/nfp_port.c | 8 +- drivers/net/ethernet/netronome/nfp/nfp_port.h | 6 + .../ethernet/netronome/nfp/nfp_shared_buf.c | 180 ++++++++ .../netronome/nfp/nfpcore/nfp6000_pcie.c | 94 ++--- net/core/devlink.c | 3 +- 24 files changed, 1190 insertions(+), 112 deletions(-) create mode 100644 drivers/net/ethernet/netronome/nfp/abm/ctrl.c create mode 100644 drivers/net/ethernet/netronome/nfp/abm/main.c create mode 100644 drivers/net/ethernet/netronome/nfp/abm/main.h create mode 100644 drivers/net/ethernet/netronome/nfp/nfp_abi.h create mode 100644 drivers/net/ethernet/netronome/nfp/nfp_shared_buf.c -- 2.17.0