Конфигурационное PCI-пространство

Материал из Wiki.ROM.by
Перейти к: навигация, поиск

Кардинальным требованием, предъявляемым к платформам, использующим шинную технологию Peripheral Component Interconnect (PCI), является способность к автоконфигурированию. Поскольку основными исполнительными устройствами шины являются бортовые PCI-контроллеры либо платы расширения, то возможность их конфигурирования должна быть реализована в самих устройствах. Это предполагает ряд функции управления, основанных на доступе к ресурсам, требуемым PCI-устройством для своего полноценного функционирования. Кроме прочего, вычислительная платформа должна располагать паспортными сведениями о каждом агенте на шине, вплоть до получения информации о производителе PCI-контроллера и другой сопутствующей информации, позволяющей однозначно идентифицировать каждое конкретное подключение.

Все перечисленные требования реализованы на шине в виде конфигурационного PCI-пространства, которое поддерживается аппаратно и представляет собой набор регистров, содержащихся в каждом устройстве. Данное регистровое поле состоит из 256 байт, четыре начальных байта которого содержат Vendor ID и Device ID. Эта информация в сочетании с однобайтным регистром Revision ID однозначно идентифицирует PCI-устройство — исходя из содержимого этих полей операционная система загружает те или иные драйверы.

Конфигурирование PCI-устройства требуется еще на этапе выполнения POST. Именно для этого процедуры UEFI BIOS используют информацию, полученную из конфигурационного пространства. Для доступа к нему используются порты Configuration Address (0CF8h) и Configuration Data (0CFCh). С их помощью можно считать и сохранить для анализа регистровые поля всех доступных в системе устройств. Это можно осуществить в UEFI Shell или сеансе DOS одной из популярных утилит. Есть аналогичная программная оснастка и для операционных систем Windows/Linux.

Конфигурационное пространство шины PCI Express расширено до 4 Кб. Для совместимости с программной моделью Legacy PCI оно является расширением стандартного регистрового 256-байтного регистрового поля. Его выгрузка в файл возможна благодаря реализации в PCIe-архитектуре усовершенствованного механизма доступа к конфигурационным регистрам, отображенным в память — Memory-map­ped Configuration (сокращенно MCFG). Эту процедуру можно выполнить с помощью программного обеспечения RWEverything. Инструкция, как это сделать, находится здесь.


Персональные инструменты
Google