КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Архитектурные компоненты IBM PC-совместимого компьютера

Для 16-битного интерфейса реального режима, V86 и 16-битного реального режима, функции PCI BIOS вызываются через прерывание Int lAh; номер функции задается при вызо-ве в регистре АХ. Возможна и программная имитация прерывания дальним вызо-

496 Глава 12. Архитектурные компоненты IBM PC-совместимого компьютера
вом по физическому адресу OOOFFE6EH (стандартная точка входа в обработчик Int lAh) с предварительным занесением в стек регистра флагов.
Признаком нормального выполнения является CF=0 и АН=0; при CF-1 АН содер¬жит код ошибки:

81h — неподдерживаемая функция;

83h — неправильный идентификатор производителя;

86h — устройство не найдено;

87h — неправильный номер регистра PCI.
Вызовы требуют глубокого стека (до 1024 байт). Для 32-разрядных вызовов защи¬щенного режима все эти же функции вызываются через точку входа, найденную через каталог 32-разрядных сервисов (см. выше), при этом назначение входных и выходных регистров и флага CF сохраняется. До использования 32-разрядного интерфейса следует сначала найти его каталог и убедиться в наличии сервисов PCI. Функции PCI BIOS перечислены ниже:

АХ - В101Н — проверка присутствия PCI BIOS. При наличии PCI BIOS воз¬вращает CF=0, АН=0 и EDX=20494350h (строка символов "PCI "); проверяться должны все три признака. При этом в AL находится описатель аппаратного механизма доступа к конфигурационному пространству и генерации специаль¬ных циклов PCI:

Бит 0 — поддержка механизма №1 для доступа к конфигурационному про¬странству;

Бит 1 — поддержка механизма №2 для доступа к конфигурационному пространству;

Биты 2:3=00 (резерв);

Бит 4 — поддержка генерации специального цикла по механизму №1;

Бит 5 — поддержка генерации специального цикла по механизму №2;

Биты 6:7=00 (резерв).
В регистрах ВН и BL возвращается старший и младший номер версии (BCD-циф¬ры), в CL — максимальный номер шины PCI, присутствующий в системе (число шин +1, поскольку они нумеруются с нуля последовательно).

Hosted by uCoz