53 lines
1.8 KiB
ReStructuredText
53 lines
1.8 KiB
ReStructuredText
|
.. 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
|