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 para admitir escenarios modernos de enchufe de espera y PCI.

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 dirigido (DFx).

Name (_DSD, Package () {

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

            Package () {

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

Identificación de los puertos raíz PCIe que admiten el enchufe activo en D3

Este objeto ACPI permite al sistema operativo identificar y alimentar los puertos raíz PCIe que son capaces de controlar eventos de enchufe activo mientras están en estado D3. Si este objeto no se implementa en el puerto compatible con un enchufe activo PCIe, el sistema no alimenta 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 la necesidad de protección contra DMA

Este objeto ACPI permite al sistema operativo identificar jerarquías PCIe internas a las que pueden acceder fácilmente los usuarios (por ejemplo, ranuras PCIe M.2 portátiles accesibles a través de un bloqueo temporal) y requerir protección por el mecanismo de protección contra DMA del kernel del sistema operativo. 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 contra DMA del kernel debe estar habilitada en el 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.

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 375mA @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 realiza correctamente.

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

Asignación de protocolos nativos (PCIe, DisplayPort) tunelizado a través de USB4 a enrutadores host USB4

Este objeto ACPI permite al sistema operativo asignar protocolos nativos, como PCIe y DisplayPort, tunelizado a través de USB4 al enrutador host USB4 correcto.

En el ejemplo siguiente, Device (DSB0) tiene una 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 contra DMA de kernel para Thunderbolt 3

Habilitación de la reasignación de DMA para controladores de dispositivos

estructura de D3COLD_AUX_POWER_AND_TIMING_INTERFACE