PCI configuration space

PCI configuration space

PCI configuration space — конфигурационное адресное пространство PCI.

Одним из главных усовершенствований шины PCI по сравнению с другими архитектурами ввода-вывода стал её конфигурационный механизм. В дополнение к типичным адресным пространствам памяти и ввода-вывода в PCI вводится конфигурационное адресное пространство. Оно состоит из 256 байт, которые можно адресовать, зная номер шины PCI, номер устройства и номер функции в устройстве. Первые 64 байта из 256 стандартизированы, а остальные регистры могут быть использованы по усмотрению изготовителя устройства.

Содержание

Стандартизированные регистры

Регистры Vendor ID и Device ID идентифицируют устройство и обычно называются PCI ID. Шестнадцатиразрядный регистр Vendor ID выдаётся организацией PCI SIG. Шестнадцатиразрядный регистр Device ID назначается изготовителем устройства. Существует проект создания базы данных всех известных значений регистров Vendor ID и Device ID. (Смотри список cсылок.)

Первые 16 байтов конфигурационного адресного пространства (в соответствии с PCI Local Bus Specification 2.2):

Адрес 31      ...      24 23      ...      16 15      ...       8 7       ...       0
0x00 DeviceID VendorID
0x04 Status Command
0x08 Class Code Revision ID
0x0C BIST Header Type Latency Timer Cache Line Size
0x10 Base Address Register 0
0x14 Base Address Register 1
0x18 Base Address Register 2
0x1C Base Address Register 3
0x20 Base Address Register 4
0x24 Base Address Register 5
0x28 Cardbus CIS pointer
0x2C SubsystemID Subsystem Vendor ID
0x30 Expansion ROM Base Address
0x34 Reserved Capabilities
pointer
0x38 Reserved
0x3C Max_Lat Min_Gnt Interrupt Pin Interrupt Line

Регистры DeviceID, VendorID, Status, Command, Class Code, Revision ID, Header Type являются обязательными для всех PCI-устройств (для многих типов устройств обязательными являются также регистры Subsystem ID и Subsystem Vendor ID).

Все остальные регистры являются опциональными.

Автоматическая инициализация аппаратуры с помощью конфигурационного пространства

Для того, чтобы обращаться к устройству через адресное пространство памяти или ввода-вывода, системное программное обеспечение или ОС программирует базовые адресные регистры (англ. Base Address Registers, также называемые BAR'ами), посылая конфигурационные команды PCI-контроллеру. В начале загрузки системы все PCI устройства находятся в неактивном состоянии, им не назначены адреса, по которым драйверы устройств могут взаимодействовать с ними. Либо BIOS, либо сама операционная система, обращается к PCI слотам при помощи географической адресации через PCI-контроллер и настраивает BAR'ы в конфигурационном адресном пространстве. Значения BAR'ов действительны всё время, пока система включена. При отключении питания значения этих регистров теряются до следующей загрузки, в процессе которой процедура настройки повторяется. Так как этот процесс полностью автоматизирован, пользователь компьютера освобождается от непростой задачи конфигурирования нового аппаратного обеспечения, подключаемого к шине PCI (в отличие, например, от шины ISA, базовые адреса устройств, подключамых к которой, приходилось настраивать перемычками или переключателями).

Любое PCI-устройство, не являющееся мостом (см. PCI-to-PCI Bridge Architecture Specification. Revision 1.1) может иметь до шести BAR'ов, каждый из которых отвечает за определённый диапазон адресов в адресном пространстве памяти или ввода-вывода. Кроме того, устройство может иметь firmware).

Доступ к PCI через порты I/O

Для работы с шиной PCI в PC-AT и совместимых машинах выделено два основных порта.
0CF8h -W порт адреса Address
0CFCh RW порт данных Data
Оба порта являются 32 битными.
Порт адреса представляет из себя следующую 32 битную структуру
+---+---------+-------+----------+--------+---------------+-+-+
|31 |30     24|23   16|15      11|10     8|7             2|1|0|
+---+---------+-------+----------+--------+---------------+-+-+
| с | резерв  |шина   |устройство| функция|Индекс регистра|0|0|
+---+---------+-------+----------+--------+---------------+-+-+
Порт адреса задает шину, устройства, и адрес регистра в конфигурационном пространстве устройства. Грубо говоря, устройство - это физически присутствующее устройство. А функция - это логическое устройство.
С - флаг доступа к устройству.
Младшие два бита в порту адреса всегда 0.
По окончании работы с устройством следует сбросить адрес в 0.

Если в ответ на запрос нулевого регистра возвращается 0FFFFh, то устройства не существует. Vendor ID (ID производителя) - для Intel это 8086h, но не может принимать значение 0FFFFh.
Device ID (ID устройства) - принимает различные значения

Revision ID (ID модификации) - обозначает номер модификации устройства, назначается производителем.

Class Code (Код класса) - состоит из трех частей

+---------------+--------------+---------------------+
|23           16|15           8|7                   0|
+---------------+--------------+---------------------+
|Base Class Code|Sub Class Code|Programming Interface|
+---------------+--------------+---------------------+

Base Class Code - базовый класс, сокращенно BCC.
Sub Class Code - подкласс, сокращенно SCC.
Programming Interface - интерфейс, сокращенно PI.

Header Type (тип заголовка) - если бит 7 равен 1, то устройство содержит несколько функций.
Если бит 6 равен 0, то заголовок стандартный. Стандартные заголовки:
00 - стандартный смотри выше.
01 - стандартный для моста PCI-to-PCI
02 - стандартный для моста CardBus.

См. также

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "PCI configuration space" в других словарях:

  • PCI configuration space — is the underlying way that the Conventional PCI, PCI X and PCI Express perform auto configuration of the cards inserted into their bus. Contents 1 Technical information 2 Standardized registers 3 Bus enumeration …   Wikipedia

  • PCI Configuration Space — One of the major improvements Peripheral Component Interconnect (PCI) had over other I/O architectures was its configuration mechanism. In addition to the normal memory mapped and port spaces, each device on the bus has a configuration space.… …   Wikipedia

  • Configuration space — Not to be confused with PCI Configuration Space. C space redirects here. For the art gallery, see C Space, Beijing. Contents 1 Configuration space in physics 2 Configuration spaces in mathematics 3 See also …   Wikipedia

  • PCI-Bus — Ein PCI Steckplatz (32 Bit) 64 Bit PCI X Steckplätze. Peripheral Component Interconnect, meist PCI abgekürzt, ist ein Bus Standard zur Verbindung von Peripheriegeräten mit dem …   Deutsch Wikipedia

  • PCI-Extended — Ein PCI Steckplatz (32 Bit) 64 Bit PCI X Steckplätze. Peripheral Component Interconnect, meist PCI abgekürzt, ist ein Bus Standard zur Verbindung von Peripheriegeräten mit dem …   Deutsch Wikipedia

  • PCI-SIG — Ein PCI Steckplatz (32 Bit) 64 Bit PCI X Steckplätze. Peripheral Component Interconnect, meist PCI abgekürzt, ist ein Bus Standard zur Verbindung von Peripheriegeräten mit dem …   Deutsch Wikipedia

  • PCI-Slot — Ein PCI Steckplatz (32 Bit) 64 Bit PCI X Steckplätze. Peripheral Component Interconnect, meist PCI abgekürzt, ist ein Bus Standard zur Verbindung von Peripheriegeräten mit dem …   Deutsch Wikipedia

  • PCI-Steckplatz — Ein PCI Steckplatz (32 Bit) 64 Bit PCI X Steckplätze. Peripheral Component Interconnect, meist PCI abgekürzt, ist ein Bus Standard zur Verbindung von Peripheriegeräten mit dem …   Deutsch Wikipedia

  • PCI-X — Ein PCI Steckplatz (32 Bit) 64 Bit PCI X Steckplätze. Peripheral Component Interconnect, meist PCI abgekürzt, ist ein Bus Standard zur Verbindung von Peripheriegeräten mit dem …   Deutsch Wikipedia

  • PCI Special Interest Group — Ein PCI Steckplatz (32 Bit) 64 Bit PCI X Steckplätze. Peripheral Component Interconnect, meist PCI abgekürzt, ist ein Bus Standard zur Verbindung von Peripheriegeräten mit dem …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»