1 .. SPDX-License-Identifier: GPL-2.0 2 3 ================= 4 PCI vNTB Function 5 ================= 6 7 :Author: Frank Li <Frank.Li@nxp.com> 8 9 The difference between PCI NTB function and PCI vNTB function is 10 11 PCI NTB function need at two endpoint instances and connect HOST1 12 and HOST2. 13 14 PCI vNTB function only use one host and one endpoint(EP), use NTB 15 connect EP and PCI host 16 17 .. code-block:: text 18 19 20 +------------+ +---------------------------------------+ 21 | | | | 22 +------------+ | +--------------+ 23 | NTB | | | NTB | 24 | NetDev | | | NetDev | 25 +------------+ | +--------------+ 26 | NTB | | | NTB | 27 | Transfer | | | Transfer | 28 +------------+ | +--------------+ 29 | | | | | 30 | PCI NTB | | | | 31 | EPF | | | | 32 | Driver | | | PCI Virtual | 33 | | +---------------+ | NTB Driver | 34 | | | PCI EP NTB |<------>| | 35 | | | FN Driver | | | 36 +------------+ +---------------+ +--------------+ 37 | | | | | | 38 | PCI BUS | <-----> | PCI EP BUS | | Virtual PCI | 39 | | PCI | | | BUS | 40 +------------+ +---------------+--------+--------------+ 41 PCI RC PCI EP 42 43 Constructs used for Implementing vNTB 44 ===================================== 45 46 1) Config Region 47 2) Self Scratchpad Registers 48 3) Peer Scratchpad Registers 49 4) Doorbell (DB) Registers 50 5) Memory Window (MW) 51 52 53 Config Region: 54 -------------- 55 56 It is same as PCI NTB Function driver 57 58 Scratchpad Registers: 59 --------------------- 60 61 It is appended after Config region. 62 63 .. code-block:: text 64 65 66 +--------------------------------------------------+ Base 67 | | 68 | | 69 | | 70 | Common Config Register | 71 | | 72 | | 73 | | 74 +-----------------------+--------------------------+ Base + span_offset 75 | | | 76 | Peer Span Space | Span Space | 77 | | | 78 | | | 79 +-----------------------+--------------------------+ Base + span_offset 80 | | | + span_count * 4 81 | | | 82 | Span Space | Peer Span Space | 83 | | | 84 +-----------------------+--------------------------+ 85 Virtual PCI Pcie Endpoint 86 NTB Driver NTB Driver 87 88 89 Doorbell Registers: 90 ------------------- 91 92 Doorbell Registers are used by the hosts to interrupt each other. 93 94 Memory Window: 95 -------------- 96 97 Actual transfer of data between the two hosts will happen using the 98 memory window. 99 100 Modeling Constructs: 101 ==================== 102 103 32-bit BARs. 104 105 ====== =============== 106 BAR NO CONSTRUCTS USED 107 ====== =============== 108 BAR0 Config Region 109 BAR1 Doorbell 110 BAR2 Memory Window 1 111 BAR3 Memory Window 2 112 BAR4 Memory Window 3 113 BAR5 Memory Window 4 114 ====== =============== 115 116 64-bit BARs. 117 118 ====== =============================== 119 BAR NO CONSTRUCTS USED 120 ====== =============================== 121 BAR0 Config Region + Scratchpad 122 BAR1 123 BAR2 Doorbell 124 BAR3 125 BAR4 Memory Window 1 126 BAR5 127 ====== =============================== 128 129
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.