raw/ntb: support Intel NTB
[dpdk.git] / doc / guides / rawdevs / ntb.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright(c) 2018 Intel Corporation.
3
4 NTB Rawdev Driver
5 =================
6
7 The ``ntb`` rawdev driver provides a non-transparent bridge between two
8 separate hosts so that they can communicate with each other. Thus, many
9 user cases can benefit from this, such as fault tolerance and visual
10 acceleration.
11
12 BIOS setting on Intel Skylake
13 -----------------------------
14
15 Intel Non-transparent Bridge needs special BIOS setting. Since the PMD only
16 supports Intel Skylake platform, introduce BIOS setting here. The referencce
17 is https://www.intel.com/content/dam/support/us/en/documents/server-products/Intel_Xeon_Processor_Scalable_Family_BIOS_User_Guide.pdf
18
19 - Set the needed PCIe port as NTB to NTB mode on both hosts.
20 - Enable NTB bars and set bar size of bar 23 and bar 45 as 12-29 (2K-512M)
21   on both hosts. Note that bar size on both hosts should be the same.
22 - Disable split bars for both hosts.
23 - Set crosslink control override as DSD/USP on one host, USD/DSP on
24   another host.
25 - Disable PCIe PII SSC (Spread Spectrum Clocking) for both hosts. This
26   is a hardware requirement.
27
28 Build Options
29 -------------
30
31 - ``CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV`` (default ``y``)
32
33    Toggle compilation of the ``ntb`` driver.
34
35 Device Setup
36 ------------
37
38 The Intel NTB devices need to be bound to a DPDK-supported kernel driver
39 to use, i.e. igb_uio, vfio. The ``dpdk-devbind.py`` script can be used to
40 show devices status and to bind them to a suitable kernel driver. They will
41 appear under the category of "Misc (rawdev) devices".
42
43 Limitation
44 ----------
45
46 - The FIFO hasn't been introduced and will come in 19.11 release.
47 - This PMD only supports Intel Skylake platform.