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. 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 releated to unused function - improve documentation - improve enums items naming - spread documentation across relevant patches Tomasz Duszynski (28): 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/rawdevs/cnxk_bphy.rst | 154 ++++++++ doc/guides/rawdevs/index.rst | 1 + doc/guides/rel_notes/release_21_08.rst | 13 + 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 | 396 +++++++++++++++++++ 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 +- 30 files changed, 2662 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