mbox

[v3,00/32] add support for baseband phy

Message ID 20210621150449.19070-1-tduszynski@marvell.com (mailing list archive)
Headers

Message

Tomasz Duszynski June 21, 2021, 3:04 p.m. UTC
This series adds initial support for baseband PHY available on SOCs
belonging to Fusion family. BPHY is a hardware block comprising
accelerators and DSPs specifically tailored for 5G/LTE inline usecases.

This series introduces two rawdev PMDs along with low level common code.

CGX/RPM PMD allows one to configure Ethernet I/O interfaces attached to
BPHY via standard enqueue/dequeue operations.

BPHY PMD provides an out-of-band access to PCI device BARs and a set of
experimental APIs allowing one to setup custom IRQs handlers. This
functionality is backed by kernel module using ioctl() mechanism. Series
has nothing to do with 5G/LTE baseband protocol processing.

v3:
- append pmd to list of cnxk drivers (cnxk.rst)
- fix typo
- fix line length so it is under 80 characters
- shorten release notes

v2:
- change some errors to more relevant ones (-EINVAL/-ENODEV)
- fix MAINTAINERS styling issues
- fix dpdk-devbind.py
- fix meson.build styling issues
- fix warning related to possibly uninitialized scr0 variable
- fix warning related to unused function
- improve documentation
- improve enums items naming
- spread documentation across relevant patches

Tomasz Duszynski (32):
  common/cnxk: add bphy cgx/rpm initialization and cleanup
  common/cnxk: support for communication with atf
  common/cnxk: support for getting link information
  common/cnxk: support for changing internal loopback
  common/cnxk: support for changing ptp mode
  common/cnxk: support for setting link mode
  common/cnxk: support for changing link state
  common/cnxk: support for lmac start/stop
  raw/cnxk_bphy: add bphy cgx/rpm skeleton driver
  raw/cnxk_bphy: support for reading queue configuration
  raw/cnxk_bphy: support for reading queue count
  raw/cnxk_bphy: support for enqueue operation
  raw/cnxk_bphy: support for dequeue operation
  raw/cnxk_bphy: support for performing selftest
  common/cnxk: support for device init and fini
  common/cnxk: support for baseband PHY irq setup
  common/cnxk: support for checking irq availability
  common/cnxk: support for retrieving irq stack
  common/cnxk: support for removing irq stack
  common/cnxk: support for setting bphy irq handler
  common/cnxk: support for clearing bphy irq handler
  common/cnxk: support for registering bphy irq
  raw/cnxk_bphy: add baseband PHY skeleton driver
  raw/cnxk_bphy: support for reading bphy queue configuration
  raw/cnxk_bphy: support for reading bphy queue count
  raw/cnxk_bphy: support for bphy enqueue operation
  raw/cnxk_bphy: support for bphy dequeue operation
  raw/cnxk_bphy: support for interrupt init and cleanup
  raw/cnxk_bphy: support for reading number of bphy irqs
  raw/cnxk_bphy: support for retrieving bphy device memory
  raw/cnxk_bphy: support for registering bphy irq handlers
  raw/cnxk_bphy: support for bphy selftest

 MAINTAINERS                                |   7 +-
 doc/guides/platform/cnxk.rst               |   3 +
 doc/guides/rawdevs/cnxk_bphy.rst           | 154 ++++++++
 doc/guides/rawdevs/index.rst               |   1 +
 doc/guides/rel_notes/release_21_08.rst     |   7 +
 drivers/common/cnxk/meson.build            |   3 +
 drivers/common/cnxk/roc_api.h              |   7 +
 drivers/common/cnxk/roc_bphy.c             |  40 ++
 drivers/common/cnxk/roc_bphy.h             |  17 +
 drivers/common/cnxk/roc_bphy_cgx.c         | 397 +++++++++++++++++++
 drivers/common/cnxk/roc_bphy_cgx.h         | 120 ++++++
 drivers/common/cnxk/roc_bphy_cgx_priv.h    | 131 +++++++
 drivers/common/cnxk/roc_bphy_irq.c         | 422 +++++++++++++++++++++
 drivers/common/cnxk/roc_bphy_irq.h         |  49 +++
 drivers/common/cnxk/roc_idev.c             |   1 +
 drivers/common/cnxk/roc_idev_priv.h        |   2 +
 drivers/common/cnxk/roc_io.h               |   9 +
 drivers/common/cnxk/roc_io_generic.h       |   5 +
 drivers/common/cnxk/roc_priv.h             |   3 +
 drivers/common/cnxk/version.map            |  22 ++
 drivers/raw/cnxk_bphy/cnxk_bphy.c          | 329 ++++++++++++++++
 drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c      | 321 ++++++++++++++++
 drivers/raw/cnxk_bphy/cnxk_bphy_cgx.h      |  10 +
 drivers/raw/cnxk_bphy/cnxk_bphy_cgx_test.c | 206 ++++++++++
 drivers/raw/cnxk_bphy/cnxk_bphy_irq.c      | 100 +++++
 drivers/raw/cnxk_bphy/cnxk_bphy_irq.h      |  41 ++
 drivers/raw/cnxk_bphy/meson.build          |  12 +
 drivers/raw/cnxk_bphy/rte_pmd_bphy.h       | 233 ++++++++++++
 drivers/raw/cnxk_bphy/version.map          |   3 +
 drivers/raw/meson.build                    |   1 +
 usertools/dpdk-devbind.py                  |   6 +-
 31 files changed, 2660 insertions(+), 2 deletions(-)
 create mode 100644 doc/guides/rawdevs/cnxk_bphy.rst
 create mode 100644 drivers/common/cnxk/roc_bphy.c
 create mode 100644 drivers/common/cnxk/roc_bphy.h
 create mode 100644 drivers/common/cnxk/roc_bphy_cgx.c
 create mode 100644 drivers/common/cnxk/roc_bphy_cgx.h
 create mode 100644 drivers/common/cnxk/roc_bphy_cgx_priv.h
 create mode 100644 drivers/common/cnxk/roc_bphy_irq.c
 create mode 100644 drivers/common/cnxk/roc_bphy_irq.h
 create mode 100644 drivers/raw/cnxk_bphy/cnxk_bphy.c
 create mode 100644 drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c
 create mode 100644 drivers/raw/cnxk_bphy/cnxk_bphy_cgx.h
 create mode 100644 drivers/raw/cnxk_bphy/cnxk_bphy_cgx_test.c
 create mode 100644 drivers/raw/cnxk_bphy/cnxk_bphy_irq.c
 create mode 100644 drivers/raw/cnxk_bphy/cnxk_bphy_irq.h
 create mode 100644 drivers/raw/cnxk_bphy/meson.build
 create mode 100644 drivers/raw/cnxk_bphy/rte_pmd_bphy.h
 create mode 100644 drivers/raw/cnxk_bphy/version.map

--
2.25.1