dma/dpaa2: introduce driver skeleton
[dpdk.git] / doc / guides / dmadevs / dpaa.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright 2021 NXP
3
4 NXP DPAA DMA Driver
5 ===================
6
7 The DPAA DMA is an implementation of the dmadev APIs,
8 that provide means to initiate a DMA transaction from CPU.
9 The initiated DMA is performed without CPU being involved
10 in the actual DMA transaction.
11 This is achieved via using the QDMA controller of DPAA SoC.
12
13 The QDMA controller transfers blocks of data
14 between one source and one destination.
15 The blocks of data transferred can be represented in memory
16 as contiguous or noncontiguous using scatter/gather table(s).
17
18 More information can be found at `NXP Official Website
19 <http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/qoriq-arm-processors:QORIQ-ARM>`_.
20
21 Supported DPAA SoCs
22 -------------------
23
24 - LS1046A
25 - LS1043A
26
27 Prerequisites
28 -------------
29
30 See :doc:`../platform/dpaa` for setup information
31
32 - Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
33
34 .. note::
35
36    Some part of dpaa bus code (qbman and fman - library) routines are
37    dual licensed (BSD & GPLv2), however they are used as BSD in DPDK in userspace.
38
39 Compilation
40 -----------
41
42 For builds using ``meson`` and ``ninja``, the driver will be built when the
43 target platform is dpaa-based. No additional compilation steps are necessary.
44
45 Initialization
46 --------------
47
48 On EAL initialization, DPAA DMA devices will be detected on DPAA bus and
49 will be probed and populated into their device list.
50
51 Features
52 --------
53
54 The DPAA DMA implements following features in the dmadev API:
55
56 - Supports 1 virtual channel.
57 - Supports all 4 DMA transfers: MEM_TO_MEM, MEM_TO_DEV,
58   DEV_TO_MEM, DEV_TO_DEV.
59 - Supports DMA silent mode.
60 - Supports issuing DMA of data within memory without hogging CPU while
61   performing DMA operation.
62 - Supports statistics.
63
64 Platform Requirement
65 --------------------
66
67 DPAA DMA driver for DPDK can only work on NXP SoCs
68 as listed in the `Supported DPAA SoCs`_.