xref: /dpdk/doc/guides/dmadevs/dpaa.rst (revision a63c6426fdfd9233ba9c7d4503e52bff3732fe69)
1..  SPDX-License-Identifier: BSD-3-Clause
2    Copyright 2021 NXP
3
4NXP DPAA DMA Driver
5===================
6
7The DPAA DMA is an implementation of the dmadev APIs,
8that provide means to initiate a DMA transaction from CPU.
9The initiated DMA is performed without CPU being involved
10in the actual DMA transaction.
11This is achieved via using the QDMA controller of DPAA SoC.
12
13The QDMA controller transfers blocks of data
14between one source and one destination.
15The blocks of data transferred can be represented in memory
16as contiguous or noncontiguous using scatter/gather table(s).
17
18More 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
21Supported DPAA SoCs
22-------------------
23
24- LS1046A
25- LS1043A
26
27Prerequisites
28-------------
29
30See :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
39Compilation
40-----------
41
42For builds using ``meson`` and ``ninja``, the driver will be built when the
43target platform is dpaa-based. No additional compilation steps are necessary.
44
45``RTE_DMA_DPAA_ERRATA_ERR050757``
46  Enable software workaround for Errata-A050757
47``RTE_DMA_DPAA_ERRATA_ERR050265``
48  Enable software workaround for Errata-A050265
49
50Initialization
51--------------
52
53On EAL initialization, DPAA DMA devices will be detected on DPAA bus and
54will be probed and populated into their device list.
55
56Features
57--------
58
59The DPAA DMA implements following features in the dmadev API:
60
61- Supports 1 virtual channel.
62- Supports all 4 DMA transfers: MEM_TO_MEM, MEM_TO_DEV,
63  DEV_TO_MEM, DEV_TO_DEV.
64- Supports DMA silent mode.
65- Supports issuing DMA of data within memory without hogging CPU while
66  performing DMA operation.
67- Supports statistics.
68
69Platform Requirement
70--------------------
71
72DPAA DMA driver for DPDK can only work on NXP SoCs
73as listed in the `Supported DPAA SoCs`_.
74
75Device Arguments
76----------------
77
78``dpaa_dma_err_check=1``
79  Check DMA errors at driver level.
80  Usage example: ``dpaa_bus:dpaa_qdma-1,dpaa_dma_err_check=1``
81