xref: /dpdk/doc/guides/dmadevs/dpaa2.rst (revision 388e888dc082520f3dbe6318ae32fbf99695cf4c)
18caf8427SNipun Gupta..  SPDX-License-Identifier: BSD-3-Clause
28caf8427SNipun Gupta    Copyright 2018-2022 NXP
38caf8427SNipun Gupta
48caf8427SNipun GuptaNXP DPAA2 QDMA Driver
58caf8427SNipun Gupta=====================
68caf8427SNipun Gupta
78caf8427SNipun GuptaThe DPAA2 QDMA is an implementation of the dmadev API, that provide means
88caf8427SNipun Guptato initiate a DMA transaction from CPU. The initiated DMA is performed
98caf8427SNipun Guptawithout CPU being involved in the actual DMA transaction. This is achieved
108caf8427SNipun Guptavia using the DPDMAI device exposed by MC.
118caf8427SNipun Gupta
128caf8427SNipun GuptaMore information can be found at `NXP Official Website
138caf8427SNipun Gupta<http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/qoriq-arm-processors:QORIQ-ARM>`_.
148caf8427SNipun Gupta
159e2f8ca6SNipun GuptaFeatures
169e2f8ca6SNipun Gupta--------
179e2f8ca6SNipun Gupta
189e2f8ca6SNipun GuptaThe DPAA2 QDMA implements following features in the dmadev API;
199e2f8ca6SNipun Gupta
209e2f8ca6SNipun Gupta- Supports issuing DMA of data within memory without hogging CPU while
219e2f8ca6SNipun Gupta  performing DMA operation.
229e2f8ca6SNipun Gupta- Supports configuring to optionally get status of the DMA translation on
239e2f8ca6SNipun Gupta  per DMA operation basis.
247661b7d3SNipun Gupta- Supports statistics.
259e2f8ca6SNipun Gupta
268caf8427SNipun GuptaSupported DPAA2 SoCs
278caf8427SNipun Gupta--------------------
288caf8427SNipun Gupta
298caf8427SNipun Gupta- LX2160A
308caf8427SNipun Gupta- LS2084A/LS2044A
318caf8427SNipun Gupta- LS2088A/LS2048A
328caf8427SNipun Gupta- LS1088A/LS1048A
338caf8427SNipun Gupta
348caf8427SNipun GuptaPrerequisites
358caf8427SNipun Gupta-------------
368caf8427SNipun Gupta
378caf8427SNipun GuptaSee :doc:`../platform/dpaa2` for setup information
388caf8427SNipun Gupta
398caf8427SNipun Gupta- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
408caf8427SNipun Gupta
418caf8427SNipun Gupta.. note::
428caf8427SNipun Gupta
438caf8427SNipun Gupta   Some part of fslmc bus code (mc flib - object library) routines are
448caf8427SNipun Gupta   dual licensed (BSD & GPLv2).
458caf8427SNipun Gupta
468caf8427SNipun Gupta
478caf8427SNipun GuptaEnabling logs
488caf8427SNipun Gupta-------------
498caf8427SNipun Gupta
508caf8427SNipun GuptaFor enabling logs, use the following EAL parameter:
518caf8427SNipun Gupta
528caf8427SNipun Gupta.. code-block:: console
538caf8427SNipun Gupta
548caf8427SNipun Gupta   ./your_qdma_application <EAL args> --log-level=pmd.dma.dpaa2.qdma,<level>
558caf8427SNipun Gupta
568caf8427SNipun GuptaUsing ``pmd.dma.dpaa2.qdma`` as log matching criteria, all Event PMD logs can be
578caf8427SNipun Guptaenabled which are lower than logging ``level``.
588caf8427SNipun Gupta
598caf8427SNipun Gupta
608caf8427SNipun GuptaInitialization
618caf8427SNipun Gupta--------------
628caf8427SNipun Gupta
638caf8427SNipun GuptaThe DPAA2 QDMA is exposed as a dma device which consists of dpdmai devices.
648caf8427SNipun GuptaOn EAL initialization, dpdmai devices will be probed and populated into the
658caf8427SNipun Guptadmadevices. The dmadev ID of the device can be obtained using
668caf8427SNipun Gupta
678caf8427SNipun Gupta* Invoking ``rte_dma_get_dev_id_by_name("dpdmai.x")`` from the application
688caf8427SNipun Gupta  where x is the object ID of the DPDMAI object created by MC. Use can
698caf8427SNipun Gupta  use this index for further rawdev function calls.
708caf8427SNipun Gupta
718caf8427SNipun GuptaPlatform Requirement
728caf8427SNipun Gupta~~~~~~~~~~~~~~~~~~~~
738caf8427SNipun Gupta
748caf8427SNipun GuptaDPAA2 drivers for DPDK can only work on NXP SoCs as listed in the
758caf8427SNipun Gupta``Supported DPAA2 SoCs``.
7607d679bcSJun Yang
7707d679bcSJun YangDevice Arguments
7807d679bcSJun Yang----------------
7907d679bcSJun Yang
8007d679bcSJun Yang``fle_pre_populate=1``
8107d679bcSJun Yang  Pre-populate all DMA descriptors with pre-initialized values.
8207d679bcSJun Yang  Usage example: ``fslmc:dpdmai.1,fle_pre_populate=1``
8307d679bcSJun Yang
8407d679bcSJun Yang``desc_debug=1``
8507d679bcSJun Yang  Enable descriptor debugs.
8607d679bcSJun Yang  Usage example: ``fslmc:dpdmai.1,desc_debug=1``
87*388e888dSJun Yang
88*388e888dSJun Yang``short_fd=1``
89*388e888dSJun Yang  Enable short FDs.
90*388e888dSJun Yang  Usage example: ``fslmc:dpdmai.1,short_fd=1``
91