我用pci_find_capability
呼叫PCI_CAP_ID_EXP
,返回码为零,这意味着:
告诉设备是否支持给定的PCI功能。返回设备的PCI配置空间内请求的功能结构的地址;如果设备不支持,则返回0。
为什么设备不支持?
int pcie_cap_addr = pci_find_capability(pdev, PCI_CAP_ID_EXP);
PCI_CAP_ID_EXP
定义为0x10。
答案 0 :(得分:1)
PCI_CAP_ID_EXP
定义为0x10,这是PCI Express功能的功能ID。 PCI Express规范要求所有PCIe设备都实现此功能。因此,任何未实现的设备都不是PCIe设备。
如果您使用的系统足够旧,并且具有内置PCI插槽,那么它可能是PCI插槽中的PCI卡。
否则,它可能是PCIe-PCI桥后面的PCI设备,也可能是不使用任何新PCIe功能的根复杂集成设备(RCIEP),因此它将自己标识为PCI设备,而不是PCIe设备。 PCIe设备。