我们有许多设计利用 PCIe 外设上的 DMA 作为根复合体在 DSP 和 FPGA 之间传输数据块。 在这些设计中、DSP 是根复合体、FPGA 是端点。 其中一种设计是使用 C6674 DSP。 出于诊断目的、我们主要关注 DMA 完成对 FPGA 的写入的时序。 我们找到的 PCIe 写入事务完成的最接近的监视器是监视 PCIeSS 活动状态寄存器(ACT_STATUS)的出站缓冲区空位(OB_NOT _EMPTY)。 这使我们能够查看 DMA 何时将数据实际写入 PCIeSS 外设。
我意识到 AM571x 的 PCIe 控制器与 C6674有很大不同。 我在 AM571x PCIe 控制器的应用寄存器中查找反映 C6674的 ACT_STATUS 寄存器的内容、但迄今未成功。 有一个 PCIe 规范寄存器(器件状态、PCIECTRL_EP_DBICS_DEV_CAS)具有"事务待处理"位、但这与未发布请求(读取)有关、不适用于我们的情况。
那么、我的问题是、我可以在 AM571x 上读取任何寄存器来监控传出 PCIe 写入的状态吗? 更一般而言、DSP 是否有任何方法可以知道写入 PCIe 外设的 DMA 传输产生的 PCIe 写入数据包是否全部发送?
感谢你的帮助、
肖恩