Share via


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

Dans Windows 10 (version 1803), de nouvelles méthodes _DSD ACPI ont été ajoutées pour prendre en charge les scénarios de veille moderne et de prise à chaud PCI.

Prise en charge de l’état d’inactivité du runtime dirigé (DRIPS) sur les ports racine PCIe

Cet objet ACPI doit être implémenté dans l’étendue ACPI de chaque port/emplacement racine PCIe accessible à l’utilisateur sur des systèmes de secours modernes capables d’implémenter le DFx (Directed Power Management Framework).

Name (_DSD, Package () {

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

            Package () {

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

Identification des ports racines PCIe prenant en charge la connexion à chaud D3

Cet objet ACPI permet au système d’exploitation d’identifier et de gérer l’alimentation des ports racine PCIe capables de gérer les événements de connexion à chaud à l’état D3. Si cet objet n’est pas implémenté sur le port compatible avec prise à chaud PCIe, le système ne gère pas ce port s’il n’a pas d’appareils PCIe enfants, ce qui entraîne une consommation d’énergie supérieure à celle 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 l’étendue de l’appareil ACPI port racine.

Name (_DSD, Package () {  

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

        Package () {  

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

                   }
        }
)

Identification des ports racines PCIe exposés en externe

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

Remarque : sur les systèmes d’expédition avec Windows 10 version 1803, cet objet doit uniquement être implémenté 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 qui sont facilement accessibles par les utilisateurs (par exemple, les emplacements PCIe M.2 d’ordinateur portable accessibles par le biais d’un verrou) et nécessitent une protection par le mécanisme de protection DMA du noyau du système d’exploitation. Cet objet doit être implémenté dans l’étendue de l’appareil ACPI du port racine.

Éléments 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 ultérieure.

  • La protection DMA du noyau doit être activée dans le BIOS/UEFI système pour que le système d’exploitation analyse les _DSD et applique les protections nécessaires au port PCI.

  • Les pilotes d’appareils connectés à ce port DOIVENT prendre en charge le remapping DMA, sinon, Windows 10 peuvent empêcher ces appareils de fonctionner jusqu’à ce qu’un utilisateur se connecte ou indéfiniment, en fonction de la stratégie 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 D3_COLD_AUX_POWER interface ECN

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

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

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

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

Dans l’exemple suivant, Device (DSB0) a une dépendance sur \_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 remapping DMA pour les pilotes de périphérique

structure D3COLD_AUX_POWER_AND_TIMING_INTERFACE