高速信号PCI-Express信号完整性测试与问题故障分析 我们以写PCIE EP的memap空间为例子说明下地址之间的转换是怎么做的。PCIE的memap空间是OS分配的,般是个固定的地址和大小,然后OS启动后,PCIE的应用程序将PCIE的memap的Physical Address通过mamap系统调用映射为Virtual Address,然后应用程序就会通过此地址读写EP设备的memap空间,当CPU发出写EP设备的memap空间时,PCIE控制器会根据设置的BAR地址转换成相应的PICE协议要求的地址。BAR是在PCIE枚举的过程中设置的,般通过枚举方式设置成合理的地址值,EP这侧会根据配置的值将自身的memap地址空间映射到设置的地址上去。 举个具体的例子: CPU分配的PCIE Physical Address为0xc20000000,设置的BAR地址为0xe0000000。应用层APP实际使用的Virtual Address和OS有关系,不同的进程调用mamap映射为同个Physical Address可能会产生不同的Virtual Address值。 总结应用层调试方法,config space配置、memap空间的理解 Pcie控制器的配置、使用 从实际调试PCIE设备的过程看,设备调试和使用主要涉及到两个方面:config space和MMIO space。配置空间主要是用于配置PCIE设备。很多PCI设备仅仅支持64字节的配置空间。PCI和PCIe配置空间的区别如下: PCI/PCI-X和PCIe设备还扩展了0x40和0xFF这段配置空间,这段空间主要存放些与MSI或者MSI-X 中断机制相关的Capability结构。其中所有能够提交中断请求的PCIe设备,必须支持MSI或者MSI-X 中断机制相关的Capability结构。 PCIe设备还支持0x100 -0xFFF这段扩展配置空间。PCIe设备的扩展配置空间为4KB,在PCIe总线的扩展配置空间中,存放PCIe所独有的些Capability结构,而PCI设备不能使用这段空间。 相关产品:高速信号PCI-Express信号完整性测试与问题故障分析 更新时间:2024/4/17 15:05:26 标签:高速信号PCI-Express信号完整性测试与问题故障分析 |