Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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, и исполняться в зависимости от обнаруженного системного окружения.







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.