Interfaccia ACPI: dati specifici del dispositivo (_DSD) per le porte radice PCIe

In Windows 10 (versione 1803) sono stati aggiunti nuovi metodi di _DSD ACPI per supportare scenari di plug-in standby moderno e plug-hot PCI.

Supporto DRIPS (DeepEst DeepEst Runtime Idle Platform State) diretto nelle porte radice PCIe

Questo oggetto ACPI deve essere implementato nell'ambito ACPI di ogni porta/slot RADICE PCIe accessibile all'utente nei sistemi abilitati per standby moderni in grado di implementare Il framework di risparmio energia diretto (DFx).

Name (_DSD, Package () {

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

            Package () {

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

Identificazione delle porte radice PCIe che supportano il plug-in ad accesso frequente D3

Questo oggetto ACPI consente al sistema operativo di identificare e gestire le porte radice PCIe in grado di gestire gli eventi di plug-frequente nello stato D3. Se questo oggetto non è implementato su una porta con supporto per plug-hot PCIe, il sistema non gestisce questa porta se non dispone di dispositivi PCIe figlio, causando il consumo di energia maggiore del necessario.

Questo oggetto deve essere implementato in tutte le porte radice PCIe delle gerarchie Di Fulmine, nei sistemi con supporto di Runtime D3 (RTD3), nell'ambito del dispositivo ACPI della porta radice.

Name (_DSD, Package () {  

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

        Package () {  

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

                   }
        }
)

Identificazione esterna delle porte radice PCIe esposte

Questo oggetto ACPI consente al sistema operativo di identificare gerarchie PCIe esposte esternamente, ad esempio Il Sistema Operativo. Questo oggetto deve essere implementato nell'ambito del dispositivo ACPI della porta radice.

Nota: nei sistemi con Windows 10, versione 1803, questo oggetto deve essere implementato solo nelle gerarchie PCIe Root Ports of Preview.

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
                   }
        }
)

Identificazione delle porte PCIe interne accessibili agli utenti e richiesta di protezione DMA

Questo oggetto ACPI consente al sistema operativo di identificare le gerarchie PCIe interne facilmente accessibili dagli utenti (ad esempio, slot PCIe laptop M.2 accessibili tramite un latch) e richiedono la protezione dal meccanismo di protezione DMA kernel del sistema operativo. Questo oggetto deve essere implementato nell'ambito del dispositivo ACPI della porta radice.

Elementi chiave della nota:

  • La protezione delle porte PCI con questo oggetto ACPI è supportata solo in Windows 10, versione 1903 e successive.

  • La protezione DMA del kernel deve essere abilitata nel BIOS/UEFI di sistema, affinché il sistema operativo analizzi il _DSD e applichi le protezioni necessarie alla porta PCI.

  • I driver di dispositivi connessi a questa porta DEVONO supportare il mapping DMA. In caso contrario, Windows 10 potrebbe impedire il funzionamento di questi dispositivi fino a quando un utente non accede o a tempo indeterminato, a seconda dei criteri 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
                   }
        }
)

Identificazione delle porte PCIe che supportano D3_COLD_AUX_POWER interfaccia ECN

Questo oggetto ACPI consente al sistema operativo di identificare le porte PCIe che supportano D3_COLD_AUX_POWER interfaccia ECN, che consente ai dispositivi PCIe di richiedere dalla piattaforma potenza ausiliaria aggiuntiva in D3, sopra la 375 mA predefinita @3.3V. Qualsiasi porta PCI o bridge che definisce questo DSD deve garantire che quando si programma il valore di alimentazione ausiliaria negoziato in precedenza, l'operazione ha esito positivo.

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

Eseguire il mapping dei protocolli nativi (PCIe, DisplayPort) sottoposti a tunneling tramite USB4 a router host USB4

Questo oggetto ACPI consente al sistema operativo di eseguire il mapping dei protocolli nativi, ad esempio PCIe e DisplayPort, sottoposti a tunneling tramite USB4 al router host USB4 corretto.

Nell'esempio seguente, Device (DSB0) ha una dipendenza da \_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#},
            }
        })
    }
}

Vedi anche

Abilitazione del controllo nativo PCI Express in Windows

Protezione DMA del kernel per Il 3

Abilitazione del mapping di DMA per i driver di dispositivo

struttura D3COLD_AUX_POWER_AND_TIMING_INTERFACE