【问题标题】:Identifying whether a PCI device is PCI or PCIe识别 PCI 设备是 PCI 还是 PCIe
【发布时间】:2021-05-28 18:13:12
【问题描述】:

我需要能够在运行时识别给定的 PCI 设备是 express 还是 non-express。一种可能的识别方法是获取配置空间并检查扩展部分。如果存在扩展部分,则它是 PCIe 卡。具体来说,我会检查前四个字节,看看它们是否是规范要求的0x100

这是验证正在使用的卡类型的最佳方法吗?我的假设是否正确?

【问题讨论】:

    标签: c++ pci pci-e


    【解决方案1】:

    我认为最好的方法是寻找 PCI Express 功能,它位于常规功能空间中,而不是扩展空间中。此功能的存在表示 PCIe 设备。能力 ID 为 0x10。

    【讨论】:

    • 配置空间的哪里是pcie能力ID?偏移量是多少?
    • 它在能力列表中的某处。您必须从功能列表的开头开始搜索它。
    • 能力 ID 是硬件还是软件的反映?
    猜你喜欢
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 2020-08-21
    • 2015-04-02
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多