Распределение ресурсов карты расширения PCI с помощью Plug-and-Play BIOS

2004
jacks

В спецификации BIOS Plug-and-Play говорится, что если у вас PnP BIOS, он может настроить аппаратное обеспечение.

Это означает, что ваш BIOS считывает требования к ресурсам всех устройств и настраивает их ( выделяет им ресурсы шины ).

Имеет ли PnP всегда распределять ресурсы (т.е. назначает ввод / вывод или адрес памяти и IRQ) для устройств встроенного / интегрированных на материнской плате?

Будет ли PnP BIOS (то есть присутствует структура $ PnP), всегда назначать ресурсы (адреса ввода-вывода и адреса памяти) всем устройствам, присутствующим в mobo (т.е. встроенным / интегрированным в mobo), а также на платах расширения PCI.

Хотя BIOS может не знать, как «настроить» не встроенные устройства (то есть устройства, не встроенные в mobo), и будет настраивать только устройства, встроенные / интегрированные в самом mobo, он «должен» назначать адреса (ввод / вывод и память в PCI BAR) и irq, чтобы избежать конфликтов в случае использования не PnP-ОС, такой как DOS.

Мой вопрос:

Должен ли PnP BIOS назначать входы / выходы, адреса памяти и irq устройствам карты расширения PCI во время POST, т.е. перед загрузкой и передачей управления загрузчику ОС? Это правда для всех PnP BIOS?

Предположим, что для параметра [Plug-and-Play OS] задано значение No., т. Е. Мы сказали BIOS, что у нас не ОС PnP, а ОС, отличная от PnP, такая как DOS.

Некоторые BIOS не имеют этой опции. Всегда ли они распределяют ресурсы по всем устройствам (т.е. как встроенным, так и расположенным в слотах расширения)?

Обновление 2012-08-01:

Раздел 2.1, озаглавленный «Требования POST к BIOS системы» спецификации BIOS PnP v1a, гласит:

(Я упомянул только 3 пункта, которые имеют отношение к этому сообщению. Помеченная (*) информация - это моя интерпретация утверждений стандарта.)

Для достижения целей Plug and Play системный BIOS POST отвечает за выполнение требований, перечисленных ниже:

  1. Конфигурация всех «статических» устройств, известных системному BIOS:

    Как минимум, это включает устройства системной платы . Он также может включать в себя «карты ISA Plug and Play» и устройства, расположенные на EISA, ISA, PCI или любой другой доступной архитектуре статической шины.

    * В действительности, приведенное выше утверждение говорит, устройство «встроенный / интегрированный» на системной плате на любом статическом шине (например, PCI, ISA или EISA).) «Должна» быть сконфигурировано BIOS, becoz * BIOS знает о ' все устройства, встроенные в mobo, как часть разработки. * Системный программист BIOS должен был включать в себя положения по настройке устройств, встроенных в mobo, как часть разработки системы.

    Включает ли это также «карты, установленные в слоты для карт PCI / ISA / EISA»? Это где я точно запутался.

  2. BIOS POST Resource арбитраж: BIOS системы теперь должен знать об использовании системных ресурсов. Используя информацию, предоставляемую через сервисы времени выполнения (описанные в следующем разделе), наряду с информацией о ресурсах, известной BIOS системы, можно избежать критических конфликтов ресурсов. «Загрузка операционной системы с отключенным конфликтующим устройством лучше, чем конфликт ресурсов и возможный сбой системы».

    * Это похоже на устройства ISA / EISA, встроенные / интегрированные в слоты карт расширения ISA / EISA. Поскольку ресурсы устройств PCI не могут конфликтовать с точки зрения распределения адресов ввода-вывода (или памяти) (поскольку адреса не привязаны к устройствам PCI и, следовательно, находятся в «руках» BIOS для выделения не конфликтующих адресов). и распределение irq (потому что прерывания PCI могут использоваться совместно), так что это означает, что «все» устройства PCI (встроенные или не встроенные) будут инициализированы / распределены в памяти или адресах ввода / вывода и назначениях irq.

  3. Поддержка операционных систем Plug and Play и Non-Plug-Play: BIOS POST системы «Plug and Play » должен « настраивать» систему для работы как с поддержкой «Plug and Play», так и с операциями «не Plug and Play» system. * В средах без Plug and Play « системный BIOS » или « соответствующее системное программное обеспечение (драйверы устройств)» должны «конфигурировать» все «устройства» (ISA-карты Plug and Play, устройства PCI и т. д.). Это позволит всем средам «загружаться точно так же, как на стандартных ПК-совместимых системах». Однако в среде Plug and Play BIOS системы теперь может помочь операционной системе выполнять такие функции, как конфигурирование устройств системной платы во время выполнения и распознавание событий, когда устройства системной платы изменились.

** Все эти 3 утверждения из спецификации, похоже, указывают на то, что если должна загружаться не PnP-ОС (например, DOS), то системный BIOS «должен» настроить (или, по крайней мере, выделить адреса и irqs) «все Устройства PCI, встроенные / встроенные в материнскую плату (mobo) или нет. Для устройств ISA и EISA BIOS «не должен» включать / выделять ресурсы для этих устройств ISA / EISA (как встроенных, так и не встроенных), что приведет к конфликту назначений ресурсов. *

Прав ли я, заключив, что: «Если BIOS должен загружать ОС, не поддерживающую PnP, он должен включать (то есть включать, то есть выделять ресурсы) каждое устройство PCI (встроенное в mobo или в слот для карты расширения PCI) в системе. чтобы они были доступны для использования ОС и прикладными программами?

По крайней мере, так должно быть, если для параметра [Plug-and-Play OS] установлено значение NO . то есть мы сказали BIOS, что у нас не ОС PnP, а ОС, отличная от PnP, такая как DOS .

3

1 ответ на вопрос

1
David Schwartz

If you set PnP OS to no in the BIOS, it will assign resources to all devices. If you set PnP OS to yes in the BIOS, it will only assign resources to those devices that might be needed to boot the OS or that the OS might need to access before its PnP engine is operational.

Вы хотите сказать, что если в настройке BIOS для ОС PnP установлено значение «Нет», всем устройствам (независимо от того, встроены ли они в карты расширения mobo или pci) будут назначены соответствующие адреса ввода-вывода или памяти, когда POST завершается и управление передается в загрузчик ОС? * Гарантировано ли это * в ПК с BIOS, совместимым с PnP - т.е. присутствует подпись $ PnP. Если это так, то это означает, что я могу получить доступ к любому устройству PCI (встроенному или не встроенному в mobo), скажем, в DOS, выполнив поиск по его * bus / device / function * и считав его BAR, чтобы получить его I Адрес / O (или память в случае MMIO) и выдача ему инструкций ввода / вывода. Не так ли? jacks 12 лет назад 0
Да, все устройства. Нет, это не гарантируется, поскольку BIOS не требуется для настройки сложных устройств. Как правило, вы можете получить доступ к любому устройству PnP PCI из DOS, если BIOS поддерживает его настройку. Обратите внимание, что BIOS может сделать ужасную работу. David Schwartz 12 лет назад 0
На самом деле, с моей точки зрения, * настройка * отличается от * распределения ресурсов *. Под «распределением ресурсов» я имею в виду * назначение адресов ввода-вывода или памяти и irqs *. BIOS может не знать, как «настраивать» определенное устройство PCI, но, конечно, он может назначать адреса ввода-вывода или памяти и IRQ для этого устройства PCI без его * настройки. Мне кажется, что «распределение ресурсов» (оставьте часть настройки) для * всех * устройств (встроенных в mobo + на картах расширения PCI) должно быть гарантировано на ПК с PnP BIOS. Не так ли? jacks 12 лет назад 0
Я не верю, что это формально гарантировано. Вы можете обнаружить, что таким устройствам, как звуковые карты, не были назначены адреса. С одной стороны, некоторые ресурсы на некоторых устройствах не используются вообще, и BIOS может счесть невозможным (или очень неоптимальным) сопоставление всех ресурсов. Вы только формально гарантируете, что устройства, которые BIOS умеет загружать, и будут выделены простые клавиатурные и VGA-совместимые видеоустройства. (И несколько других вещей, таких как достаточно звукового оборудования, чтобы подать звуковой сигнал.) David Schwartz 12 лет назад 0
Даже если PnP BIOS не требуется для * выделения ресурсов * для * всех * устройств, присутствующих в системе, тогда какова цель PnP BIOS? Если его единственной целью является обеспечение поддержки загрузки, то это делается даже в BIOS, который * не поддерживает PnP * =, например, если я установлю опцию [PnP OS] на * YES *, то система также будет нормально загружаться как клавиатура и VGA-совместимые видеоустройства будут также инициализированы, иначе мы не сможем просматривать меню настройки BIOS или логотип чипсета при запуске. jacks 12 лет назад 0
Если BIOS не поддерживает PnP, он не сможет загружаться с устройств, которым для конфигурации требуется PnP. Установка «Да» для ОС PnP приводит к тому, что некоторым дополнительным устройствам выделяются ресурсы, но не всем. В частности, устройствам, которые в любом случае могут использоваться только с драйвером, нет необходимости выделять ресурсы, потому что драйвер может это сделать. David Schwartz 12 лет назад 0
Предположим, я разработал устройство PCI и установил его в слот расширения PCI на ПК. Конечно, мне нужно написать драйвер устройства для использования моего устройства. Теперь, чтобы использовать мое устройство из ОС, отличной от PnP, скажем, DOS, это означает, что мне самому нужно выделять адрес ввода-вывода или памяти для моего устройства pci, считывая его BAR. До этого момента все в порядке. Но * как я могу убедиться, что выполненные мной операции ввода-вывода или памяти и irq assignmnets не конфликтуют ни с каким другим устройством, уже имеющимся на этом ПК. * Видите, задача ... jacks 12 лет назад 0
@jacks: вам нужно проверить, и вам может понадобиться удалить другие ресурсы, если есть неразрешимый конфликт. Вот почему вы действительно хотите, чтобы ОС PnP работала с устройствами PnP. Это не тривиальная проблема, и BIOS не может сделать все сам по себе, потому что он не знает, какие устройства и функции устройства должны будут использовать система. David Schwartz 12 лет назад 0
... драйвера устройства - это управление связанным с ним устройством, а не управление распределением ресурсов для всех устройств, присутствующих в системе. Если бы у меня был PnP BIOS, я мог бы облегчить задачу распределения ресурсов в BIOS, и мне просто нужно написать драйвер для доступа к моему устройству с помощью инструкций ввода / вывода. Таким образом, мне кажется, что PnP BIOS необходим для * выделения ресурсов * (не для настройки - это будет другое, что будет принято драйвером устройства для конкретной ОС). Разве PnP не означает автоматическое бесконфликтное распределение ресурсов? jacks 12 лет назад 0
давайте [продолжим это обсуждение в чате] (http://chat.stackexchange.com/rooms/4293/discussion-between-david-schwartz-and-jacks) David Schwartz 12 лет назад 0