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

Шины и карты расширения

Для стандартизованных устройств (например, 01:01:80 — контроллер IDE или 07:00:01 — последовательный порт 16450) «заинтересованная» програм¬ма может найти требуемое устройство и выбрать подходящий вариант драйвера. Классификатор определяет организация PCI SIG, он регулярно обновляется на сайте www.pcisig.com. Нулевые значения полей, как правило, дают самые неопре¬деленные описания. Значение подкласса 80h относится к «иным устройствам».

210
Глава 6. Шины и карты расширения
6.2.14. PCI BIOS
Для облегчения взаимодействия с устройствами PCI имеются дополнительные функции BIOS, доступные как из реального, так и защищенного режима работы процессора. Эти функции, предназначенные для работы с конфигурационным пространством и генерации специальных циклов PCI, приходится поддерживать потому, что циклы конфигурационных обращений, как и специальный цикл, выполняются специфическим образом (см. выше). Остальные функции взаимо¬действия с устройствами через их пространства памяти и ввода-вывода, а также обработка прерываний, в поддержке со стороны BIOS не нуждаются, поскольку выполняются непосредственно командами процессора. Функция проверки нали¬чия PCI BIOS позволяет определить доступные механизмы генерации этих осо¬бых циклов, и, зная их работу, программа в дальнейшем может и не пользоваться вызовами PCI BIOS.
Программы с помощью функций PCI BIOS могут искать интересующие их устрой¬ства по идентификаторам или кодам класса. Если стоит задача «переучета» установ¬ленных устройств, то она решается чтением конфигурационной информации по всем функциям всех устройств всех шин — это быстрее, чем перебирать все возмож¬ные сочетания идентификаторов или классов кодов. Для найденных устройств программы должны определять реальные настройки чтением регистров конфигу¬рационного пространства, учитывая возможность перемещения ресурсов по всему пространству и даже между пространствами памяти и ввода-вывода.
Функции PCI BIOS для 16-битного интерфейса реального режима, V86 и 16-бит¬ного защищенного режима, вызываются через прерывание I nt lAh. Номер функ¬ции задается при вызове в регистре АХ. Возможна и программная имитация пре¬рывания дальним вызовом по физическому адресу OOOFFE6EH (стандартная точка входа в обработчик I nt lAh) с предварительным занесением в стек регистра фла¬гов. Для 32-разрядных вызовов защищенного режима все эти же функции вызы¬ваются через точку входа, найденную через каталог 32-разрядных сервисов, при этом назначение входных и выходных регистров и флага CF сохраняется.

Hosted by uCoz