net/ena: support xstat names by ID
[dpdk.git] / doc / guides / dmadevs / cnxk.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright(c) 2021 Marvell International Ltd.
3
4 .. include:: <isonum.txt>
5
6 CNXK DMA Device Driver
7 ======================
8
9 The ``cnxk`` dmadev driver provides a poll-mode driver (PMD) for Marvell DPI DMA
10 Hardware Accelerator block found in OCTEON 9 and OCTEON 10 family of SoCs.
11 Each DMA queue is exposed as a VF function when SRIOV is enabled.
12
13 The block supports following modes of DMA transfers:
14
15 #. Internal - DMA within SoC DRAM to DRAM
16 #. Inbound  - Host DRAM to SoC DRAM when SoC is in PCIe Endpoint
17 #. Outbound - SoC DRAM to Host DRAM when SoC is in PCIe Endpoint
18
19 Prerequisites and Compilation procedure
20 ---------------------------------------
21
22 See :doc:`../platform/cnxk` for setup information.
23
24 Device Setup
25 -------------
26
27 The ``dpdk-devbind.py`` script, included with DPDK,
28 can be used to show the presence of supported hardware.
29 Running ``dpdk-devbind.py --status-dev dma`` will show all the CNXK DMA devices.
30
31 Devices using VFIO drivers
32 ~~~~~~~~~~~~~~~~~~~~~~~~~~
33
34 The HW devices to be used will need to be bound to a user-space IO driver for use.
35 The ``dpdk-devbind.py`` script can be used to view the state of the devices
36 and to bind them to a suitable DPDK-supported driver, such as ``vfio-pci``.
37 For example::
38
39      $ dpdk-devbind.py -b vfio-pci 0000:05:00.1
40
41 Device Probing and Initialization
42 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43
44 To use the devices from an application, the dmadev API can be used.
45 CNXK DMA device configuration requirements:
46
47 * Only one ``vchan`` is supported per device.
48 * CNXK DMA devices do not support silent mode.
49
50 Once configured, the device can then be made ready for use
51 by calling the ``rte_dma_start()`` API.
52
53 Performing Data Copies
54 ~~~~~~~~~~~~~~~~~~~~~~
55
56 Refer to the :ref:`Enqueue / Dequeue APIs <dmadev_enqueue_dequeue>` section
57 of the dmadev library documentation
58 for details on operation enqueue and submission API usage.