1 .. SPDX-License-Identifier: GPL-2.0
7 :Author: Frank Li <Frank.Li@nxp.com>
9 The difference between PCI NTB function and PCI vNTB function is
11 PCI NTB function need at two endpoint instances and connect HOST1
14 PCI vNTB function only use one host and one endpoint(EP), use NTB
15 connect EP and PCI host
20 +------------+ +---------------------------------------+
22 +------------+ | +--------------+
24 | NetDev | | | NetDev |
25 +------------+ | +--------------+
27 | Transfer | | | Transfer |
28 +------------+ | +--------------+
32 | Driver | | | PCI Virtual |
33 | | +---------------+ | NTB Driver |
34 | | | PCI EP NTB |<------>| |
36 +------------+ +---------------+ +--------------+
38 | PCI BUS | <-----> | PCI EP BUS | | Virtual PCI |
40 +------------+ +---------------+--------+--------------+
43 Constructs used for Implementing vNTB
44 =====================================
47 2) Self Scratchpad Registers
48 3) Peer Scratchpad Registers
49 4) Doorbell (DB) Registers
56 It is same as PCI NTB Function driver
61 It is appended after Config region.
66 +--------------------------------------------------+ Base
70 | Common Config Register |
74 +-----------------------+--------------------------+ Base + span_offset
76 | Peer Span Space | Span Space |
79 +-----------------------+--------------------------+ Base + span_offset
80 | | | + span_count * 4
82 | Span Space | Peer Span Space |
84 +-----------------------+--------------------------+
85 Virtual PCI Pcie Endpoint
92 Doorbell Registers are used by the hosts to interrupt each other.
97 Actual transfer of data between the two hosts will happen using the
105 ====== ===============
106 BAR NO CONSTRUCTS USED
107 ====== ===============
114 ====== ===============
118 ====== ===============================
119 BAR NO CONSTRUCTS USED
120 ====== ===============================
121 BAR0 Config Region + Scratchpad
127 ====== ===============================