使用 PCI 配置空间识别 PCIe 设备
给定系统中安装的 PCI 设备列表,我需要识别 PCIe 设备。到目前为止,我一直在对功能列表进行迭代,以查看设备是否具有扩展上限结构(对应于上限 ID 0x10)。而且,如果设备具有扩展帽结构,那么它肯定是 PCIe 设备。然而,这种方法似乎无法识别某些设备。我想知道是否有人知道更好的方法。
谢谢。
Given the list of PCI devices installed in the system, I need to identify PCIe devices. So far, I've been using iteration over the list of capabilities to see if the device has extended cap structure (which would correspond to cap ID 0x10). And, if the device has an extended cap structure, then it is a PCIe device for sure. However, it seems like this method fails to identify some devices. I was wondering if anyone knows of a better method.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我使用以下方式检索 PCIe 设备:
如果以上所有条件均成立,则该设备是 PCIe 设备!
我很好奇“此方法无法识别某些设备”的情况?
I used below way to retrieve PCIe devices:
If all above are true then this device is a PCIe device !!!
I am curious about the situation that "this method fails to identify some devices" ?
PCI/PCIE 设备扫描,功能指针中可能存在冗余地址(损坏的 PCI 配置空间)。
请检查所有B:D:F组合中的能力指针值是否存在冗余,
如果您发现任何问题,可以直接联系 BIOS 供应商进行修复。
PCI/PCIE device scanning, It is possible to have redundant addresses in the capabilities pointer(corrupted PCI config space).
Please check if there is any redundancy in capability pointer values in all B:D:F combinations,
If you found any issues you can directly contact your BIOS vendor to get it rectified.