1.. SPDX-License-Identifier: BSD-3-Clause 2 Copyright 2018 NXP 3 4NXP DPAA2 QDMA Driver 5===================== 6 7The DPAA2 QDMA is an implementation of the rawdev API, that provide means 8to initiate a DMA transaction from CPU. The initiated DMA is performed 9without CPU being involved in the actual DMA transaction. This is achieved 10via using the DPDMAI device exposed by MC. 11 12More information can be found at `NXP Official Website 13<http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/qoriq-arm-processors:QORIQ-ARM>`_. 14 15Features 16-------- 17 18The DPAA2 QDMA implements following features in the rawdev API; 19 20- Supports issuing DMA of data within memory without hogging CPU while 21 performing DMA operation. 22- Supports configuring to optionally get status of the DMA translation on 23 per DMA operation basis. 24 25Supported DPAA2 SoCs 26-------------------- 27 28- LX2160A 29- LS2084A/LS2044A 30- LS2088A/LS2048A 31- LS1088A/LS1048A 32 33Prerequisites 34------------- 35 36See :doc:`../platform/dpaa2` for setup information 37 38Currently supported by DPDK: 39 40- NXP SDK **18.09+**. 41- MC Firmware version **10.10.0** and higher. 42- Supported architectures: **arm64 LE**. 43 44- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment. 45 46.. note:: 47 48 Some part of fslmc bus code (mc flib - object library) routines are 49 dual licensed (BSD & GPLv2). 50 51Pre-Installation Configuration 52------------------------------ 53 54Config File Options 55~~~~~~~~~~~~~~~~~~~ 56 57The following options can be modified in the ``config`` file. 58 59- ``CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV`` (default ``y``) 60 61 Toggle compilation of the ``lrte_pmd_dpaa2_qdma`` driver. 62 63Enabling logs 64------------- 65 66For enabling logs, use the following EAL parameter: 67 68.. code-block:: console 69 70 ./your_qdma_application <EAL args> --log-level=pmd.raw.dpaa2.qdma,<level> 71 72Using ``pmd.raw.dpaa2.qdma`` as log matching criteria, all Event PMD logs can be 73enabled which are lower than logging ``level``. 74 75Driver Compilation 76~~~~~~~~~~~~~~~~~~ 77 78To compile the DPAA2 QDMA PMD for Linux arm64 gcc target, run the 79following ``make`` command: 80 81.. code-block:: console 82 83 cd <DPDK-source-directory> 84 make config T=arm64-dpaa2-linuxapp-gcc install 85 86Initialization 87-------------- 88 89The DPAA2 QDMA is exposed as a vdev device which consists of dpdmai devices. 90On EAL initialization, dpdmai devices will be probed and populated into the 91rawdevices. The rawdev ID of the device can be obtained using 92 93* Invoking ``rte_rawdev_get_dev_id("dpdmai.x")`` from the application 94 where x is the object ID of the DPDMAI object created by MC. Use can 95 use this index for further rawdev function calls. 96 97Platform Requirement 98~~~~~~~~~~~~~~~~~~~~ 99 100DPAA2 drivers for DPDK can only work on NXP SoCs as listed in the 101``Supported DPAA2 SoCs``. 102