0

鉴于系统中安装的 PCI 设备列表,我需要识别 PCIe 设备。到目前为止,我一直在对功能列表进行迭代,以查看设备是否具有扩展的 cap 结构(对应于 cap ID 0x10)。而且,如果该设备具有扩展帽结构,那么它肯定是 PCIe 设备。但是,这种方法似乎无法识别某些设备。我想知道是否有人知道更好的方法。

谢谢。

4

2 回答 2

2

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

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

如果以上都是真的,那么这个设备就是 PCIe 设备!!!

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

于 2012-10-31T03:41:40.963 回答
0

PCI/PCIE 设备扫描,能力指针中可能有冗余地址(损坏的 PCI 配置空间)。

请检查所有 B:D:F 组合中的能力指针值是否有任何冗余,如果发现任何问题,您可以直接联系您的 BIOS 供应商进行纠正。

于 2011-09-30T06:50:44.083 回答