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 |