Interfaz ACPI: datos específicos del dispositivo (_DSD) para puertos raíz PCIe
En Windows 10 (versión 1803), se han agregado nuevos métodos de _DSD ACPI compatibles con escenarios de conexión en caliente PCI y de modo de espera moderno.
Compatibilidad con el estado de la plataforma inactiva en tiempo de ejecución (DRIPS) dirigida en los puertos raíz de PCIe
Este objeto ACPI debe implementarse en el ámbito ACPI de cada puerto o ranura raíz PCIe que sea accesible para el usuario en sistemas modernos habilitados para espera que sean capaces de implementar el Marco de administración de energía dirigida (DFx).
Name (_DSD, Package () {
ToUUID("FDF06FAD-F744-4451-BB64-ECD792215B10"),
Package () {
Package (2) {"FundamentalDeviceResetTriggeredOnD3ToD0", 1},
}
}
)
Identificación de los puertos raíz PCIe compatibles con conexión en caliente en D3
Este objeto ACPI permite al sistema operativo identificar y alimentar los puertos raíz PCIe que son capaces de controlar eventos de conexión en caliente mientras están en estado D3. Si este objeto no se implementa en el puerto compatible con un conexión en caliente PCIe, el sistema no administrará la energía de este puerto si no tiene dispositivos PCIe secundarios, lo que hace que el sistema consuma más energía de la necesaria.
Este objeto debe implementarse en todos los puertos raíz PCIe de jerarquías de Thunderbolt, en sistemas compatibles con runtime D3 (RTD3), en el ámbito del dispositivo ACPI del puerto raíz.
Name (_DSD, Package () {
ToUUID("6211E2C0-58A3-4AF3-90E1-927A4E0C55A4"),
Package () {
Package (2) {"HotPlugSupportInD3", 1},
}
}
)
Identificación de puertos raíz PCIe expuestos externamente
Este objeto ACPI permite al sistema operativo identificar jerarquías PCIe expuestas externamente, como Thunderbolt. Este objeto debe implementarse en el ámbito del dispositivo ACPI del puerto raíz.
Nota: En los sistemas que se envían con Windows 10, versión 1803, este objeto solo debe implementarse en los puertos raíz PCIe de jerarquías de 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
}
}
)
Identificación de los puertos PCIe internos accesibles para los usuarios y que requieren protección DMA
Este objeto ACPI permite al sistema operativo identificar jerarquías PCIe internas a las que los usuarios pueden acceder fácilmente (por ejemplo, ranuras de portátiles PCIe M.2 accesibles a través de un bloqueo temporal) y requerir protección por el mecanismo de protección de DMA para kernel. Este objeto debe implementarse en el ámbito del dispositivo ACPI del puerto raíz.
Elementos clave de la nota:
La protección de puertos PCI mediante este objeto ACPI solo se admite en Windows 10, versión 1903 y posteriores.
La protección DMA del kernel debe estar habilitada en BIOS/UEFI del sistema, para que el sistema operativo analice la _DSD y aplique las protecciones necesarias al puerto PCI.
Los controladores de dispositivos conectados a este puerto DEBEN admitir la reasignación de DMA, de lo contrario, Windows 10 pueden impedir que estos dispositivos funcionen hasta que un usuario inicie sesión o de forma indefinida, en función de la directiva DMAGuard Policy.
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
}
}
)
Identificación de puertos PCIe que admiten D3_COLD_AUX_POWER interfaz ECN
Este objeto ACPI permite al sistema operativo identificar los puertos PCIe que admiten D3_COLD_AUX_POWER interfaz ECN lo que permite a los dispositivos PCIe solicitar desde la plataforma energía auxiliar adicional en D3, por encima del valor predeterminado 375 mA @3.3V. Cualquier puerto o puente PCI que defina este DSD debe garantizar que, al programar de nuevo el valor de energía auxiliar negociado anteriormente, la operación se realice correctamente.
Name (_DSD, Package () {
ToUUID("6B4AD420-8FD3-4364-ACF8-EB94876FD9EB"),
Package () {
}
}
)
Asignación de protocolos nativos (PCIe, DisplayPort) tunelizados a través de USB4 a enrutadores host USB4
Este objeto ACPI permite al sistema operativo asignar protocolos nativos, como PCIe y DisplayPort, tunelizados a través de USB4 al enrutador host USB4 correcto.
En el ejemplo siguiente,, Device (DSB0)
tiene dependencia de \_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#},
}
})
}
}
Consulte también
Habilitación de PCI Express Native Control en Windows
Protección de DMA del kernel para Thunderbolt 3
Habilitación de la reasignación de DMA para controladores de dispositivos