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 racine PCIe prenant en charge le hot plug-in 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 PCIe hot plug-in, 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 qui prennent en charge l'interface ECN D3_COLD_AUX_POWER, qui permet aux appareils PCIe de requérir de la plate-forme une alimentation auxiliaire supplémentaire en D3, au-delà des 375 mA @3,3V par défaut. 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) tunnelé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 du PCI Express dans Windows
Protection DMA du noyau pour Thunderbolt 3