Оперативные данные конфигурирования доступны через регистры логических устройств. Каждое логическое устройство имеет собственные дескрипторы используемых системных ресурсов.
♦ Обычные 24-битные (4) или 32-битные (4) дескрипторы памяти. Для неиспользуемого дескриптора памяти его поля базового адреса и длины должны быть нулевыми. Одна карта не может одновременно задействовать обычные (24-битные) и 32-битные дескрипторы памяти.
♦ Дескрипторы областей портов ввода-вывода (8). Для неиспользуемого дескриптора портов ввода-вывода его поле базового адреса должно быть нулевым. Размер области адресов определяется в блоке данных, считанном из регистра Resource Data
.
♦ Дескрипторы запросов прерываний (2). Неиспользуемый селектор запроса прерывания должен быть нулевым (поскольку нулевой номер запроса недопустим — занят системным таймером). Для линии IRQ2/9
шины ISA применяют номер 9.
♦ Дескрипторы каналов прямого доступа к памяти. Неиспользуемый дескриптор канала прямого доступа должен иметь значение 4 (этот канал недоступен, по скольку задействован для каскадирования контроллеров).
Назначение регистров дескрипторов и их положение в индексном пространстве PnP раскрывает табл. 6.10.
Таблица 6.10. Регистры дескрипторов системных ресурсов логических устройств PnP
Индекс и тип | Назначение |
---|---|
40h-5Fh — обычные (24-битные) дескрипторы памяти | |
40h, RW | Дескриптор памяти 0: базовый адрес памяти, биты [23:16] |
41h, RW | Дескриптор памяти 0: базовый адрес памяти, биты [15:8] |
42h, RW | Дескриптор памяти 0: управление. Бит [1] — режим обращения: 0–8 бит, 1 — 16 бит. Бит [0] (RO) — способ задания диапазона: 0 — следующее поле воспринимается как маска адреса, 1 —как старший адрес |
43h, RW | Дескриптор памяти 0: маска или максимальный адрес области, биты [23:16]. Единичное значение бита в маске указывает, что соответствующий бит адреса участвует в дешифрации адреса области памяти (старшие биты); нулевое — бит адреса используется для адресации в пределах выделенной области) |
44h, RW | Дескриптор памяти 0: маска или максимальный адрес области, биты [15:8] |
45h-47h | Заполнитель (зарезервировано) |
48h-4Ch | Дескриптор памяти 1 (аналогично предыдущему) |
4Dh-4Fh | Заполнитель (зарезервировано) |
50h-54h | Дескриптор памяти 2 (аналогично предыдущему) |
55h-57h | Заполнитель (зарезервировано) |
58h-5Ch | Дескриптор памяти 3 (аналогично предыдущему) |
5Dh-5Fh | Заполнитель (зарезервировано) |
60h-6Fh — дескрипторы пространства ввода-вывода | |
60h, RW | Дескриптор портов 0: базовый адрес, биты [15:8]. Если логическое устройство использует только 10-битное декодирование адреса, биты [15:10] могут игнорироваться |
61h, RW | Дескриптор портов 0: базовый адрес, биты [7:0] |
62h-63h, RW | Дескриптор портов 1 (аналогично предыдущему) |
64h-65h, RW | Дескриптор портов 2 (аналогично предыдущему) |
66h-67h, RW | Дескриптор портов 3 (аналогично предыдущему) |
68h-69h, RW | Дескриптор портов 4 (аналогично предыдущему) |
6Ah-6Bh, RW | Дескриптор портов 5 (аналогично предыдущему) |
6Ch-6Dh, RW | Дескриптор портов 6 (аналогично предыдущему) |
6Eh-6Fh, RW | Дескриптор портов 7 (аналогично предыдущему) |
70h-73h — дескрипторы запросов прерываний | |
70h, RW | Селектор запроса прерывания 0. Биты [3:0] задают номер IRQ для Interrupt 0 |
71h, RW | Тип сигнала запроса прерывания 0. Бит[1] — активный уровень: 1 — высокий, 0 — низкий. Бит[0] — тип: 1 — уровень, 0 — перепад. Если карта поддерживает только один тип сигнала, регистр может быть типа RO |
72h, 73h RW | Селектор и тип запроса прерывания 1 (аналогично предыдущему) |
74h-75h — дескрипторы каналов прямого доступа | |
74h, RW | Селектор 0 канала DMA. Биты [2:0] задают номер используемого канала (001 — DMA0…, 111 — DMA7) |
75h, RW | Селектор 1 канала DMA (аналогично предыдущему) |
76h-A8h — 32-битные дескрипторы памяти | |
76h, RW | 32-битный дескриптор памяти 0: базовый адрес памяти, биты [31:24] |
77h, RW | 32-битный дескриптор памяти 0: базовый адрес памяти, биты [23:16] |
78h, RW | 32-битный дескриптор памяти 0: базовый адрес памяти, биты [15:8] |
79h, RW | 32-битный дескриптор памяти 0: базовый адрес памяти, биты [7:0] |
7Ah, RW | 32-битный дескриптор памяти 0: управление. Биты [7:3] — зарезервированы, при чтении должны возвращать нули. Биты [2:1] — управление доступом: 00 — 8-битная память, 01 — 16-битная память, 10 — зарезервировано, 11 — 32-битная память. Бит [0] (RO) — способ задания диапазона: 0 — следующее поле воспринимается как размер области, 1 — следующее поле воспринимается как старший адрес |
7Bh, RW | 32-битный дескриптор памяти 0: размер или старший адрес области, биты [31:24] |
7Ch, RW | 32-битный дескриптор памяти 0: размер или старший адрес области, биты [23:16] |
7Dh, RW | 32-битный дескриптор памяти 0: размер или старший адрес области, биты [15:8] |
7Eh, RW | 32-битный дескриптор памяти 0: размер или старший адрес области, биты [7:0] |
7Fh | Заполнитель (зарезервировано) |
80h-88h | 32-битный дескриптор памяти 1 |
89h-8Fh | Заполнитель (зарезервировано) |
90h-98h | 32-битный дескриптор памяти 2 |
99h-9Fh | Заполнитель (зарезервировано) |
A0h-A8h | 32-битный дескриптор памяти 3 |