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