PCIe 错误消息如何找到它的根端口?

How do PCIe error messages find it's root port?

简单的问题,但我在规范和传闻书中都找不到答案。 MSI 具有告诉设备将中断消息发送到何处的功能。是否有类似的寄存器告诉设备将错误消息发送到哪里?是否有一些专用的 address/bdf 具有某种 "pass upstream" 的含义?它是否始终将全零用于目标并且根端口在途中拾取它?

谢谢

PCIe 规范(修订版 4.0)的第 2.2.4 节描述了地址和 ID-based 路由。内存读写基于内存地址进行路由。完成按 ID 路由。

第 2.2.8 节描述了消息的路由,包括错误消息。特别是,请参阅第 105 页的 Table 2-17,第 2.2.8.3 节和 Table 2-21。 Table 2-21 显示错误信令消息的路由字段始终为 0,表明它们被路由到 Root Complex。

MSI 功能没有任何关于 PCIe 路由的特殊信息。 MSI 使用内存写入事务执行,因此按地址路由。