使用 PCI 配置空间识别 PCIe 设备

发布于 2024-11-03 04:07:53 字数 166 浏览 8 评论 0原文

给定系统中安装的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

晚风撩人 2024-11-10 04:07:53

我使用以下方式检索 PCIe 设备:

  1. 检查 PCI 设备配置寄存器 0x​​6 bit4 = 1(功能列表存在状态)吗?
  2. 检查 PCI 设备配置寄存器 0x​​34 != 0(功能指针有效)是否?
  3. 检查 PCIe 功能(ID = 0x10)是否存在?

如果以上所有条件均成立,则该设备是 PCIe 设备!

我很好奇“此方法无法识别某些设备”的情况?

I used below way to retrieve PCIe devices:

  1. check if PCI device config register 0x6 bit4 = 1(capability list exist status) ?
  2. check if PCI device config register 0x34 != 0(capability pointer valid) ?
  3. check if PCIe capability(ID = 0x10) exist ?

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" ?

酷到爆炸 2024-11-10 04:07:53

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文