我正在开发一个嵌入式 PCIe 系统,其中两个 SoC 连接在一起,主机是根联合体,从机是端点。主机将运行 Linux。
通常,主机 SoC 提供内存窗口,其中映射了端点 BAR。这允许主机上的卡驱动程序读取/写入从机上的 IO 或内存。通常,从设备将包含一个内置在 PCIe IP 中的 DMAC,它与 PCIe 地址和本地地址一起工作。主机将通过写入内存窗口来设置此 DMAC。
就我而言,端点没有内置到 PCIe IP 中的 DMAC,但确实有系统 DMAC。那么,两个问题...
- 端点可以通过 BAR 访问根复合体的内存吗?
- 使用系统 DMAC 而不是内置 PCIe DMAC 是否会对性能产生影响?(换句话说,通过 BAR 的访问如何出现在 PCIe 总线上,每次访问是否获得一个 TLP?)
任何帮助表示赞赏!