Процедура инициализации, которая начинается со смещения 3 в заголовке ПЗУ, для карт PnP должна подчиняться определенным требованиям (до этой спецификации специальных требований не было), принимать параметры и сообщать код возврата.

♦ При вызове процедуры ЕS: DI указывает на контрольную структуру PnP BIOS, BX содержит CSN карты ISA PnP (для других карт FFFFh); DX — адрес порта чтения ISA PnP (для других карт FFFFh).

♦ При исполнении процедура может переопределять любые векторы прерываний и изменять данные в BDA и EBDA, но перед возвратом она обязана восстановить прежние указатели для Int 9h, Int 10h, Int 13h и все прежние значения связанных с ними переменных в BDA и EBDA.

♦ При возврате в АХ возвращаются признаки проинициализированного устройства:

 • бит 8 — устройство начальной загрузки, поддерживающее блочные функции INT 13h;

 • бит 7 — устройство вывода, поддерживающее символьный вывод («телетайпный» режим) INT 10h;

 • бит 6 — устройство ввода, поддерживающее символьный ввод INT 9h;

 • биты 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 она должна работать традиционным способом, при необходимости загрузки перехватывая INT 19h, а в среде PnP BIOS она должна вести себя скромнее, лишь предоставляя системной BIOS требуемые интерфейсы и точки входа.

<p>12.9.2. Expansion ROM карт PCI</p>

Для содержимого ПЗУ расширения BIOS, установленных на картах PCI, принят стандарт, несколько отличающийся от традиционных дополнительных модулей ROM BIOS. Заголовок ПЗУ соответствует традиционному, но дополнительно имеет указатель на структуру данных PCI (табл. 12.10). Идентификаторы производителя и устройства, а также код класса совпадают с описанными в конфигурационном пространстве устройства PCI. Поскольку шина PCI используется не только в PC, в ПЗУ карты может храниться несколько модулей. Каждый модуль начинается со структуры данных, сам модуль следует сразу за структурой. За ним начинается структура для следующего модуля (если у предыдущего не установлен признак последнего модуля) и так далее. Тип платформы (процессора) указывается в заголовке модуля, и при инициализации BIOS активизируется только нужный. Такой механизм позволяет, например, один и тот же графический адаптер устанавливать и в IBM PC, и в Power PC.

Таблица 12.10. Структура данных PCI

СмещениеДлина, байтНазначение
04Сигнатура, строка символов "PCIR"
42Идентификатор производителя
62Идентификатор устройства
82Резерв¹
Ah2Длина структуры (байт), начиная с сигнатуры
Ch1Версия структуры (0 для данной версии)
Dh3Код класса
10h2Длина образа
12h2Версия кода/данных
14h1Тип кода: 0 — х86 для PC-АТ, 2 — HP PA-RISC
15h1Индикатор: 1 — последний образ, 0 — не последний
16h2Резерв

¹ До спецификации PCI 2.2 здесь помещался указатель на строку Vital Product Data (важные сведения о продукте).

Перейти на страницу:

Все книги серии Наиболее полное и подробное руководство

Похожие книги