Распределение ресурсов по технологии Plug-and-Play BIOS

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

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

Всегда ли PnP выделяет ресурсы (т. Е. Назначает адреса ввода-вывода или памяти и irqs) устройствам, встроенным / интегрированным в материнскую плату?

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

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

Мой вопрос:

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

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

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

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

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

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

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

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

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

    * По сути, вышеприведенное утверждение говорит, что устройства, "встроенные / интегрированные" в системную плату на любой статической шине (например, PCI, ISA или EISA).)"Должны" быть сконфигурированы BIOS, потому что 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) в системе, чтобы они были доступны для использования ОС и прикладными программами "?

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

Взгляните на главу 12 "Драйверы устройств Linux" 3-е изд., Автор во многих местах явно ссылается на то, что адреса ввода-вывода или памяти и назначения IRQ будут уже выполнены BIOS ом, когда ядро ​​Linux начнет выполняться, и ядро ​​Linux может адаптировать назначение в соответствии со своими потребностями.

Возможно, это еще одна ссылка, в которой упоминается, чего мы пытаемся достичь.

2 ответа

Решение

Опция "PnP OS" относится только к устройствам ISA PnP, которых в наши дни практически не существует. Вот почему вы больше не видите вариант. Это в основном не волнует материнские платы без слотов ISA. Может по-прежнему иметь какое-то значение, если вы можете установить для базовых адресов последовательного порта значение "Авто".

BIOS всегда должен конфигурировать шины PCI BAR и сопоставления INTx-IRQ. Это следует делать независимо от параметра ОС PnP. Это включает в себя как встроенные устройства PCI (например, встроенный Ethernet), так и слоты PCI/PCIe. Я никогда не видел (работающий) BIOS, где вы могли бы загружаться в DOS и иметь ненастроенные BAR.

Когда BIOS устанавливает пространство конфигурации PCI, он будет учитывать информацию ISA PnP. Например, если он знает, что устройство ISA PnP использует IRQ 9, процедуры инициализации PCI должны быть достаточно умными, чтобы не отображать IRQ 9 на какие-либо линии PCI INTx.

Также имейте в виду, что когда ваша операционная система загружается, она может свободно перезаписывать BAR и сопоставления IRQ. Windows обычно повторно отображает IRQ, когда активирует APIC и ACPI. BAR обычно не изменяются, хотя могут быть особые случаи, такие как событие PCIe Hotplug, которое требует, чтобы ОС заполнила BAR.

Опция "PnP OS" относится только к устройствам ISA PnP, которых в наши дни практически не существует. - ЛОЖНЫЙ! Эта опция оказывает большое влияние на распределение прерываний в ОС Windows! Сам эксперимент опровергнуть вышеупомянутое утверждение очень прост!

Другие вопросы по тегам