| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- .. SPDX-License-Identifier: GPL-2.0
- ===============================================
- Marvell CN10K DMA packet interface (DPI) driver
- ===============================================
- Overview
- ========
- DPI is a DMA packet interface hardware block in Marvell's CN10K silicon.
- DPI hardware comprises a physical function (PF), its virtual functions,
- mailbox logic, and a set of DMA engines & DMA command queues.
- DPI PF function is an administrative function which services the mailbox
- requests from its VF functions and provisions DMA engine resources to
- it's VF functions.
- mrvl_cn10k_dpi.ko misc driver loads on DPI PF device and services the
- mailbox commands submitted by the VF devices and accordingly initializes
- the DMA engines and VF device's DMA command queues. Also, driver creates
- /dev/mrvl-cn10k-dpi node to set DMA engine and PEM (PCIe interface) port
- attributes like fifo length, molr, mps & mrrs.
- DPI PF driver is just an administrative driver to setup its VF device's
- queues and provisions the hardware resources, it cannot initiate any
- DMA operations. Only VF devices are provisioned with DMA capabilities.
- Driver location
- ===============
- drivers/misc/mrvl_cn10k_dpi.c
- Driver IOCTLs
- =============
- :c:macro::`DPI_MPS_MRRS_CFG`
- ioctl that sets max payload size & max read request size parameters of
- a pem port to which DMA engines are wired.
- :c:macro::`DPI_ENGINE_CFG`
- ioctl that sets DMA engine's fifo sizes & max outstanding load request
- thresholds.
- User space code example
- =======================
- DPI VF devices are probed and accessed from user space applications using
- vfio-pci driver. Below is a sample dpi dma application to demonstrate on
- how applications use mailbox and ioctl services from DPI PF kernel driver.
- https://github.com/MarvellEmbeddedProcessors/dpi-sample-app
|