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.
63 +--------------------------------------------------+ Base
67 | Common Config Register |
71 +-----------------------+--------------------------+ Base + span_offset
73 | Peer Span Space | Span Space |
76 +-----------------------+--------------------------+ Base + span_offset
77 | | | + span_count * 4
79 | Span Space | Peer Span Space |
81 +-----------------------+--------------------------+
82 Virtual PCI Pcie Endpoint
89 Doorbell Registers are used by the hosts to interrupt each other.
94 Actual transfer of data between the two hosts will happen using the
102 ====== ===============
103 BAR NO CONSTRUCTS USED
104 ====== ===============
111 ====== ===============
115 ====== ===============================
116 BAR NO CONSTRUCTS USED
117 ====== ===============================
118 BAR0 Config Region + Scratchpad
124 ====== ===============================