mbox

[v4,00/62] Marvell CNXK Ethdev Driver

Message ID 20210623044702.4240-1-ndabilpuram@marvell.com (mailing list archive)
Headers

Message

Nithin Dabilpuram June 23, 2021, 4:46 a.m. UTC
This patchset adds support for Marvell CN106XX SoC based on 'common/cnxk'
driver. In future, CN9K a.k.a octeontx2 will also be supported by same
driver when code is ready and 'net/octeontx2' will be deprecated.

Harman Kalra (1):
  common/cnxk: allocate lmt region in userspace

Jerin Jacob (7):
  common/cnxk: fix batch alloc completion poll logic
  net/cnxk: add Rx burst for cn9k
  net/cnxk: add Rx vector version for cn9k
  net/cnxk: add Tx burst for cn9k
  net/cnxk: add Rx burst for cn10k
  net/cnxk: add Rx vector version for cn10k
  net/cnxk: add Tx burst for cn10k

Kiran Kumar K (2):
  net/cnxk: add support to configure npc
  net/cnxk: support initial version of rte flow

Nithin Dabilpuram (18):
  common/cnxk: change model API to not use camel case
  net/cnxk: add build infra and common probe
  net/cnxk: add platform specific probe and remove
  net/cnxk: add common devargs parsing function
  net/cnxk: support common dev infos get
  net/cnxk: add device configuration operation
  net/cnxk: support link status update
  net/cnxk: add Rx queue setup and release
  net/cnxk: add Tx queue setup and release
  net/cnxk: support packet type
  net/cnxk: support queue start and stop
  net/cnxk: add Rx multi-segmented version for cn9k
  net/cnxk: add Tx multi-segment version for cn9k
  net/cnxk: add Tx vector version for cn9k
  net/cnxk: add Rx multi-segment version for cn10k
  net/cnxk: add Tx multi-segment version for cn10k
  net/cnxk: add Tx vector version for cn10k
  net/cnxk: add device start and stop operations

Satha Rao (8):
  common/cnxk: add support to lock NIX RQ contexts
  common/cnxk: add provision to enable RED on RQ
  net/cnxk: add port/queue stats
  net/cnxk: add xstats apis
  net/cnxk: add rxq/txq info get operations
  net/cnxk: add ethdev firmware version get
  net/cnxk: add get register operation
  net/cnxk: added RETA and RSS hash operations

Satheesh Paul (6):
  common/cnxk: add support to dump flow entries
  common/cnxk: support for mark and flag flow actions
  common/cnxk: support for VLAN push and pop flow actions
  net/cnxk: add flow ops get operation
  net/cnxk: support for RSS in rte flow
  net/cnxk: support marking and VLAN tagging

Sunil Kumar Kori (20):
  net/cnxk: add MAC address set ops
  net/cnxk: add MTU set device operation
  net/cnxk: add promiscuous mode enable and disable
  net/cnxk: support DMAC filter
  net/cnxk: add all multicast enable/disable ethops
  net/cnxk: add Rx/Tx burst mode get ops
  net/cnxk: add flow ctrl set/get ops
  net/cnxk: add link up/down operations
  net/cnxk: add EEPROM module info get operations
  net/cnxk: add Rx queue interrupt enable/disable ops
  net/cnxk: add validation API for mempool ops
  net/cnxk: add device close and reset operations
  net/cnxk: add pending Tx mbuf cleanup operation
  net/cnxk: register callback to get PTP status
  net/cnxk: support base PTP timesync
  net/cnxk: add timesync enable/disable operations
  net/cnxk: add Rx/Tx timestamp read operations
  net/cnxk: add time read/write/adjust operations
  net/cnxk: add read clock operation
  net/cnxk: support multicast filter

--

v4:
- Fixed build issue with gcc 4.8
- Shortened subject lines of few commits
- Removed camel case for model API
- Updated rte_flow features in cnxk_vec.ini and cnxk_vf.ini
- Added CC stable to "fix batch alloc.." patch
- Squashed cn98xx flow create related common patch to
  VLAN push and pop flow actions patch.
- Changed INTERNAL to DPDK_21 in version.map

v3:
- Updated release notes
- Removed RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS flag and add support for queue
  stats in xstats
- Fixed issue with LSO format indices
- Removed mbox sync changes patch from this series
- Fixed documentation issues
- Removed repetitive code in fast path SIMD
- Optimize cn10k LMTST logic
- Make rte_flow_create implementation specific
  to handle VLAN Stripping and MARK actions/offloads
- Use rte_atomic_thread_fence() instead of rte_rmb()
- Handle other comments from Jerin.
- Merged rte flow dump API patch to flow ops get patch
- Added marking and vlan tagging support.
- Fixed some checkpatch and git check log issues.

v2:
- Fixed issue with flow validate and flow create for 98xx
- Fixed issue batch alloc logic
- Fix lmtline allocation to be cached
- Sync Inline IPSec Rx mbox with kernel
- Add support for mark and flag flow actions
- Add reta key and hash update ops
- Added PTP and multicast filter support
 
 MAINTAINERS                             |    5 +-
 doc/guides/nics/cnxk.rst                |  232 +++++
 doc/guides/nics/features/cnxk.ini       |   90 ++
 doc/guides/nics/features/cnxk_vec.ini   |   86 ++
 doc/guides/nics/features/cnxk_vf.ini    |   82 ++
 doc/guides/nics/index.rst               |    1 +
 doc/guides/platform/cnxk.rst            |    3 +
 doc/guides/rel_notes/release_21_08.rst  |    5 +
 drivers/common/cnxk/hw/npc.h            |    2 +
 drivers/common/cnxk/meson.build         |    1 +
 drivers/common/cnxk/roc_api.h           |    2 +
 drivers/common/cnxk/roc_dev.c           |   98 +-
 drivers/common/cnxk/roc_dev_priv.h      |    1 +
 drivers/common/cnxk/roc_mbox.h          |    3 +
 drivers/common/cnxk/roc_model.h         |   12 +-
 drivers/common/cnxk/roc_nix.h           |   39 +-
 drivers/common/cnxk/roc_nix_queue.c     |   52 +
 drivers/common/cnxk/roc_nix_rss.c       |   51 +-
 drivers/common/cnxk/roc_nix_tm_utils.c  |   86 +-
 drivers/common/cnxk/roc_npa.c           |   10 +-
 drivers/common/cnxk/roc_npa.h           |   35 +-
 drivers/common/cnxk/roc_npc.c           |  296 +++++-
 drivers/common/cnxk/roc_npc.h           |   39 +-
 drivers/common/cnxk/roc_npc_mcam.c      |    2 +-
 drivers/common/cnxk/roc_npc_mcam_dump.c |  611 ++++++++++++
 drivers/common/cnxk/roc_npc_priv.h      |    3 +-
 drivers/common/cnxk/roc_npc_utils.c     |    4 +
 drivers/common/cnxk/roc_platform.h      |   13 +
 drivers/common/cnxk/version.map         |    7 +
 drivers/net/cnxk/cn10k_ethdev.c         |  551 +++++++++++
 drivers/net/cnxk/cn10k_ethdev.h         |   41 +
 drivers/net/cnxk/cn10k_rte_flow.c       |   72 ++
 drivers/net/cnxk/cn10k_rte_flow.h       |   17 +
 drivers/net/cnxk/cn10k_rx.c             |   79 ++
 drivers/net/cnxk/cn10k_rx.h             |  653 +++++++++++++
 drivers/net/cnxk/cn10k_rx_mseg.c        |   17 +
 drivers/net/cnxk/cn10k_rx_vec.c         |   22 +
 drivers/net/cnxk/cn10k_tx.c             |   82 ++
 drivers/net/cnxk/cn10k_tx.h             | 1605 +++++++++++++++++++++++++++++++
 drivers/net/cnxk/cn10k_tx_mseg.c        |   25 +
 drivers/net/cnxk/cn10k_tx_vec.c         |   26 +
 drivers/net/cnxk/cn9k_ethdev.c          |  574 +++++++++++
 drivers/net/cnxk/cn9k_ethdev.h          |   39 +
 drivers/net/cnxk/cn9k_rte_flow.c        |   72 ++
 drivers/net/cnxk/cn9k_rte_flow.h        |   17 +
 drivers/net/cnxk/cn9k_rx.c              |   79 ++
 drivers/net/cnxk/cn9k_rx.h              |  655 +++++++++++++
 drivers/net/cnxk/cn9k_rx_mseg.c         |   17 +
 drivers/net/cnxk/cn9k_rx_vec.c          |   20 +
 drivers/net/cnxk/cn9k_tx.c              |   81 ++
 drivers/net/cnxk/cn9k_tx.h              | 1436 +++++++++++++++++++++++++++
 drivers/net/cnxk/cn9k_tx_mseg.c         |   25 +
 drivers/net/cnxk/cn9k_tx_vec.c          |   26 +
 drivers/net/cnxk/cnxk_ethdev.c          | 1540 +++++++++++++++++++++++++++++
 drivers/net/cnxk/cnxk_ethdev.h          |  495 ++++++++++
 drivers/net/cnxk/cnxk_ethdev_devargs.c  |  173 ++++
 drivers/net/cnxk/cnxk_ethdev_ops.c      |  912 ++++++++++++++++++
 drivers/net/cnxk/cnxk_link.c            |  113 +++
 drivers/net/cnxk/cnxk_lookup.c          |  326 +++++++
 drivers/net/cnxk/cnxk_ptp.c             |  287 ++++++
 drivers/net/cnxk/cnxk_rte_flow.c        |  433 +++++++++
 drivers/net/cnxk/cnxk_rte_flow.h        |   27 +
 drivers/net/cnxk/cnxk_stats.c           |  320 ++++++
 drivers/net/cnxk/meson.build            |   48 +
 drivers/net/cnxk/version.map            |    3 +
 drivers/net/meson.build                 |    1 +
 66 files changed, 12678 insertions(+), 102 deletions(-)
 create mode 100644 doc/guides/nics/cnxk.rst
 create mode 100644 doc/guides/nics/features/cnxk.ini
 create mode 100644 doc/guides/nics/features/cnxk_vec.ini
 create mode 100644 doc/guides/nics/features/cnxk_vf.ini
 create mode 100644 drivers/common/cnxk/roc_npc_mcam_dump.c
 create mode 100644 drivers/net/cnxk/cn10k_ethdev.c
 create mode 100644 drivers/net/cnxk/cn10k_ethdev.h
 create mode 100644 drivers/net/cnxk/cn10k_rte_flow.c
 create mode 100644 drivers/net/cnxk/cn10k_rte_flow.h
 create mode 100644 drivers/net/cnxk/cn10k_rx.c
 create mode 100644 drivers/net/cnxk/cn10k_rx.h
 create mode 100644 drivers/net/cnxk/cn10k_rx_mseg.c
 create mode 100644 drivers/net/cnxk/cn10k_rx_vec.c
 create mode 100644 drivers/net/cnxk/cn10k_tx.c
 create mode 100644 drivers/net/cnxk/cn10k_tx.h
 create mode 100644 drivers/net/cnxk/cn10k_tx_mseg.c
 create mode 100644 drivers/net/cnxk/cn10k_tx_vec.c
 create mode 100644 drivers/net/cnxk/cn9k_ethdev.c
 create mode 100644 drivers/net/cnxk/cn9k_ethdev.h
 create mode 100644 drivers/net/cnxk/cn9k_rte_flow.c
 create mode 100644 drivers/net/cnxk/cn9k_rte_flow.h
 create mode 100644 drivers/net/cnxk/cn9k_rx.c
 create mode 100644 drivers/net/cnxk/cn9k_rx.h
 create mode 100644 drivers/net/cnxk/cn9k_rx_mseg.c
 create mode 100644 drivers/net/cnxk/cn9k_rx_vec.c
 create mode 100644 drivers/net/cnxk/cn9k_tx.c
 create mode 100644 drivers/net/cnxk/cn9k_tx.h
 create mode 100644 drivers/net/cnxk/cn9k_tx_mseg.c
 create mode 100644 drivers/net/cnxk/cn9k_tx_vec.c
 create mode 100644 drivers/net/cnxk/cnxk_ethdev.c
 create mode 100644 drivers/net/cnxk/cnxk_ethdev.h
 create mode 100644 drivers/net/cnxk/cnxk_ethdev_devargs.c
 create mode 100644 drivers/net/cnxk/cnxk_ethdev_ops.c
 create mode 100644 drivers/net/cnxk/cnxk_link.c
 create mode 100644 drivers/net/cnxk/cnxk_lookup.c
 create mode 100644 drivers/net/cnxk/cnxk_ptp.c
 create mode 100644 drivers/net/cnxk/cnxk_rte_flow.c
 create mode 100644 drivers/net/cnxk/cnxk_rte_flow.h
 create mode 100644 drivers/net/cnxk/cnxk_stats.c
 create mode 100644 drivers/net/cnxk/meson.build
 create mode 100644 drivers/net/cnxk/version.map