raw/ntb: add handshake process
[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 This PMD allows two hosts to handshake for device start and stop, memory
13 allocation for the peer to access and read/write allocated memory from peer.
14 Also, the PMD allows to use doorbell registers to notify the peer and share
15 some information by using scratchpad registers.
16
17 BIOS setting on Intel Skylake
18 -----------------------------
19
20 Intel Non-transparent Bridge needs special BIOS setting. Since the PMD only
21 supports Intel Skylake platform, introduce BIOS setting here. The referencce
22 is https://www.intel.com/content/dam/support/us/en/documents/server-products/Intel_Xeon_Processor_Scalable_Family_BIOS_User_Guide.pdf
23
24 - Set the needed PCIe port as NTB to NTB mode on both hosts.
25 - Enable NTB bars and set bar size of bar 23 and bar 45 as 12-29 (2K-512M)
26   on both hosts. Note that bar size on both hosts should be the same.
27 - Disable split bars for both hosts.
28 - Set crosslink control override as DSD/USP on one host, USD/DSP on
29   another host.
30 - Disable PCIe PII SSC (Spread Spectrum Clocking) for both hosts. This
31   is a hardware requirement.
32
33 Build Options
34 -------------
35
36 - ``CONFIG_RTE_LIBRTE_PMD_NTB_RAWDEV`` (default ``y``)
37
38    Toggle compilation of the ``ntb`` driver.
39
40 Device Setup
41 ------------
42
43 The Intel NTB devices need to be bound to a DPDK-supported kernel driver
44 to use, i.e. igb_uio, vfio. The ``dpdk-devbind.py`` script can be used to
45 show devices status and to bind them to a suitable kernel driver. They will
46 appear under the category of "Misc (rawdev) devices".
47
48 Limitation
49 ----------
50
51 - The FIFO hasn't been introduced and will come in 19.11 release.
52 - This PMD only supports Intel Skylake platform.