Аппаратные интерфейсы ПК. Энциклопедия
Шрифт:
Таблица 12.9. Расширенный заголовок ROM BIOS карт ISA PnP
Смещение | Длина | Назначение |
---|---|---|
0h | 4 байта | Сигнатура, строка $PnP (символы ASCII) |
04h | байт | Версия структуры (01h) |
05h | байт | Длина (в параграфах по 16 байт) |
06h | слово | Смещение следующего заголовка (0000h, если нет больше) |
08h | байт | Резерв(0) |
09h | байт | Контрольная
|
0Ah | двойное слово | Идентификатор устройства PnP |
0Eh | слово | Указатель на строку идентификатора производителя (0, если нет) |
10h | слово | Указатель на строку названия продукта (0, если нет) |
12h | 3 байт | Код типа устройства |
15h | байт | Индикаторы устройства |
16h | слово | Вектор подключения BCV (Boot Connection Vector) — 0, если нет |
18h | слово | Вектор отключения (Disconnect Vector) — 0, если нет |
1Ah | слово | Точка входа для загрузки BEV (Bootstrap Entry Point) — 0, если нет |
1Ch | слово | Резерв (0) |
1Eh | слово | Вектор получения информации о статических ресурсах (Static Resource Information Vector) — Real/Protected mode (0 если нет) |
Расширенный заголовок позволяет определить идентификатор устройства PnP, его название и код производителя. Код типа состоит из байта общего типа, байта подтипа и байта идентификатора программного интерфейса, по которым система может узнать знакомые устройства.
Байт индикаторов устройства имеет следующее назначение битов:
♦ бит 7 — ПЗУ поддерживает модель инициализации устройства (Device Driver Initialization Model);
♦ бит 6 — ПЗУ может затеняться оперативной памятью;
♦ бит 5 — ПЗУ может кэшироваться по чтению;
♦ бит 4 — ПЗУ требуется лишь для загрузки с данного устройства;
♦ бит 3 — резерв (0);
♦ бит 2 — является устройством загрузки (IPL-устройство);
♦ бит 1 — устройство ввода (может заменять клавиатуру);
♦ бит 0 — устройство вывода (дисплей).
Вектор подключения
Вектор отключения указывает на процедуру, восстанавливающую старое значение векторов при безуспешной попытке загрузки с данного устройства.
Точка входа для загрузки
Вектор получения информации о статических ресурсах задает смещение процедуры, вызов которой выгрузит в память дескрипторы занимаемых ресурсов (в форматах, аналогичных структурам для ISA PnP). Адрес буфера размером не менее 1024 байт задается регистрами
Процедура инициализации, которая начинается со смещения 3 в заголовке ПЗУ, для карт PnP должна подчиняться определенным требованиям (до этой спецификации специальных требований не было), принимать параметры и сообщать код возврата.
♦ При вызове процедуры
♦ При исполнении процедура может переопределять любые векторы прерываний и изменять данные в
♦ При возврате в
• бит 8 — устройство начальной загрузки, поддерживающее блочные функции
• бит 7 — устройство вывода, поддерживающее символьный вывод («телетайпный» режим)
• бит 6 — устройство ввода, поддерживающее символьный ввод
• биты 5:4 — состояние подключения загрузочного устройства: 00 — не подключено, 01 — неизвестно, 10 — подключено (для устройства RPL соединение установлено), 11 — резерв;
• биты 3:2 — состояние подключения устройства вывода (аналогично предыдущему);
• биты 1:0 — состояние подключения устройства ввода (аналогично предыдущему).
Как видно из данного описания, расширенный заголовок и правила поведения процедуры инициализации позволяют системной BIOS более гибко пользоваться функциями дополнительных модулей BIOS — традиционные дополнительные модули со стороны системной BIOS были практически неуправляемыми. Заголовок данного вида может использоваться и картами ISA без поддержки PnP. Если эти карты будут передавать информацию о своих статических ресурсах, они окажут большую услугу для распределения ресурсов системой BIOS с поддержкой PnP. Таким образом, приспособить карту для работы в среде PnP можно всего лишь модификацией содержимого ее ПЗУ расширения BIOS.
Карта ISA PnP может быть установлена в разные системы, имеющие BIOS как с поддержкой PnP, так и без. Процедура инициализации должна исполняться адекватно обнаруженной среде: без PnP BIOS она должна работать традиционным способом, при необходимости загрузки перехватывая
12.9.2. Expansion ROM карт PCI
Для содержимого ПЗУ расширения BIOS, установленных на картах PCI, принят стандарт, несколько отличающийся от традиционных дополнительных модулей ROM BIOS. Заголовок ПЗУ соответствует традиционному, но дополнительно имеет указатель на структуру данных PCI (табл. 12.10). Идентификаторы производителя и устройства, а также код класса совпадают с описанными в конфигурационном пространстве устройства PCI. Поскольку шина PCI используется не только в PC, в ПЗУ карты может храниться несколько модулей. Каждый модуль начинается со структуры данных, сам модуль следует сразу за структурой. За ним начинается структура для следующего модуля (если у предыдущего не установлен признак последнего модуля) и так далее. Тип платформы (процессора) указывается в заголовке модуля, и при инициализации BIOS активизируется только нужный. Такой механизм позволяет, например, один и тот же графический адаптер устанавливать и в IBM PC, и в Power PC.