Интерфейс 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 мА @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
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по