|
| 1 | +.. SPDX-License-Identifier: GPL-2.0 |
| 2 | +
|
| 3 | +=============================================== |
| 4 | +Marvell CN10K DMA packet interface (DPI) driver |
| 5 | +=============================================== |
| 6 | + |
| 7 | +Overview |
| 8 | +======== |
| 9 | + |
| 10 | +DPI is a DMA packet interface hardware block in Marvell's CN10K silicon. |
| 11 | +DPI hardware comprises a physical function (PF), its virtual functions, |
| 12 | +mailbox logic, and a set of DMA engines & DMA command queues. |
| 13 | + |
| 14 | +DPI PF function is an administrative function which services the mailbox |
| 15 | +requests from its VF functions and provisions DMA engine resources to |
| 16 | +it's VF functions. |
| 17 | + |
| 18 | +mrvl_cn10k_dpi.ko misc driver loads on DPI PF device and services the |
| 19 | +mailbox commands submitted by the VF devices and accordingly initializes |
| 20 | +the DMA engines and VF device's DMA command queues. Also, driver creates |
| 21 | +/dev/mrvl-cn10k-dpi node to set DMA engine and PEM (PCIe interface) port |
| 22 | +attributes like fifo length, molr, mps & mrrs. |
| 23 | + |
| 24 | +DPI PF driver is just an administrative driver to setup its VF device's |
| 25 | +queues and provisions the hardware resources, it cannot initiate any |
| 26 | +DMA operations. Only VF devices are provisioned with DMA capabilities. |
| 27 | + |
| 28 | +Driver location |
| 29 | +=============== |
| 30 | + |
| 31 | +drivers/misc/mrvl_cn10k_dpi.c |
| 32 | + |
| 33 | +Driver IOCTLs |
| 34 | +============= |
| 35 | + |
| 36 | +:c:macro::`DPI_MPS_MRRS_CFG` |
| 37 | +ioctl that sets max payload size & max read request size parameters of |
| 38 | +a pem port to which DMA engines are wired. |
| 39 | + |
| 40 | + |
| 41 | +:c:macro::`DPI_ENGINE_CFG` |
| 42 | +ioctl that sets DMA engine's fifo sizes & max outstanding load request |
| 43 | +thresholds. |
| 44 | + |
| 45 | +User space code example |
| 46 | +======================= |
| 47 | + |
| 48 | +DPI VF devices are probed and accessed from user space applications using |
| 49 | +vfio-pci driver. Below is a sample dpi dma application to demonstrate on |
| 50 | +how applications use mailbox and ioctl services from DPI PF kernel driver. |
| 51 | + |
| 52 | +https://github.com/MarvellEmbeddedProcessors/dpi-sample-app |
0 commit comments