КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Шины и карты расширения



6.2. Шина PCI
209

Capability Poi nte г (CAP_PTR)—указатель на список возможностей (свойств), описанных в конфигурационном пространстве (биты 1:0=00). Каждый элемент списка начинается с байта идентификатора типа элемента (CAP_I D, определен¬ного PCI SIG), за которым следует указатель на следующий элемент списка (нулевой указатель является признаком конца списка), после чего расположе¬ны байты описаний самих свойств. Все элементы выравниваются по границе двойного слова.

Base Address Registers -^ базовые адреса областей памяти и портов ввода-
вывода. Для областей памяти бит 0=0. Биты 2:1 — тип: 00 — располагаются в 32-битном адресном пространстве, 10 — в 64-битном (в этом случае регистр расширяется следующим за ним 4-байтным словом), 01 и 11 — резерв (01 в преж¬них версиях предназначались для памяти в пределах первого мегабайта). Бит 3 (Prefetchable) устанавливается, если чтение памяти не приводит к побоч¬ным эффектам, все байты считываются независимо от сигналов ВЕ[3:0]# и от¬дельные записи мостом могут быть объединены (то есть это память в чистом виде); в иных случаях бит обнулен. Биты 31:4 — базовый адрес памяти. Для портов бит 0=1; бит 1 -0 (резерв); биты 31:2— базовый адрес блока портов. Кон¬фигурирующая программа может определить размеры требуемых областей.
Для этого после аппаратного сброса она должна считать и сохранить значения
базовых адресов (это будут адреса по умолчанию), записать в каждый регистр
FFFFFFFFh и снова считать их значение. В полученных словах нужно обну¬
лить биты декодирования типа (биты 3:0 для памяти и биты 1:0 для ввода-вы¬вода), инвертировать и инкрементировать полученное 32-битное слово — ре¬зультатом будет длина области (для портов биты 31:16 игнорировать). Метод подразумевает, что длина области выражается числом 2" и область выров¬нена естественным образом.

Expansion ROM Base Address—базовый адрес ПЗУ программной поддержки карты. Бит 0 — разрешение использования ПЗУ; биты 1-10 — резерв; биты 11-31 — базовый адрес. Размер ПЗУ определяется так же, как и в регистрах базо¬вых адресов (см. выше). Обращение к ПЗУ возможно лишь при разрешенном использовании памяти (бит 1 в регистре команд).
6.2.13. Классы устройств PCI
Важной частью спецификации PCI является классификация устройств и указа¬ние кода класса в его конфигурационном пространстве (3 байта Class Code). Стар¬ший байт определяет базовый класс, средний — подкласс, младший — программный интерфейс (если он стандартизован). Код класса позволяет идентифицировать наличие определенных устройств в системе, это может быть сделано с помощью PCI BIOS.

Hosted by uCoz