Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Альтернативы
Недавние
Show all languages
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

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

Из Википедии — свободной энциклопедии

Конфигурационное пространство PCI (англ. PCI configuration space) — адресное пространство для конфигурации PCI, в дополнение к типичным адресным пространствам памяти и ввода-вывода.

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

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

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

Первые 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 слотам и настраивает 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.

Ссылки

Эта страница в последний раз была отредактирована 1 октября 2022 в 08:15.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).