Другие объекты пространства имен ACPI

Для некоторых определенных классов устройства существуют требования к дополнительным объектам пространства имен Advanced Configuration и Power Interface (ACPI), которые будут отображаться под этими устройствами в пространстве имен. В этом разделе перечислены дополнительные объекты, необходимые для платформ на основе SoC.

Объекты идентификации процессора

Процессоры должны быть перечислены в пространстве имен ACPI. Процессоры объявляются в разделе \_SB с помощью инструкции Device, как и для других устройств на платформе. Устройства процессора должны содержать следующие объекты:

  • _HID: ACPI0007
  • _UID: уникальное число, соответствующее записи процессора в MADT.

Объекты, специфичные для дисплея

Дополнительные сведения о объектах, относящихся к отображению, см. в приложении B, разделе "Расширения видео", спецификации ACPI 5.0.

Требования к объектам Display-Specific

Метод Описание Требование
_ДОС Включение и отключение переключения выходных данных. Требуется, если система поддерживает переключение дисплея или уровни яркости LCD.
_DOD Перечисление всех устройств, подключенных к адаптеру отображения. Требуется, если интегрированный контроллер поддерживает переключение выходных данных.
_ПЗУ Получение данных РОМ. Требуется, если образ РОМ хранится в закрытом формате.
_GPD Получить устройство POST. Требуется, если _VPO реализован.
_SPD Установка устройства POST. Требуется, если _VPO реализован.
_VPO Параметры видео POST. Требуется, если система поддерживает изменение устройства после VGA.
_ADR Верните уникальный идентификатор этого устройства. Обязательное.
_BCL Запрос списка поддерживаемых уровней управления яркостью. Требуется, если внедренный LCD-дисплей поддерживает управление яркостью.
_BCM Задайте уровень яркости. Требуется, если _BCL реализован.
_DDC Верните EDID для этого устройства. Требуется, если внедренный LCD-дисплей не поддерживает возврат EDID через стандартный интерфейс.
_DCS Возвращает состояние выходного устройства. Требуется, если система поддерживает переключение отображения (с помощью горячего ключа).
_DGS Запрос состояния графики. Требуется, если система поддерживает переключение отображения (с помощью горячего ключа).
_DSS Набор состояний устройства. Требуется, если система поддерживает переключение отображения (с помощью горячего ключа).

Контроллеры и устройства USB-узла

Контроллеры USB-узла используются на платформах SoC для подключения внутренних и внешних устройств. Windows включает драйверы папки "Входящие" для стандартных контроллеров USB-узлов, которые соответствуют спецификациям EHCI или XHCI.

На платформах на основе SoC контроллер USB-узла можно перечислить с помощью ACPI. Windows использует следующие объекты пространства имен ACPI при перечислении и настройке совместимого USB-оборудования:

  • Идентификатор оборудования, совместимый с ACPI и назначаемый поставщиком (_HID).

  • Объект Unique ID (_UID) при наличии нескольких экземпляров USB-контроллера в пространстве имен (т. е. двух или нескольких узлов с идентичными объектами идентификации устройств).

  • Совместимый идентификатор (_CID) для USB хост-контроллера, совместимого со стандартом EHCI или XHCI (EHCI: PNP0D20), (XHCI: PNP0D10).

  • Текущие параметры ресурса (_CRS), назначенные USB-контроллеру. Ресурсы контроллера описаны в соответствующей спецификации аппаратного интерфейса (EHCI или XHCI).

Метод USB Device-Specific (_DSM)

Windows определяет метод Device-Specific (_DSM) для поддержки конфигурации подсистемы USB для конкретного класса устройства. Дополнительные сведения см. в статье о методе USB-Device-Specific.

Поддержка транслятора интегрированных транзакций USB (TT) (_HRV)

Стандартные контроллеры узлов EHCI поддерживают только высокоскоростные USB-устройства. На платформах SoC Windows поддерживает две распространенные конструкции контроллеров узлов, совместимых с EHCI, которые реализуют интегрированный переводчик транзакций для низкоскоростных и полноскоростных USB-устройств. Объект "Версия оборудования" (_HRV) указывает тип встроенной поддержки TT для драйвера контроллера USB-узла.

_HRV устанавливается в соответствии со следующими критериями:

  • NoIntegratedTT - _HRV = 0

    Стандартные контроллеры узлов EHCI не реализуют интегрированные переводчики транзакций, а значение _HRV 0 допустимо только для этих контроллеров. Не обязательно включать объект _HRV для этих контроллеров.

  • IntegratedTTSpeedInPortSc - _HRV = 1

    Включите встроенную TT-поддержку. Этот тип интерфейса включает биты LowSpeed и HiSpeed в регистре PORTSC. Эти биты находятся в битовых смещениях 26 и 27 соответственно. При определении скорости драйвер EHCI считывает ПОРТC и извлекает сведения о скорости из этих битов.

  • IntegratedTTSpeedInHostPc - _HRV = 2

    Включите встроенную TT-поддержку. Этот вариант интерфейса включает биты LowSpeed и HiSpeed в отдельном регистре HOSTPC. Когда драйвер EHCI должен определить скорость порта, он считывает регистр HOSTPC, соответствующий порту интереса, и извлекает сведения о скорости.

Поддержка режима D3cold для USB XHCI

Помимо выборочной приостановки, внутренние USB-устройства, подключенные к контроллерам XHCI, могут быть помещены в состояние D3cold и отключены, когда они не используются. Дополнительные сведения см. в разделе "Управление питанием устройств". Все драйверы функций USB-устройства должны принять участие в D3cold.

Объекты usb-порта

Windows должна знать видимость и возможность подключения USB-портов в системе. Это необходимо для предоставления пользователю точных сведений о портах и устройствах. Для этого используются два объекта: расположение физического устройства (_PLD) и возможности USB-порта (_UPC). Дополнительные сведения см. в следующих статьях:

Контроллеры SD-хоста и устройства

Хост-контроллеры SD используются на платформах SoC для доступа к хранилищу, а также устройствам ввода/вывода. Windows включает встроенный драйвер для оборудования хост-контроллера по стандарту SDA. Для совместимости с этим драйвером устройство контроллера узла SD должно соответствовать спецификации контроллера узла SD ассоциации SD.

На платформах SoC контроллер узла SD можно перечислить с помощью ACPI. Windows использует следующие объекты пространства имен ACPI при перечислении и настройке совместимого оборудования SD:

  • Идентификатор оборудования, совместимый с ACPI и назначаемый поставщиком (_HID).

  • Объект Unique ID (_UID) при наличии нескольких экземпляров контроллера SD в пространстве имен (т. е. двух или нескольких узлов с идентичными объектами идентификации устройств).

  • Совместимый идентификатор (_CID) для контроллера узла SD, совместимого со стандартом SDA (PNP0D40).

  • Текущие параметры ресурса (_CRS), назначенные контроллеру. Ресурсы контроллера описаны следующим образом:

    • Аппаратные ресурсы для всех реализованных слотов включены. Слот — это точка подключения на шине SDIO для устройства памяти или ввода-вывода. Каждый слот связан со стандартным набором регистров и прерыванием в контроллере узла SD, который используется для связи с подключенным устройством. Контроллеры узлов SD могут реализовать любое количество слотов, но на платформах SoC обычно существует только один.

    • Ресурсы слотов перечислены вместе, в порядке номера слота (ресурсы слота 0 являются первыми, ресурсы слота 1 являются вторыми и т. д.).

    • Для каждого слота ресурсы перечислены в следующем порядке:

      • Базовый адрес стандартного регистра SD для слота.

      • Стандартное прерывание для SD-слота.

      • Ресурс прерывания GPIO для слота, обеспечивающий уведомление о вставке и удалении карт (если стандартный интерфейс обнаружения SD-карты не поддерживается во всех режимах энергопотребления).

      • Входной ресурс GPIO для слота для чтения, находится ли карточка в слоте (если стандартный интерфейс обнаружения SD-карты не поддерживается во всех состояниях питания). Использует тот же пин-код, что и прерывание вставки или удаления.

      • Второй входной ресурс GPIO для проверки, защищена ли от записи карта в слоте (если стандартный интерфейс SD защита от записи не поддерживается во всех состояниях питания).

Прерывания должны поддерживать функцию пробуждения (описаны как SharedAndWake или ExclusiveAndWake).

Внедренные устройства SD

Устройства, подключенные к SD, перечисляются драйвером шины SD. Устройства SD, интегрированные в платформу, также должны быть перечислены в пространстве имен ACPI в качестве дочерних элементов контроллера узла SD. Это требование позволяет операционной системе связывать устройства, перечисляемые на шине, с платформенно-специфичными атрибутами, предоставляемыми для устройства объектами ACPI (например, несъемность, состояния питания устройства, потребляемые ресурсы GPIO или SPB и т. д.). Чтобы сделать эту связь, пространство имен устройства требует объекта Address (_ADR), который передает адрес устройства на шине SDIO. Объект _ADR возвращает целое число.

Для шины SDIO значение этого целого числа определяется следующим образом:

  • Старшее слово — номер слота (0 – первый слот)

  • Низкое слово — номер функции (см. спецификацию SD для определений.)

Встроенное пространство имен устройства SD также должно включать:

  • Объект Remove (_RMV), возвращающий значение 0 (чтобы указать, что устройство невозможно удалить).

  • Объект _CRS для ресурсов боковой полосы, необходимых устройству (например, пин-коды GPIO или подключения SPB), если это требуется.

Устройства класса изображений (камеры)

Устройства камеры могут перечисляться графическим драйвером или USB. В любом случае Windows должна знать физическое расположение камеры, чтобы можно было показать соответствующий пользовательский интерфейс. Для этого устройства камеры, встроенные в корпус системы и имеющие механически фиксированное направление, включаются в пространство имен ACPI и предоставляют объект "Расположение физического устройства" (_PLD). Для этого требуется:

  • Устройство камеры, отображаемое как дочернее (вложенное устройство) перечислителя (устройство GPU или USB-устройство).

  • Устройство камеры, предназначенное для предоставления объекта Address (_ADR), содержащего адрес камеры на шине устройства-родителя.

    • Сведения о USB см. в иерархии пространства имен ACPI и _ADR для внедренных USB-устройств в следующем разделе ниже.

    • Для графики это идентификатор, указанный в методе _DOD, предоставленном на устройстве GPU. Дополнительные сведения см. в приложении B, "Расширения видео", спецификации ACPI 5.0.

  • Устройство камеры для предоставления объекта _PLD.

  • Если драйверу камеры требуются дополнительные ресурсы, такие как прерывания GPIO, подключения ввода-вывода или подключения SPB, для этих ресурсов предоставляется объект _CRS.

В объекте _PLD поле "Панель " (биты 67–69), поле Lid (бит 66) и поле dock (бит 65) задаются для правильного значения поверхности, на которой подключена камера. Все остальные поля являются необязательными. Для портативных мобильных устройств, включая планшеты, на передней панели расположен экран дисплея, и его начало координат находится в левом нижнем углу, когда экран виден в книжной ориентации. Используя это определение, "Front" указывает, что камера направлена на пользователя (веб-камера), а "Back" указывает, что камера направлена от пользователя (фотокамера или видеокамера). Дополнительные сведения см. в разделе 6.1.8, "_PLD (физическое расположение устройства)" в спецификации ACPI 5.0.

Иерархия пространства имен ACPI и _ADR для внедренных USB-устройств

При добавлении внедренных USB-устройств в пространство имен ACPI иерархия узлов устройств должна точно совпадать с иерархией устройств, перечисленных USB-драйвером Windows. Это можно определить, проверив диспетчер устройств Windows в режиме "Просмотр по подключению". Вся иерархия, начиная с контроллера USB-узла и расширяющаяся до внедренного устройства, должна быть включена. Свойство Address, предоставленное в диспетчере устройств для каждого устройства, — это адрес, который встроенное ПО должно сообщать в _ADR устройства.

Спецификация ACPI 5.0 определяет адреса для USB-устройств следующим образом:

USB Root Hub: только дочерний элемент контроллера узла. Он должен иметь _ADR, равный 0. Никакие другие дочерние или значения _ADR не допускаются.

USB-порты: номер порта (1-n)

USB-устройства, подключенные к конкретному порту, используют адрес этого порта.

Если устройство, подключенное к порту, является составным USB-устройством, функции в составном устройстве должны использовать следующий адрес:

Функция USB в составном USB-устройстве: номер порта, к которому подключено составное устройство, ПЛЮС первый номер интерфейса функции. (Арифметическое дополнение).

Дополнительные сведения см. в разделе "Определение расположения внутренних камер".

Примеры кода ASL

В следующем примере кода ASL описывается USB-веб-камера, подключенная непосредственно к USB-порту 3.

Device (EHCI) {
    ...  // Objects required for EHCI devices
    Device {RHUB) {         // the Root HUB
     Name (_ADR, ZERO)      // Address is always 0.
     Device (CAM0) {          // Camera connected directly to USB
                       //   port number 3 under the Root.
            Name (_ADR, 3)      // Address is the same as the port.
            Method (_PLD, 0, Serialized) {...}
            }  //  End of Camera device
    } // End of Root Hub Device
}  // End of EHCI device

В следующем примере кода ASL описывается составное USB-устройство, реализующее веб-камеру как функцию 2.

Device (EHCI) {
    ...  // Objects required for EHCI devices
    Device {RHUB) {
     Name (_ADR, ZERO)
     Device (CUSB) {        // Composite USB device
                    //   connected to USB port number 3
                    //   under the Root.
            Name (_ADR, 3)      // Address is the same as the port.
            Device (CAM0) { // Camera function within the
                    //   Composite USB device.
                Name (_ADR, 5)  // Camera function has a first
                    //   Interface number of 2, so
                    //   Address is 3 + 2  = 5.
                Method (_PLD, 0, Serialized) {...}
            }  //  End of Camera device
        } // End of Composite USB Device
    } // End of Root Hub Device
}  // End of EHCI device

В следующем примере кода ASL описывается веб-камера, подключенная через I2C.

Device (GPU0) {
    ... // Other objects required for graphics devices
    Name (_DOD, Package ()  // Identifies the children of this graphics device.
                // Each integer must be unique within the GPU0 namespace.
                {
                    0x00024321,  // The ID for CAM0. It is a non-VGA
                    //   device, cannot be detected by
                    //   the VGA BIOS, and uses a vendor-
                    //   specific ID format in bits 15:0
                    //   (see the _DOD specification).
                    ...     // Other child device IDs (for
                    //   example, display output ports)
                })
    Device (CAM0) {
        Name (_ADR, 0x00024321) // The identifier for this device
                    //   (Same as in _DOD above)
        Name (_CRS, ResourceTemplate()
            {
            // I2C Resource
            // GPIO interrupt resource(s), if required by
            //   driver
            // GPIO I/O resource(s), if required by driver
                ...
            })
        Method (_PLD, 0, Serialized) {...}
    } // End of CAM0 device
} // End of GPU0 device

Устройства HID-over-I2C

Windows включает драйвер класса для устройств с человеческим интерфейсом (HID). Этот драйвер обеспечивает универсальную поддержку широкого спектра устройств ввода (таких как сенсорные панели, клавиатуры, мыши и датчики). На платформах SoC устройства HID могут быть подключены к платформе через I2C и перечисляются ACPI. Для совместимости с поддержкой класса HID в Windows используются следующие объекты пространства имен:

  • _HID для конкретного поставщика

  • Идентификатор _CID из PNP0C50

  • _CRS со следующими параметрами:

    • Ресурс I2CSerialBusConnection для доступа к устройству

    • Ресурс GpioInt для прерываний

  • Метод HIDI2C _DSM для возврата адреса регистрации дескриптора HID на устройстве. Для получения дополнительной информации см. HIDI2C Device-Specific метод (_DSM).

Кнопочные устройства

Для платформ SoC Windows поддерживает как определяемый ACPI метод управления Power Button, так и массив пять кнопок, совместимый с Windows. Кнопка питания, реализованная как метод управления ACPI или в составе массива кнопок, совместимого с Windows, выполняет следующие действия:

  • Заставляет платформу включиться, если она выключена.

  • Создает событие переопределения кнопки питания при удерживании. Дополнительные сведения см. в разделе 4.8.2.2.1.3, "Переопределение кнопки питания" спецификации ACPI 5.0.

Кнопка питания метода управления

Конструкции Clamshell и другие системы с встроенными и подключенными клавиатурами реализуют определяемый ACPI метод управления Кнопкой питания (раздел 4.8.2.2.1.2 спецификации ACPI 5.0) с использованием ACPI-событий GPIO-Signaled (раздел 5.6.5 спецификации ACPI 5.0). Для поддержки устройства кнопки питания используется пространство имен:

  • Описывает пин-код прерывания GPIO кнопки питания как ресурс прерывания GPIO без общего доступа (монопольного) GPIO.

  • Выводит ресурс прерывания GPIO кнопки питания в объекте _AEI контроллера GPIO, к которому он подключен.

  • Предоставляет связанный метод событий (Lxx/Exx/EVT) на устройстве контроллера GPIO. Этот метод события уведомляет драйвер кнопки управления в операционной системе о том, что произошло событие кнопки.

Дополнительные сведения см. в разделе "Аппаратные кнопки" для планшетов Windows 8 и преобразуемых устройств.

Массив кнопок, совместимый с Windows

Для платформ с сенсорным вводом (без клавиатуры), таких как slates, Windows предоставляет универсальный драйвер для массива пяти кнопок. Каждая кнопка в массиве имеет определенную функцию (см. нумерованные элементы в приведенном ниже списке), а некоторые сочетания кнопки "удержание и нажатие" имеют дополнительное значение в пользовательском интерфейсе. Не определены сочетания кнопок, требующие зажатия кнопки питания. Для совместимости с драйвером кнопок, входящим в состав Windows, реализуется устройство ACPI массива кнопок, совместимое с Windows. Устройство определяется следующим образом:

  • Каждая из пяти кнопок подключена к собственной выделенной закреплению прерываний на платформе.

  • Каждый пин-код прерывания настраивается как не общий (монопольный), ресурс прерывания с триггером edge (Edge), который прерывается на обоих краях (ActiveBoth).

  • Пространство имен устройства содержит значение _HID, определяемое поставщиком, а также _CID PNP0C40.

  • Ресурсы прерывания GPIO в объекте _CRS перечислены в следующем порядке:

    1. Прерывание, соответствующее кнопке "Power"

      Кнопка "Power" должна иметь возможность пробуждения (ExclusiveAndWake).

    2. Прерывание, соответствующее кнопке "Windows"

      Кнопка Windows должна иметь возможность пробуждения (ExclusiveAndWake).

    3. Прерывание, соответствующее кнопке "Увеличение тома"

      Кнопка "Громкость вверх" не должна иметь возможность пробуждения (должна использоваться исключительно).

    4. Прерывание, связанное с кнопкой "Уменьшение громкости"

      Кнопка "Уменьшение громкости" не должна иметь функцию активации устройства (режим должен быть эксклюзивным).

    5. Прерывание, соответствующее кнопке "Блокировка поворота", если поддерживается

      Кнопка "Блокировка поворота" не должна использоваться для пробуждения (должна использоваться в режиме Exclusive).

Дополнительные сведения см. в разделе "Аппаратные кнопки" для планшетов Windows 8 и преобразуемых устройств.

Для поддержки эволюции пользовательского интерфейса кнопки Windows Windows определяет метод Device-Specific (_DSM) для устройства массива кнопок Windows. Для получения дополнительной информации см. Метод массива кнопок Windows Device-Specific (_DSM).

Сенсорные устройства для док-станций и трансформируемых ПК

Windows поддерживает док-станции и устройства типа трансформеров (комбинации ноутбук/планшет) с помощью двух сенсорных устройств в пространстве имен ACPI. Эти устройства поддерживаются драйвером кнопки "Входящие" Windows. Обратите внимание, что те же требования, которые применяются к устройству массива кнопок, также применяются к этим устройствам:

  • Прерывания GPIO ActiveBoth должны быть подключены к встроенному в SoC контроллеру GPIO (а не к контроллеру GPIO, подключенному к шине SPB).

  • Контроллер GPIO должен поддерживать прерывания в режиме уровня и перепрограммирование динамической полярности.

  • Драйвер контроллера GPIO должен использовать эмуляцию ActiveBoth, предоставляемую расширением платформы GPIO (GpioClx).

  • Если утверждение состояния ("Закреплено" или "Преобразовано") не является низким уровнем логики, контроллер GPIO _DSM требуется для переопределения поведения стека драйверов GPIO по умолчанию. Дополнительные сведения см. в разделе устройств контроллера GPIO в разделе "Общие назначения операций ввода-вывода( GPIO).

Дополнительные сведения см. в разделе "Аппаратные кнопки" для планшетов Windows 8 и преобразуемых устройств.

Устройство с датчиком док-станции

Устройство с датчиком док-станции прерывает работу системы при подключении или отключении док-станции из системы. Эта информация об изменении режима используется для обновления пользовательского интерфейса ввода и вывода по мере необходимости. Для пространства имен устройства требуется:

  • _HID для конкретного поставщика

  • Идентификатор _CID PNP0C70

  • _CRS с одним прерыванием в режиме ActiveBoth

    Прерывание не может быть в состоянии пробуждения.

Преобразуемое устройство для распознавания пк

Устройство, определяющее режим работы преобразуемого ПК, прерывает систему, когда компьютер переключается с планшетного режима на форм-фактор классической раскладушки. Эта информация об изменении режима используется для обновления пользовательского интерфейса ввода и вывода по мере необходимости. Для пространства имен устройства требуется:

  • _HID для конкретного поставщика

  • ИД _CID для PNP0C60

  • _CRS с одним прерыванием в режиме ActiveBoth

    Прерывание не может быть в состоянии пробуждения.