Сделай Сам Свою Работу на 5

Смещение Длина Назначение





15h байт
16h слови
18h слово
1Ah слово
1Ch слово
1Eh слово

Индикаторы устройства

Вектор подключения BCV (Boot Connection Vector) — 0, если нет

Вектор отключения (Disconnect Vector) — 0, если нет

Точка входа для загрузки BEV (Bootstrap Entry Point) — 0, если нет

Резерв (0)

Вектор получения информации о статических ресурсах (Static Resource Information Vector) — Real/Protected mode (0 если нет)

Расширенный заголовок позволяет определить идентификатор устройства PnP, его название и код производителя. Код типа состоит из байта общего типа, байта подтипа и байта идентификатора программного интерфейса, по которым система может узнать знакомые устройства.

Байт индикаторов устройства имеет следующее назначение битов:

♦ бит 7 — ПЗУ поддерживает модель инициализации устройства (Device Driver Initialization Model);

♦ бит 6 — ПЗУ может затеняться оперативной памятью;

♦ бит 5 — ПЗУ может каптироваться по чтению;

♦ бит 4 — ПЗУ требуется лишь для загрузки с данного устройства;

♦ бит 3 — резерв (0);

♦ бит 2 — является устройством загрузки (IPL-устройство);

♦ бит 1 — устройство ввода (может заменять клавиатуру);

♦ бит 0 — устройство вывода (дисплей).



Вектор подключения BCV (Boot Connection Vector, он же Interrupt Connection Vector) указывает смещение для процедуры, дальний вызов которой приведет к перехвату векторов прерываний первичных устройств ввода, вывода или загрузки (сервисов Int 9h, Int 10п или Int 13h соответственно), в зависимости от параметров, пере­данных в регистрах процессора. При вызове этой процедуры в регистре АХ единицы в битах 0,1 и 2 запрашивают перехват сервисов Int 9h, Int 10hилиInt 13п соот­ветственно (остальные биты нулевые), ES: DI указывает на контрольную структу­ру PnP BIOS (System BIOS PnP Installation Check Structure), BX содержит селек­тивный номер (CSN) карты ISA PnP (для других карт FFFFh); DX содержит адрес порта чтения ISA PnP (для других карт FFFFh).

Вектор отключения указывает на процедуру, восстанавливающую старое значе­ние векторов при безуспешной попытке загрузки с данного устройства.

Точка входа для загрузки BEV требуется, если устройство может использоваться в качестве загрузочного, но не обеспечивает блочных функций сервиса Int 13h. Тогда системная микросхема BIOS может дальним вызовом вызвать эту процеду­ру вместо выполнения сервиса Int 19h. Таким образом, например, может выпол­няться удаленная загрузка (Remote Programm Loading, RPL) по сети.




502______ Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

Вектор получения информации о статических ресурсах задает смещение процеду­ры, вызов которой выгрузит в память дескрипторы занимаемых ресурсов (в фор­матах, аналогичных структурам для ISA PnP). Адрес буфера размером не менее 1024 байт задается регистрами ES: DI при вызове данной процедуры.

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

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

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

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

 

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

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

• бит 6 — устройство ввода, поддерживающее символьный ввод I NT 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 требуемые интерфейсы и точки входа.


12.9. Расширения ROM BIOS__________________________________________ 503

Expansion ROM карт PCI

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

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

 

Смещение Длина,байт Назначение
Сигнатура, строка символов "PCIR"
Идентификатор производителя
Идентификатор устройства
Резерв1
Ah Длина структуры (байт), начиная с сигнатуры
Ch Версия структуры (0 для данной версии)
Dh Код класса
10h Длина образа
12h Версия кода/данных
14h Тип кода: 0 — х86 для РС-АТ, 2 — HP PA-RISC
15h Индикатор: 1 — последний образ, 0 — не последний
16h Резерв

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

Применительно к дополнительному ПЗУ карты PCI имеется три параметра, от­носящихся к размерам. Размер ПЗУ определяется чтением конфигурационного пространства. Размер, указанный во 2-м байте заголовка, указывает на длину мо­дуля на этапе инициализации. Этот модуль POST загружает в ОЗУ перед тем, как вызвать процедуру инициализации (точка входа со смещением 3). Контрольная сумма, расположенная обычно в конце модуля, обеспечивает нулевую сумму всех байт. Длина образа, указанная в структуре данных PCI (слово со смещением 10h), описывает размер области, которая должна оставаться в памяти в режиме нор­мального функционирования (она может быть меньше, поскольку код процедуры инициализации уже не требуется). Эта область также защищается контрольной суммой. Структура данных PCI должна оставаться в памяти все время.


504______ Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера

Работа с модулями ПЗУ для карт PCI выполняется в соответствии с моделью DDIM(см. выше). POST определяет наличие ПЗУ пополю Expansion ROM Base Address в конфигурационном пространстве и назначает ему адрес в свободном пространстве памяти. После этого программированием регистра команд разреша­ется считывание ПЗУ, и в нем ищется сигнатура заголовка АА55Н. Когда сигнатура найдена, POST ищет подходящий образ (по типу кода и совпадающий по иденти­фикаторам с обнаруженными устройствами PCI) и загружает его в ОЗУ (в область COOOO-DFFFFh), оставляя разрешенной запись в эту область. Далее чтение ПЗУ запрещается (записью в поле Expansion ROM Base ^Address), и вызывается про­цедура инициализации (по адресу 3). При вызове процедуры POST сообщает но­мер шины (в регистре АН), номер устройства (AL[7:3]) и номер функции (AL[2:0]), благодаря чему процедура узнает точные координаты аппаратных средств. После этого определяется размер области, которую следует оставить в памяти (по байту 2, который может быть модифицирован процедурой инициализации), и для этой области запрещается запись. Если процедура инициализации «урезает» занима­емую память, она должна позаботиться о достоверности контрольной суммы обла­сти, описанной байтом 2. Если память освобождается полностью (процедура обну­ляет байт 2), то контрольная сумма, естественно, не нужна. Расширение для VGA (определяется по коду класса) обрабатывается особым образом — загружается по адресу COOOOh. Процедура инициализации может определить наличие PnP BIOS в системе, проверив значение контрольной структуры PnP по адресу, указанному в Е5: DI, и исполняться в зависимости от обнаруженного системного окружения.


Глава 13

Интерфейсы питания,

Заземление

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.