9.8. PCI vNTB 功能¶
- 作者:
Frank Li <Frank.Li@nxp.com>
PCI NTB 功能和 PCI vNTB 功能之間的區別在於
PCI NTB 功能需要至少兩個端點例項並連線 HOST1 和 HOST2。
PCI vNTB 功能僅使用一個主機和一個端點 (EP),透過 NTB 連線 EP 和 PCI 主機
+------------+ +---------------------------------------+
| | | |
+------------+ | +--------------+
| NTB | | | NTB |
| NetDev | | | NetDev |
+------------+ | +--------------+
| NTB | | | NTB |
| Transfer | | | Transfer |
+------------+ | +--------------+
| | | | |
| PCI NTB | | | |
| EPF | | | |
| Driver | | | PCI Virtual |
| | +---------------+ | NTB Driver |
| | | PCI EP NTB |<------>| |
| | | FN Driver | | |
+------------+ +---------------+ +--------------+
| | | | | |
| PCI BUS | <-----> | PCI EP BUS | | Virtual PCI |
| | PCI | | | BUS |
+------------+ +---------------+--------+--------------+
PCI RC PCI EP
9.8.1. 用於實現 vNTB 的構造¶
配置區域
自用暫存器
對等暫存器
門鈴 (DB) 暫存器
記憶體視窗 (MW)
9.8.1.1. 配置區域:¶
它與 PCI NTB 功能驅動程式相同
9.8.1.2. 暫存器:¶
它附加在配置區域之後。
+--------------------------------------------------+ Base
| |
| |
| |
| Common Config Register |
| |
| |
| |
+-----------------------+--------------------------+ Base + span_offset
| | |
| Peer Span Space | Span Space |
| | |
| | |
+-----------------------+--------------------------+ Base + span_offset
| | | + span_count * 4
| | |
| Span Space | Peer Span Space |
| | |
+-----------------------+--------------------------+
Virtual PCI Pcie Endpoint
NTB Driver NTB Driver
9.8.1.3. 門鈴暫存器:¶
門鈴暫存器用於主機之間互相中斷。
9.8.1.4. 記憶體視窗:¶
兩個主機之間實際的資料傳輸將透過記憶體視窗進行。
9.8.2. 建模構造:¶
32 位 BAR。
BAR 編號 |
使用的構造 |
|---|---|
BAR0 |
配置區域 |
BAR1 |
門鈴 |
BAR2 |
記憶體視窗 1 |
BAR3 |
記憶體視窗 2 |
BAR4 |
記憶體視窗 3 |
BAR5 |
記憶體視窗 4 |
64 位 BAR。
BAR 編號 |
使用的構造 |
|---|---|
BAR0 |
配置區域 + 暫存器 |
BAR1 |
|
BAR2 |
門鈴 |
BAR3 |
|
BAR4 |
記憶體視窗 1 |
BAR5 |