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