~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/PCI/endpoint/pci-vntb-function.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php