【问题标题】:Identify a PCIe device using PCI config space使用 PCI 配置空间识别 PCIe 设备
【发布时间】:2011-04-25 19:37:30
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: hardware pci pci-bus


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-06
        • 1970-01-01
        • 2018-01-04
        • 1970-01-01
        • 2020-08-21
        • 1970-01-01
        • 2015-04-02
        • 1970-01-01
        相关资源
        最近更新 更多