xref: /dpdk/doc/guides/dmadevs/dpaa.rst (revision a63c6426fdfd9233ba9c7d4503e52bff3732fe69)
1583f3732SGagandeep Singh..  SPDX-License-Identifier: BSD-3-Clause
2583f3732SGagandeep Singh    Copyright 2021 NXP
3583f3732SGagandeep Singh
4583f3732SGagandeep SinghNXP DPAA DMA Driver
5583f3732SGagandeep Singh===================
6583f3732SGagandeep Singh
7583f3732SGagandeep SinghThe DPAA DMA is an implementation of the dmadev APIs,
8583f3732SGagandeep Singhthat provide means to initiate a DMA transaction from CPU.
9583f3732SGagandeep SinghThe initiated DMA is performed without CPU being involved
10583f3732SGagandeep Singhin the actual DMA transaction.
11583f3732SGagandeep SinghThis is achieved via using the QDMA controller of DPAA SoC.
12583f3732SGagandeep Singh
13583f3732SGagandeep SinghThe QDMA controller transfers blocks of data
14583f3732SGagandeep Singhbetween one source and one destination.
15583f3732SGagandeep SinghThe blocks of data transferred can be represented in memory
16583f3732SGagandeep Singhas contiguous or noncontiguous using scatter/gather table(s).
17583f3732SGagandeep Singh
18583f3732SGagandeep SinghMore information can be found at `NXP Official Website
19583f3732SGagandeep Singh<http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/qoriq-arm-processors:QORIQ-ARM>`_.
20583f3732SGagandeep Singh
21583f3732SGagandeep SinghSupported DPAA SoCs
22583f3732SGagandeep Singh-------------------
23583f3732SGagandeep Singh
24583f3732SGagandeep Singh- LS1046A
25583f3732SGagandeep Singh- LS1043A
26583f3732SGagandeep Singh
27583f3732SGagandeep SinghPrerequisites
28583f3732SGagandeep Singh-------------
29583f3732SGagandeep Singh
30583f3732SGagandeep SinghSee :doc:`../platform/dpaa` for setup information
31583f3732SGagandeep Singh
32583f3732SGagandeep Singh- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
33583f3732SGagandeep Singh
34583f3732SGagandeep Singh.. note::
35583f3732SGagandeep Singh
36583f3732SGagandeep Singh   Some part of dpaa bus code (qbman and fman - library) routines are
37583f3732SGagandeep Singh   dual licensed (BSD & GPLv2), however they are used as BSD in DPDK in userspace.
38583f3732SGagandeep Singh
39583f3732SGagandeep SinghCompilation
40583f3732SGagandeep Singh-----------
41583f3732SGagandeep Singh
42583f3732SGagandeep SinghFor builds using ``meson`` and ``ninja``, the driver will be built when the
43583f3732SGagandeep Singhtarget platform is dpaa-based. No additional compilation steps are necessary.
44583f3732SGagandeep Singh
45bdcb782aSJun Yang``RTE_DMA_DPAA_ERRATA_ERR050757``
46bdcb782aSJun Yang  Enable software workaround for Errata-A050757
478c53b9b7SJun Yang``RTE_DMA_DPAA_ERRATA_ERR050265``
488c53b9b7SJun Yang  Enable software workaround for Errata-A050265
49bdcb782aSJun Yang
50583f3732SGagandeep SinghInitialization
51583f3732SGagandeep Singh--------------
52583f3732SGagandeep Singh
53583f3732SGagandeep SinghOn EAL initialization, DPAA DMA devices will be detected on DPAA bus and
54583f3732SGagandeep Singhwill be probed and populated into their device list.
55583f3732SGagandeep Singh
567da29a64SGagandeep SinghFeatures
577da29a64SGagandeep Singh--------
587da29a64SGagandeep Singh
597da29a64SGagandeep SinghThe DPAA DMA implements following features in the dmadev API:
607da29a64SGagandeep Singh
617da29a64SGagandeep Singh- Supports 1 virtual channel.
627da29a64SGagandeep Singh- Supports all 4 DMA transfers: MEM_TO_MEM, MEM_TO_DEV,
637da29a64SGagandeep Singh  DEV_TO_MEM, DEV_TO_DEV.
647da29a64SGagandeep Singh- Supports DMA silent mode.
657da29a64SGagandeep Singh- Supports issuing DMA of data within memory without hogging CPU while
667da29a64SGagandeep Singh  performing DMA operation.
6733441726SGagandeep Singh- Supports statistics.
687da29a64SGagandeep Singh
69583f3732SGagandeep SinghPlatform Requirement
70583f3732SGagandeep Singh--------------------
71583f3732SGagandeep Singh
72583f3732SGagandeep SinghDPAA DMA driver for DPDK can only work on NXP SoCs
73583f3732SGagandeep Singhas listed in the `Supported DPAA SoCs`_.
74*a63c6426SJun Yang
75*a63c6426SJun YangDevice Arguments
76*a63c6426SJun Yang----------------
77*a63c6426SJun Yang
78*a63c6426SJun Yang``dpaa_dma_err_check=1``
79*a63c6426SJun Yang  Check DMA errors at driver level.
80*a63c6426SJun Yang  Usage example: ``dpaa_bus:dpaa_qdma-1,dpaa_dma_err_check=1``
81