mbox series

[00/28] add support for baseband phy

Message ID 20210531214142.30167-1-tduszynski@marvell.com (mailing list archive)
Headers show
Series add support for baseband phy | expand

Message

Tomasz Duszynski May 31, 2021, 9:41 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 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.

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

 MAINTAINERS                                |   5 +
 doc/guides/rawdevs/cnxk_bphy.rst           |  62 +++
 doc/guides/rawdevs/index.rst               |   1 +
 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          | 250 ++++++++++++
 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      |  40 ++
 drivers/raw/cnxk_bphy/meson.build          |  12 +
 drivers/raw/cnxk_bphy/rte_pmd_bphy.h       | 121 ++++++
 drivers/raw/cnxk_bphy/version.map          |  22 ++
 drivers/raw/meson.build                    |   1 +
 usertools/dpdk-devbind.py                  |   6 +-
 29 files changed, 2383 insertions(+), 1 deletion(-)
 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

Comments

Jerin Jacob June 10, 2021, 6:54 a.m. UTC | #1
On Tue, Jun 1, 2021 at 3:11 AM Tomasz Duszynski <tduszynski@marvell.com> wrote:
>
> 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 usecases.

5G/LTE inline use cases.

>
> 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.

Also, you can mention that This patch adds support for exposing the IO
and system aspects
of the device and not anything related to 5G/LTE baseband protocol processing.


Other than the minor review comments which I sent earlier.

I think, We need improvement in the documentation area Where

1) Need to share the API usage model as it is raw dev API.
See example as
http://doc.dpdk.org/guides/rawdevs/ioat.html#using-ioat-rawdev-devices

2) Move usage doc update move to specific patch where it adding the code.

>
> Tomasz Duszynski (28):
>   common/cnxk: add bphy cgx/rpm initialization and cleanup
>   common/cnxk: add support for communication with atf
>   common/cnxk: add support for getting link information
>   common/cnxk: add support for changing internal loopback
>   common/cnxk: add support for changing ptp mode
>   common/cnxk: add support for setting link mode
>   common/cnxk: add support for changing link state
>   common/cnxk: add support for lmac start/stop
>   raw/cnxk_bphy: add bphy cgx/rpm skeleton driver
>   raw/cnxk_bphy: add support for reading queue configuration
>   raw/cnxk_bphy: add support for reading queue count
>   raw/cnxk_bphy: add support for enqueue operation
>   raw/cnxk_bphy: add support for dequeue operation
>   raw/cnxk_bphy: add support for performing selftest
>   common/cnxk: add support for device init and fini
>   common/cnxk: add support for baseband phy irq setup
>   common/cnxk: add support for checking irq availability
>   common/cnxk: add support for retrieving irq stack
>   common/cnxk: add support for removing irq stack
>   common/cnxk: add support for setting bphy irq handler
>   common/cnxk: add support for clearing bphy irq handler
>   common/cnxk: add support for registering bphy irq
>   raw/cnxk_bphy: add baseband phy skeleton driver
>   raw/cnxk_bphy: add support for interrupt init and cleanup
>   raw/cnxk_bphy: add support for reading number of irqs
>   raw/cnxk_bphy: add support for retrieving device memory
>   raw/cnxk_bphy: add support for registering irq handlers
>   raw/cnxk_bphy: add support for selftest
>
>  MAINTAINERS                                |   5 +
>  doc/guides/rawdevs/cnxk_bphy.rst           |  62 +++
>  doc/guides/rawdevs/index.rst               |   1 +
>  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          | 250 ++++++++++++
>  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      |  40 ++
>  drivers/raw/cnxk_bphy/meson.build          |  12 +
>  drivers/raw/cnxk_bphy/rte_pmd_bphy.h       | 121 ++++++
>  drivers/raw/cnxk_bphy/version.map          |  22 ++
>  drivers/raw/meson.build                    |   1 +
>  usertools/dpdk-devbind.py                  |   6 +-
>  29 files changed, 2383 insertions(+), 1 deletion(-)
>  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
>