Поделиться через


Таблицы описания системы ACPI

Реализация спецификации оборудования расширенной конфигурации и интерфейса управления питанием (ACPI) не требуется на платформах на основе SoC, но большая часть спецификации программного обеспечения ACPI является (или может быть) обязательной. ACPI определяет универсальный расширяемый механизм передачи таблиц, а также определенные таблицы для описания платформы в операционной системе.

Структуры и заголовки таблиц, включая поля идентификаторов и контрольных сумм, определяются в спецификации ACPI 5.0. Windows использует этот механизм передачи таблиц в дополнение к определенным таблицам, описанным в этой статье.

Идея этих таблиц заключается в том, чтобы обеспечить универсальное программное обеспечение для поддержки стандартных блоков интеллектуальной собственности (IP), которые можно интегрировать в различные платформы различными способами. В табличной стратегии атрибуты переменной платформы определенной платформы предоставляются в таблице и используются универсальным программным обеспечением для адаптации к определенному набору ip-блоков, интегрированных в платформу. Таким образом, это программное обеспечение можно написать один раз, тщательно протестировать, а затем оптимизировать с течением времени.

Указатель описания корневой системы (RSDP)

Windows зависит от встроенного ПО UEFI для загрузки аппаратной платформы. Таким образом, Windows будет использовать системную таблицу EFI для поиска RSDP, как описано в разделе 5.2.5.2, "Поиск RSDP в системах с поддержкой UEFI" спецификации ACPI 5.0. Встроенное ПО платформы заполняет адрес RSDT или XSDT в RSDP. (Если указаны оба адреса таблицы, Windows предпочитает XSDT.)

Корневая таблица описания системы (RSDT)

RSDT (или XSDT) содержит указатели на любые другие таблицы описания системы, предоставляемые на платформе. В частности, эта таблица содержит указатели на следующие таблицы:

  • Таблица фиксированного оборудования ACPI (FADT)

  • Таблица контроллеров нескольких прерываний (MADT)

  • При необходимости— базовая таблица системных ресурсов (CSRT)

  • Таблица портов отладки 2 (DBG2)

  • Таблица ресурсов загрузочной графики (BGRT)

  • Таблица данных производительности встроенного ПО (FPDT)

  • Базовая таблица описания системы (DSDT)

  • При необходимости можно использовать дополнительные таблицы описания системы (SSDT)

Исправлена таблица описания ACPI (FADT)

Таблица фиксированного оборудования ACPI (FADT) содержит важную информацию о различных функциях фиксированного оборудования, доступных на платформе. Для поддержки аппаратных платформ ACPI ACPI 5.0 расширяет определение таблицы FADT следующим образом:

  • Поле Флаги в FADT (смещение 112) содержит два новых флага:

    HARDWARE_REDUCED_ACPI Битовое смещение 20. Указывает, что оборудование ACPI недоступно на этой платформе. Этот флаг необходимо установить, если модель фиксированного аппаратного программирования ACPI не реализована.

    LOW_POWER_S0_IDLE_CAPABLE Битовое смещение 21. Указывает, что платформа поддерживает маломощные состояния простоя в системном состоянии ACPI S0, которые являются более энергоэффективными, чем любое спящее состояние Sx. Если этот флаг установлен, Windows не будет пытаться переключиться в спящий режим и возобновить работу, но вместо этого будет использовать состояния простоя платформы и подключенный режим ожидания.

  • В поле Preferred_PM_Profile FADT (смещение байтов 45) есть новая запись роли "Планшет". Эта роль влияет на политику управления питанием для отображения и ввода, а также влияет на отображение экранных клавиатур.

  • В поле "Флаги загрузочной архитектуры IA-PC" (смещение 109) есть новый флаг "CMOS RTC Not Present" (битовое смещение 5), указывающий, что CMOS RTC компьютера либо не реализован, либо не существует на устаревших адресах. Если этот флаг установлен, платформа должна реализовать устройство ACPI Time and Alarm Control Method. Дополнительные сведения см. в разделе Управление временем метода и устройством сигнализации в статье Об устройствах, определенных ACPI .

  • Добавлены новые поля для поддержки традиционного спящего режима и возобновления работы пк на платформах ACPI с аппаратным сокращением. Эти поля игнорируются Windows, но должны присутствовать в таблице для соответствия требованиям.

  • Если установлен флаг HARDWARE_REDUCED_ACPI, операционная система игнорирует все поля, связанные со спецификацией оборудования ACPI.

Все остальные параметры FADT сохраняют значения предыдущей версии ACPI 4.0. Дополнительные сведения см. в разделе 5.2.9 , "Исправленная таблица описания ACPI (FADT)" спецификации ACPI 5.0.

Таблица описания нескольких APIC (MADT)

В реализациях ACPI для пк для описания модели системных прерываний используются таблица описания нескольких APIC (MADT) и дескрипторы контроллера прерываний для ПК. Для платформ SoC на основе Arm ACPI 5.0 добавляет дескрипторы для универсального контроллера прерывания Arm Holdings (GIC) и распространителя GIC. Windows включает поддержку папки "Входящие" для GIC и распространителя GIC. Дополнительные сведения об этих дескрипторов см. в разделах 5.2.12.14, "Структура GIC" и 5.2.12.15 "Структура распространителя GIC" спецификации ACPI 5.0.

Структуры дескрипторов контроллера прерываний перечислены сразу после поля Флаги в MADT. Для платформ Arm для каждого GIC указывается один дескриптор, за которым следует один для каждого распространителя GIC. GIC, соответствующий загрузочному процессору, должен быть первой записью в списке дескрипторов контроллера прерываний.

Универсальная таблица описания таймера (GTDT)

Как и в случае с контроллером прерываний, в ACPI есть стандартная таблица описания таймера. Для систем Arm, использующих таймер GIT, можно использовать GTDT ACPI для использования встроенной поддержки GIT в Windows.

Таблица основных системных ресурсов (CSRT)

Основные системные ресурсы (CSR) — это общие аппаратные функции, такие как контроллеры прерываний, таймеры и контроллеры DMA, к которым операционная система должна сериализовать доступ. Если существуют отраслевые стандарты для таких функций, как таймеры и контроллеры прерываний (как для архитектур x86, так и для Arm), Windows создает поддержку этих функций на основе стандартных таблиц, описанных в ACPI (например, MADT и GTDT). Однако до тех пор, пока отрасль не сходится со стандартами интерфейса контроллера DMA, необходимо поддерживать некоторые нестандартные устройства в операционной системе.

Windows поддерживает концепцию расширений HAL для решения этой проблемы. Расширения HAL — это модули SoC, реализованные в виде библиотек DLL, которые адаптируют WINDOWS HAL к определенному аппаратному интерфейсу определенного класса CSR, требуемого Windows. Чтобы определить и загрузить эти нестандартные модули CSR, корпорация Майкрософт определила новую таблицу ACPI. Эта таблица, которая имеет зарезервированную сигнатуру "CSRT" в спецификации ACPI, должна быть включена в RSDT, если на платформе используются нестандартные CCR.

CsRT описывает группы ресурсов CCR, где каждая группа ресурсов определяет оборудование определенного типа. Windows использует идентификатор, предоставленный группе ресурсов, для поиска и загрузки необходимого расширения HAL для этой группы. Группы ресурсов в CSRT также могут содержать отдельные дескрипторы ресурсов в зависимости от типа CSR и потребностей расширения HAL. Формат и использование этих дескрипторов ресурсов определяет модуль записи расширений HAL, который может сделать расширение более переносимым и тем самым поддерживать различные платформы SoC, просто изменяя дескрипторы ресурсов, содержащиеся в CSRT.

Для поддержки обслуживания расширений HAL и управления системными ресурсами, используемыми этими расширениями, каждая группа ресурсов, описанная в CSRT, также должна быть представлена в виде устройства в пространстве имен ACPI платформы. Дополнительные сведения см. в следующем разделе "Таблица дифференцированного описания системы (DSDT)". Идентификаторы устройств, используемые в заголовке группы ресурсов, должны совпадать с идентификаторами, используемыми в узле пространства имен устройства. Дополнительные сведения см . в разделе Идентификация устройств в ACPI статьи Объекты пространства имен управления устройствами . Наличие этих устройств с пространством имен группы ресурсов позволяет службе клиентский компонент Центра обновления Windows обслуживать расширение HAL.

Дополнительные сведения см. в спецификации core System Resources Table (CSRT).

Таблица портов отладки 2 (DBG2)

Корпорации Майкрософт требуется порт отладки во всех системах. Чтобы описать порты отладки, встроенные в платформу, корпорация Майкрософт определяет таблицу портов отладки 2 (DBG2) для ACPI. В этой таблице указан один или несколько независимых портов для целей отладки. Наличие таблицы DBG2 указывает на то, что платформа включает по крайней мере один отладочный порт. Эта таблица содержит сведения об удостоверениях и конфигурации портов отладки. Таблица находится в системной памяти вместе с другими таблицами ACPI и должна быть указана в таблице ACPI RSDT.

Windows использует значение Тип порта в таблице DBG2, чтобы определить и загрузить транспорт отладчика ядра (например, USB или последовательный), необходимый системе. Затем транспорт KD использует значение подтипа порта в таблице DBG2 для идентификации аппаратного интерфейса, используемого портом. Другие сведения в таблице DBG2 указывают системный адрес регистров портов, который используется аппаратным модулем интерфейса для указанного подтипа. Наконец, таблица DBG2 должна содержать ссылку на узел устройства в пространстве имен ACPI, соответствующий порту отладки. Эта ссылка позволяет Windows управлять конфликтами между использованием отладки и обычным использованием устройства, если таковые есть, а также интегрировать отладчик с переходами питания.

Дополнительные сведения см. в спецификации Microsoft Debug Port Table 2 (DBG2).

Таблица дифференцированного описания системы (DSDT)

В ACPI периферийные устройства и функции системного оборудования на платформе описаны в таблице дифференцированного описания системы (DSDT), которая загружается при загрузке, или в дополнительных таблицах описания системы (SSDT), которые загружаются при загрузке или загружаются динамически во время выполнения. Для soC конфигурация платформы обычно является статической, поэтому DSDT может быть достаточной, хотя SSDT также можно использовать для улучшения модульности описания платформы.

ACPI определяет интерпретируемый язык (исходный язык ACPI или ASL) и среду выполнения (виртуальную машину ACPI) для описания системных устройств и функций, а также их элементов управления для конкретной платформы, не зависящей от ОС. ASL используется для определения именованных объектов в пространстве имен ACPI, а компилятор Microsoft ASL используется для создания байтового кода языка AML для передачи в операционную систему в DSDT. Драйвер ACPI windows для папки "Входящие", Acpi.sys, реализует виртуальную машину ACPI и интерпретирует байтовый код AML. Объект AML может просто возвращать сведения об описании. Или объект AML может быть методом, который выполняет вычисления или выполняет операции ввода-вывода. Метод управления — это исполняемый объект AML, который использует драйверы устройств операционной системы для выполнения операций ввода-вывода на оборудовании платформы. ASL использует OpRegions для абстрагирования различных адресных пространств, доступных в операционной системе. Методы управления выполняют операции ввода-вывода в виде последовательности передачи именованных полей, объявленных в OpRegions, и обратно.

Дополнительные сведения об OpRegions см. в разделе 5.5.2.4 "Доступ к регионам операций" в спецификации ACPI 5.0. Дополнительные сведения о ASL и методах управления см. в разделе 5.5 "Пространство имен ACPI" в спецификации ACPI 5.0.

Windows поддерживает разработку и отладку кода ASL. Компилятор ASL включает дизассемблер, позволяющий реализовать загрузку пространства имен из целевого объекта отладки. Затем компилятор ASL можно использовать для повторного применения пространства имен к целевому объекту для быстрого создания прототипов и тестирования без необходимости запуска встроенного ПО системы. Кроме того, отладчик ядра Windows в сочетании с проверенной версией драйвера Acpi.sys поддерживает трассировку и анализ выполнения AML. Дополнительные сведения см. в разделе Отладчик AMLI.

Таблица по устранению рисков безопасности Windows (WSMT)

Требования: спецификация таблиц Windows SMM Security Mitigations Table (WSMT) содержит сведения о таблице ACPI, которая была создана для использования с операционными системами Windows, поддерживающими функции безопасности на основе виртуализации Windows (VBS).

Эти сведения относятся к следующим операционным системам:

Windows Server 2016

Windows 10, версия 1607

Дополнительные сведения см. в спецификации Таблицы по устранению рисков безопасности WINDOWS (WSMT) (скачивание DOCX).

Таблица встроенного ПО загрузки iSCSI (iBFT)

Таблица iBF (iBFT) — это блок сведений, содержащий различные параметры, полезные для процесса загрузки iSCSI. IBFT — это механизм, с помощью которого значения параметров iBF передаются операционной системе. IBF создает и заполняет iBFT. IBFT доступен операционной системе Windows для обеспечения согласованного потока процесса загрузки.

Дополнительные сведения см. в спецификации таблицы встроенного ПО для загрузки iSCSI (iBFT) (скачивание DOCX).