raw/ioat: introduce IOAT driver
[dpdk.git] / doc / guides / rawdevs / ioat_rawdev.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright(c) 2019 Intel Corporation.
3
4 .. include:: <isonum.txt>
5
6 IOAT Rawdev Driver for Intel\ |reg| QuickData Technology
7 ======================================================================
8
9 The ``ioat`` rawdev driver provides a poll-mode driver (PMD) for Intel\ |reg|
10 QuickData Technology, part of Intel\ |reg| I/O Acceleration Technology
11 `(Intel I/OAT)
12 <https://www.intel.com/content/www/us/en/wireless-network/accel-technology.html>`_.
13 This PMD, when used on supported hardware, allows data copies, for example,
14 cloning packet data, to be accelerated by that hardware rather than having to
15 be done by software, freeing up CPU cycles for other tasks.
16
17 Hardware Requirements
18 ----------------------
19
20 On Linux, the presence of an Intel\ |reg| QuickData Technology hardware can
21 be detected by checking the output of the ``lspci`` command, where the
22 hardware will be often listed as "Crystal Beach DMA" or "CBDMA". For
23 example, on a system with Intel\ |reg| Xeon\ |reg| CPU E5-2699 v4 @2.20GHz,
24 lspci shows:
25
26 .. code-block:: console
27
28   # lspci | grep DMA
29   00:04.0 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
30   00:04.1 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 1 (rev 01)
31   00:04.2 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 2 (rev 01)
32   00:04.3 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 3 (rev 01)
33   00:04.4 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 4 (rev 01)
34   00:04.5 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 5 (rev 01)
35   00:04.6 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 6 (rev 01)
36   00:04.7 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 7 (rev 01)
37
38 On a system with Intel\ |reg| Xeon\ |reg| Gold 6154 CPU @ 3.00GHz, lspci
39 shows:
40
41 .. code-block:: console
42
43   # lspci | grep DMA
44   00:04.0 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)
45   00:04.1 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)
46   00:04.2 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)
47   00:04.3 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)
48   00:04.4 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)
49   00:04.5 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)
50   00:04.6 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)
51   00:04.7 System peripheral: Intel Corporation Sky Lake-E CBDMA Registers (rev 04)
52
53
54 Compilation
55 ------------
56
57 For builds done with ``make``, the driver compilation is enabled by the
58 ``CONFIG_RTE_LIBRTE_PMD_IOAT_RAWDEV`` build configuration option. This is
59 enabled by default in builds for x86 platforms, and disabled in other
60 configurations.
61
62 For builds using ``meson`` and ``ninja``, the driver will be built when the
63 target platform is x86-based.