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


Интерфейс ACPI: определенные данные устройства (_DSD) для корневых портов PCIe

В Windows 10 (версия 1803) добавлены новые методы ACPI _DSD для поддержки современных сценариев резервного и горячего модуля PCI.

Поддержка состояния платформы ПРОСТОя среды выполнения (DRIPS) в корневых портах PCIe

Этот объект ACPI должен быть реализован в области ACPI каждого корневого порта или слота PCIe, доступного пользователю в современных системах с поддержкой резервного режима, способных реализовать целевую платформу управления питанием (DFx).

Name (_DSD, Package () {

          ToUUID("FDF06FAD-F744-4451-BB64-ECD792215B10"),

            Package () {

                Package (2) {"FundamentalDeviceResetTriggeredOnD3ToD0", 1},
            }
        }
)

Определение корневых портов PCIe, поддерживающих горячий подключаемый модуль D3

Этот объект ACPI позволяет операционной системе выявлять и управлять корневыми портами PCIe, которые могут обрабатывать события горячего модуля в состоянии D3. Если этот объект не реализован на порту с поддержкой горячего подключаемого модуля PCIe, система не управляет этим портом, если у него нет дочерних устройств PCIe, что приводит к тому, что система потребляет больше энергии, чем необходимо.

Этот объект должен быть реализован во всех корневых портах PCIe иерархий Thunderbolt в системах с поддержкой среды выполнения D3 (RTD3) в области устройства ACPI корневого порта.

Name (_DSD, Package () {  

        ToUUID("6211E2C0-58A3-4AF3-90E1-927A4E0C55A4"),  

        Package () {  

            Package (2) {"HotPlugSupportInD3", 1},  

                   }
        }
)

Определение внешних корневых портов PCIe

Этот объект ACPI позволяет операционной системе определять внешние иерархии PCIe, такие как Thunderbolt. Этот объект должен быть реализован в области устройства ACPI корневого порта.

Примечание. При доставке систем с Windows 10 версии 1803 этот объект должен быть реализован только в корневых портах PCIe из иерархий Thunderbolt.

Name (_DSD, Package () {  

ToUUID("EFCC06CC-73AC-4BC3-BFF0-76143807C389"),
Package () {
Package (2) {"ExternalFacingPort", 1}, // Property 1: This is an externally facing port/hierarchy
Package (2) {"UID", 0}, // Property 2: UID of the externally facing port on platform, range is: 0, 1, …, n-1
                   }
        }
)

Определение внутренних портов PCIe, доступных пользователям и требующих защиты DMA

Этот объект ACPI позволяет операционной системе определять внутренние иерархии PCIe, которые легко доступны пользователям (например, слоты PCIe ноутбуков M.2, доступные посредством блокировки) и требуют защиты от механизма защиты ядра DMA. Этот объект должен быть реализован в области устройства ACPI корневого порта.

Ключевые элементы заметки:

  • Защита портов PCI с помощью этого объекта ACPI поддерживается только в Windows 10 версии 1903 и более поздних версий.

  • Защита DMA ядра должна быть включена в системе BIOS/UEFI, чтобы ОС анализирует _DSD и применяет необходимые защиты к порту PCI.

  • Драйверы устройств, подключенных к этому порту, должны поддерживать повторное сопоставление DMA, в противном случае Windows 10 может блокировать работу этих устройств до тех пор, пока пользователь не войтется в систему или на неопределенный срок в зависимости от политики DMAGuard.

Name (_DSD, Package () {  

ToUUID("70D24161-6DD5-4C9E-8070-705531292865"),
Package () {
Package (2) {"DmaProperty", 1}, // Property 1: This port needs to be protected by the OS
Package (2) {"UID", 0}, // Property 2: UID of the PCIe port on platform, range is: 0, 1, …, n-1
                   }
        }
)

Определение портов PCIe, поддерживающих интерфейс ECN D3_COLD_AUX_POWER

Этот объект ACPI позволяет операционной системе определять порты PCIe, поддерживающие интерфейс ECN D3_COLD_AUX_POWER, что позволяет устройствам PCIe запрашивать от платформы дополнительную дополнительную мощность в D3, над значением по умолчанию 375 mA @3.3V. Любой порт PCI или мост, определяющий этот DSD , должен гарантировать, что при программировании обратно ранее согласованного вспомогательного значения питания операция завершается успешно.

Name (_DSD, Package () {
            ToUUID("6B4AD420-8FD3-4364-ACF8-EB94876FD9EB"),
            Package () {
            }
        }
)

Сопоставление собственных протоколов (PCIe, DisplayPort), туннелированных через USB4 на маршрутизаторы узлов USB4

Этот объект ACPI позволяет операционной системе сопоставлять собственные протоколы, такие как PCIe и DisplayPort, туннелированные через USB4 с правильным маршрутизатором узла USB4.

В следующем примере Device (DSB0) имеется зависимость \_SB.PCI0.NHI0.

Scope (\_SB.PCI0)
{
    Device (NHI0) { } //Host interface instance which has dependency on \_SB.PCI0.NHI0
    Device (DSB0) //Tunneled PCIe port instance
    {
        Name (_DSD, Package () {
            ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), //Device Properties UUID 
            Package () {
                Package () { "usb4-host-interface", \_SB.PCI0.NHI0 },
                Package () { "usb4-port-number", PortInstance#},
            }
        })
    }
    Device (…) //Extend to DP and USB tunneled ports, as needed 
    {
        Name (_DSD, Package () {
            ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), //Device Properties UUID 
            Package () {
                Package () { "usb4-host-interface", \_SB.PCI0.NHI0 },
                Package () { "usb4-port-number", PortInstance#},
            }
        })
    }
}

См. также

Включение собственного элемента управления PCI Express в Windows

Защита DMA ядра для Thunderbolt 3

Включение повторного сопоставления DMA для драйверов устройств

структура D3COLD_AUX_POWER_AND_TIMING_INTERFACE