#c #pci #pci-e
Вопрос:
Мне нужно иметь возможность определить, является ли данное устройство PCI экспресс-или неэкспрессным во время выполнения. Один из возможных способов идентифицировать это-получить пространство конфигурации и проверить наличие расширенного раздела. Если расширенный раздел существует, то это карта PCIe. В частности, я бы проверил первые четыре байта, чтобы убедиться, что они 0x100
соответствуют требованиям спецификации.
Является ли это лучшим способом проверить, какой тип карты используется? Верны ли мои предположения?
Ответ №1:
Я думаю, что лучший способ-это поиск возможностей PCI Express, которые находятся в обычном пространстве возможностей, а не в расширенном пространстве. Наличие этой возможности указывает на устройство PCIe. Идентификатор возможности равен 0x10.
Комментарии:
1. где в пространстве конфигурации находится идентификатор возможности pcie? Какое смещение?
2. Это где-то в списке возможностей. Вы должны искать его, начиная с начала списка возможностей.
3. Является ли идентификатор возможности отражением аппаратного или программного обеспечения?