1. 关于P-tile Avalon® Intel® FPGA IPs for PCI Express
2. IP架构和功能描述
3. 高级特性
4. 接口
5. 参数
6. 测试台
7. 故障排除/调试(Troubleshooting/Debugging)
8. P-tile Avalon® Streaming Intel FPGA IP for PCI Express* 用户指南归档
9. P-Tile Avalon® Streaming Intel® FPGA IP for PCI Express* 用户指南文档修订历史
A. 配置空间寄存器
B. Root Port枚举
C. Endpoint模式下地址转换服务(ATS)的实现
D. 在TLP Bypass模式下转发到用户应用程序的数据包
E. 使用Avery BFM进行Intel P-Tile PCI Express Gen4 x16仿真
F. 对独立热复位的分叉端点支持
G. P-Tile Avalon Streaming Intel FPGA IP for PCI Express的裕度掩模
3.2.2.5.1. VirtIO通用配置功能寄存器(地址:0x012)
3.2.2.5.2. VirtIO通用配置BAR指示器寄存器(地址:0x013)
3.2.2.5.3. VirtIO通用配置BAR偏移寄存器(地址:0x014)
3.2.2.5.4. VirtIO通用配置结构长度寄存器(地址:0x015)
3.2.2.5.5. VirtIO通知功能寄存器(地址:0x016)
3.2.2.5.6. VirtIO通知BAR指示器寄存器(地址:0x017)
3.2.2.5.7. VirtIO通知BAR偏移寄存器(地址:0x018)
3.2.2.5.8. VirtIO通知结构长度寄存器(地址:0x019)
3.2.2.5.9. VirtIO通知Notify Off乘数寄存器(地址:0x01A)
3.2.2.5.10. VirtIO ISR状态功能寄存器(地址:0x02F)
3.2.2.5.11. VirtIO ISR状态BAR指示器寄存器(地址:0x030)
3.2.2.5.12. VirtIO ISR状态BAR偏移寄存器(地址:0x031)
3.2.2.5.13. VirtIO ISR状态结构长度寄存器(地址:0x032)
3.2.2.5.14. VirtIO特定于器件的功能寄存器(地址:0x033)
3.2.2.5.15. VirtIO特定于器件的BAR指示器寄存器(地址:0x034)
3.2.2.5.16. VirtIO特定于器件的BAR偏移寄存器(地址:0x035)
3.2.2.5.17. VirtIO特定于器件的结构长度寄存器(地址:0x036)
3.2.2.5.18. VirtIO PCI配置访问功能寄存器(地址:0x037)
3.2.2.5.19. VirtIO PCI配置访问BAR指示器寄存器(地址:0x038)
3.2.2.5.20. VirtIO PCI配置访问BAR偏移寄存器(地址:0x039)
3.2.2.5.21. VirtIO PCI配置访问结构长度寄存器(地址:0x03A)
3.2.2.5.22. VirtIO PCI配置访问数据寄存器(地址:0x03B)
5.2.3.1. 器件功能(Device Capabilities)
5.2.3.2. VirtIO参数
5.2.3.3. 链路功能(Link Capabilities)
5.2.3.4. 传统中断管脚寄存器(Legacy Interrupt Pin Register)
5.2.3.5. MSI功能(MSI Capabilities)
5.2.3.6. MSI-X功能(MSI-X Capabilities)
5.2.3.7. 插槽功能(Slot Capabilities)
5.2.3.8. 延迟容忍报告(Latency Tolerance Reporting,LTR)
5.2.3.9. 进程地址空间ID (Process Address Space ID,PASID)
5.2.3.10. 器件序列号功能(Device Serial Number Capability)
5.2.3.11. 页面请求服务(Page Request Service,PRS)
5.2.3.12. 访问控制服务(Access Control Service,ACS)功能
5.2.3.13. 电源管理(Power Management)
5.2.3.14. 供应商特定扩展功能(Vendor Specific Extended Capability,VSEC)寄存器
5.2.3.15. TLP处理提示(TLP Processing Hints,TPH)
5.2.3.16. 地址转换服务(Address Translation Service,ATS)功能
6.3.5.1. ebfm_barwr程序
6.3.5.2. ebfm_barwr_imm程序
6.3.5.3. ebfm_barrd_wait程序
6.3.5.4. ebfm_barrd_nowt程序
6.3.5.5. ebfm_cfgwr_imm_wait程序
6.3.5.6. ebfm_cfgwr_imm_nowt程序
6.3.5.7. ebfm_cfgrd_wait程序
6.3.5.8. ebfm_cfgrd_nowt程序
6.3.5.9. BFM配置程序
6.3.5.10. BFM共享存储器访问程序
6.3.5.11. BFM日志和消息程序
6.3.5.12. Verilog HDL格式化函数
A.3.1. 英特尔定义的VSEC功能标头(偏移00h)
A.3.2. 英特尔定义的供应商特定标头(偏移04h)
A.3.3. 英特尔标记(Intel Marker (Offset 08h))
A.3.4. JTAG Silicon ID (Offset 0x0C - 0x18)
A.3.5. 用户可配置器件和板级ID(偏移0x1C - 0x1D)
A.3.6. 通用控制和状态寄存器(偏移0x30)
A.3.7. 不可纠正的内部错误状态寄存器(偏移0x34)
A.3.8. 不可纠正的内部错误掩模寄存器(偏移0x38)
A.3.9. 可纠正的内部错误状态寄存器(偏移0x3C)
A.3.10. 可纠正的内部错误屏蔽寄存器(偏移0x40)
3.2.1.2. 实现
VF配置空间是在P-Tile逻辑中实现的,不需要FPGA架构资源。
访问VF PCIe信息:
由于P-Tile与FPGA架构之间的管脚数量有限,VF的PCIe配置空间不能直接供用户应用程序使用。
用户应用程序可以使用以下方法来检索必要的信息(bus master enable,MSI-X等):
- 使用Configuration Intercept Interface监控特定的VF寄存器(关于更多详细信息,请参考配置拦截接口(仅限EP)部分)。
- 使用Hard IP Reconfiguration Interface读/写特定的VF寄存器(关于更多详细信息,请参考使用直接User Avalon-MM接口(字节访问)中的Targeting VF Configuration Space Registers)。
访问VF PCIe信息:
VF ID是在P-Tile中计算得到的。用户应用程序有包括TLP的边带信号rx_st_vf_num_o和rx_st_vf_active_o,用于识别PF内相关的VF。
BDF Assignments:
当SR-IOV使能时,ARI功能始终是使能的。
P-Tile IP for PCIe自动计算Transmit一侧上的completer/requester ID。
用户应用程序需要在Header中提供VF和PF信息,如下所示:
(对于X16,sn是s0或者s1。对于X8,sn是s0)。
- tx_st_hdr_sn[127]: 必须设置为0
- tx_st_hdr_sn[83]: tx_st_vf_active
- tx_st_hdr_sn[82:80]: tx_st_func_num[2:0]
- tx_st_hdr_sn[95:84]: tx_st_vf_num[11:0]
在以下示例中,PF1的VF3正在接收和发送一个请求:
对于Receive TLP:
rx_st_func_num_o = 1h表示与PF1关联的VF正在发出请求。
rx_st_vf_num_o = 3h,并且rx_st_vf_active_o = 1表示PF1的VF3是活动的VF。
对于与PF1关联的VF3的Transmit TLP:
- tx_st_hdr_sn[83] = 1h
- tx_st_hdr_sn[82:80] = 1h
- tx_st_hdr_sn[95:84] = 3h