仅对英特尔可见 — GUID: xeu1612984569164
Ixiasoft
1. 有关R-tile Avalon® 流 Intel® FPGA IP用于PCI Express
2. IP架构和功能描述
3. 高级功能特性
4. 接口
5. 参数
6. 用于 PCI Express* 的 Intel® FPGA R-tile Avalon® Streaming IP用户指南存档
7. 用于PCI Express的Intel FPGA R-tile Avalon® Streaming IP用户指南文档修订历史
A. 配置空间寄存器
B. 根端口枚举
C. Endpoint模式下Address Translation Services(ATS)的实现
D. TLP Bypass模式下转发到用户应用的数据包
3.2.2.5.1. VirtIO Common Configuration Capability寄存器(地址: 0x012)
3.2.2.5.2. VirtIO Common Configuration Capability寄存器(地址: 0x013)
3.2.2.5.3. VirtIO Common Configuration BAR Offset寄存器(地址: 0x014)
3.2.2.5.4. VirtIO Common Configuration Structure长度寄存器(地址:0x015)
3.2.2.5.5. VirtIO Notifications Capability寄存器(地址:0x016)
3.2.2.5.6. VirtIO Notifications BAR Indicator寄存器(地址:0x017)
3.2.2.5.7. VirtIO Notifications BAR Offset寄存器(地址:0x018)
3.2.2.5.8. VirtIO Notifications Structure长度寄存器(地址:0x019)
3.2.2.5.9. VirtIO Notifications Notify Off Multiplier寄存器(地址:0x01A)
3.2.2.5.10. VirtIO ISR Status Capability寄存器(地址:0x02F)
3.2.2.5.11. VirtIO ISR Status BAR Indicator寄存器(地址:0x030)
3.2.2.5.12. VirtIO ISR Status BAR Offset寄存器(地址:0x031)
3.2.2.5.13. VirtIO ISR Status Structure长度寄存器(地址:0x032)
3.2.2.5.14. VirtIO Device Specific Capability寄存器(地址:0x033)
3.2.2.5.15. VirtIO Device Specific BAR Indicator寄存器(地址:0x034)
3.2.2.5.16. VirtIO Device Specific BAR Offset寄存器(地址:0x035)
3.2.2.5.17. VirtIO Device Specific Structure长度寄存器(地址:0x036)
3.2.2.5.18. VirtIO PCI Configuration Access Capability寄存器(Address: 0x037)
3.2.2.5.19. VirtIO PCI Configuration Access BAR Indicator寄存器(地址:0x038)
3.2.2.5.20. VirtIO PCI Configuration Access BAR Offset寄存器(地址:0x039)
3.2.2.5.21. VirtIO PCI Configuration Access Structure长度寄存器(地址:0x03A)
3.2.2.5.22. VirtIO PCI Configuration Access Data寄存器(地址:0x03B)
4.4.1. Avalon® 流接口
4.4.2. 精确时间测量(PTM)接口(仅端点)
4.4.3. 中断接口
4.4.4. Hard IP重配置接口
4.4.5. Error接口
4.4.6. Completion Timeout接口
4.4.7. Configuration Intercept接口
4.4.8. 电源管理接口
4.4.9. Hard IP状态接口
4.4.10. Page Request Services (PRS)接口(仅Endpoint)
4.4.11. Function-Level Reset (FLR,功能层复位)接口(仅Endpoint)
4.4.12. SR-IOV VF Error Flag接口(仅Endpoint)
4.4.13. 通用VSEC接口
5.2.3.1. 器件Capabilities
5.2.3.2. VirtIO参数
5.2.3.3. 链路Capabilities
5.2.3.4. Legacy中断管脚寄存器
5.2.3.5. MSI Capabilities
5.2.3.6. MSI-X Capabilities
5.2.3.7. 插槽Capabilities
5.2.3.8. Latency Tolerance Reporting (LTR)
5.2.3.9. Process Address Space ID (PASID)
5.2.3.10. 器件序列号Capability
5.2.3.11. Page Request Service (PRS)
5.2.3.12. Access Control Service (ACS)
5.2.3.13. 电源管理
5.2.3.14. Vendor Specific Extended Capability (VSEC,供应商指定扩展性能)寄存器
5.2.3.15. TLP Processing Hints (TPH)
5.2.3.16. Address Translation Services (ATS) Capabilities
5.2.3.17. Precision Time Management (PTM)
仅对英特尔可见 — GUID: xeu1612984569164
Ixiasoft
4.4.3.3.1. 实现MSI-X中断
PCI Local Bus Specification的6.8.2小节描述了MSI-X capability和table结构。MSI-X capability结构指向MSI-X Table结构和MSI-X Pending Bit Array (PBA)寄存器。BIOS设置MSI-X Table 和PBA寄存器起始地址的起始地址偏移和该指针相关联的BAR。
MSI-X中断组件
- Host软件通过完成如下步骤来在Application Layer中设置MSI-X中断:
- Host软件读取0x050寄存器处的Message Control寄存器以确定MSI-X Table大小。table entry的个数是<value read> + 1。
最大table为2048个entry。每个16字节entry分为4个字段,如下图所示。可在任何已配置的BAR访问MSI-X table。MSI-X table的基地址必须与4 KB边界对齐。
- 主机设置MSI-X table。它为每个entry的MSI-X地址,数据进行编程并且屏蔽位,如下图所示。
图 30. MSI-X Table的格式
- Host使用如下公式计算<n th > entry的地址:
nth_address = base address[BAR] + 16<n>
- Host软件读取0x050寄存器处的Message Control寄存器以确定MSI-X Table大小。table entry的个数是<value read> + 1。
- Application Layer有一个中断时,它会向IRQ Source模块发起一个中断请求。
- IRQ Source在MSI-X PBA table中设置一个适当的位。
PBA可以使用四字(qword)或双字(dword)接入。对于qword接入,IRQ Source使用以下方程式计算<m th >位的地址:
qword address = <PBA base addr> + 8(floor(<m>/64)) qword bit = <m> mod 64
图 31. MSI-X PBA Table - IRQ Processor读取MSI-X table中的entry。
- 如果中断被MSI-X table的Vector_Control字段屏蔽,则该中断保持待定状态。
- 如果中断未被屏蔽,则IRQ Processor向TX从接口发送Memory Write Request。它使用MSI-X table中的地址和数据。如果 Message Upper Address = 0,那么IRQ Processor会创建一个three-dword header。如果 Message Upper Address > 0 ,那么它将创建一个4-dword header。
- 主机中断服务例程将TLP检测为中断并对其服务。