PCIe 端点到系统内存/端点事务

PCIe 端点到系统内存/端点事务

我有 PCIe 端点和根联合体,将是运行 Linux 的 PC。现在,我想使用 PCIe 内存读取请求(TLP)PCIe 内存 TLP 示例从 EP 向系统内存(RC)发送几个字节(比如 4 个字节)。

内存请求 TLP


为了发送此消息,EP 需要知道系统内存的地址。据我所知,RC 将连接到系统内存,因此任何针对 RC 的事务都将针对系统内存,因此 EP 应该知道 RC 的地址范围。以下是示例图像:

EP 到系统内存的事务

我的问题:

  1. EP 如何知道系统内存的地址?RC BAR 是否映射到系统内存?如果是,EP 可以访问 RC BAR 吗?如果可以,如何访问?

  2. 同样的,当一个EP想要和另一个EP通信时,它应该知道目标EP的BAR地址。那么,一个EP如何知道另一个EP的地址呢?

    示例图像:EP 到 EP 内存传输

  3. 是否有任何 Linux 代码/驱动程序可供我参考,用于 EP 到系统内存/另一个 EP 通信?


非常感谢您的帮助。

相关内容