Partager via


Interface ACPI : Données spécifiques à l’appareil (_DSD) pour les ports racines PCIe

Dans Windows 10 (version 1803), de nouvelles méthodes ACPI _DSD ont été ajoutées pour prendre en charge les scénarios Modern Standby et PCI hot plug.

Prise en charge de l’état d’inactivité profonde (DRIPS) sur les ports racines PCIe

Cet objet ACPI doit être implémenté dans le champ ACPI de chaque port/slot racine PCIe accessible à l’utilisateur sur les systèmes compatibles Modern Standby capables de mettre en œuvre le Directed Power Management Framework (DFx).

Name (_DSD, Package () {

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

            Package () {

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

Identification des ports racines PCIe prenant en charge le hot plug en D3

Cet objet ACPI permet au système d’exploitation d’identifier et de gérer l’alimentation des ports racines PCIe capables de gérer les événements de hot plug en état D3. Si cet objet n’est pas implémenté sur un port compatible PCIe hot plug, alors le système ne gère pas l’alimentation de ce port s’il n’a pas d’appareils PCIe enfants, ce qui fait que le système consomme plus d’énergie que nécessaire.

Cet objet doit être implémenté sur tous les ports racines PCIe des hiérarchies Thunderbolt, sur les systèmes compatibles Runtime D3 (RTD3), dans le champ de l’appareil ACPI du port racine.

Name (_DSD, Package () {  

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

        Package () {  

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

                   }
        }
)

Identification des ports racines PCIe exposés externes

Cet objet ACPI permet au système d’exploitation d’identifier les hiérarchies PCIe exposées externes, telles que Thunderbolt. Cet objet doit être implémenté dans le champ de l’appareil ACPI du port racine.

Remarque : Sur les systèmes livrés avec Windows 10, version 1803, cet objet ne doit être implémenté que sur les ports racines PCIe des hiérarchies 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
                   }
        }
)

Identification des ports PCIe internes accessibles aux utilisateurs et nécessitant une protection DMA

Cet objet ACPI permet au système d’exploitation d’identifier les hiérarchies PCIe internes facilement accessibles par les utilisateurs (par exemple, les slots PCIe M.2 pour ordinateurs portables accessibles par une trappe) et nécessitant une protection par le mécanisme Kernel DMA Protection de l’OS. Cet objet doit être implémenté dans le champ de l’appareil ACPI du port racine.

Points clés à noter :

  • La protection des ports PCI à l’aide de cet objet ACPI n’est prise en charge que dans Windows 10, version 1903 et les versions ultérieures.

  • La protection DMA du noyau doit être activée dans le BIOS/UEFI du système, afin que l’OS puisse analyser le _DSD et appliquer les protections nécessaires au port PCI.

  • Les pilotes des appareils connectés à ce port DOIVENT prendre en charge le remappage DMA, sinon Windows 10 peut bloquer ces appareils jusqu’à ce qu’un utilisateur se connecte ou indéfiniment, en fonction de la politique 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
                   }
        }
)

Identification des ports PCIe prenant en charge l’interface D3_COLD_AUX_POWER ECN

Cet objet ACPI permet au système d’exploitation d’identifier les ports PCIe prenant en charge l’interface D3_COLD_AUX_POWER ECN, ce qui permet aux appareils PCIe de demander à la plateforme une puissance auxiliaire supplémentaire en D3, au-delà des 375 mA par défaut à 3,3 V. Tout port ou pont PCI définissant ce DSD doit garantir que lors de la reprogrammation de la valeur de puissance auxiliaire précédemment négociée, l’opération réussisse.

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

Mappage des protocoles natifs (PCIe, DisplayPort) transportés via USB4 vers les routeurs hôtes USB4

Cet objet ACPI permet au système d’exploitation de mapper les protocoles natifs, tels que PCIe et DisplayPort, transportés via USB4 vers le routeur hôte USB4 correct.

Dans l’exemple suivant, Device (DSB0) a une dépendance à \_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#},
            }
        })
    }
}

Voir aussi

Activation du contrôle natif PCI Express dans Windows

Protection DMA du noyau pour Thunderbolt 3

Activation du remappage DMA pour les pilotes d’appareils

structure de D3COLD_AUX_POWER_AND_TIMING_INTERFACE