ACPI-Schnittstelle: Gerätespezifische Daten (_DSD) für PCIe-Stammports
In Windows 10 (Version 1803) wurden neue ACPI _DSD-Methoden hinzugefügt, um moderne Standbymodi und PCI-Hot-Plug-Szenarien zu unterstützen.
Deepest Runtime Idle Platform State (DRIPS)-Unterstützung für PCIe-Stammports
Dieses ACPI-Objekt muss im ACPI-Bereich jedes PCIe-Stammports/-Slots implementiert werden, der für den Benutzer auf modernen Standby-fähigen Systemen zugänglich ist, die in der Lage sind, das Directed Power Management Framework (DFx) zu implementieren.
Name (_DSD, Package () {
ToUUID("FDF06FAD-F744-4451-BB64-ECD792215B10"),
Package () {
Package (2) {"FundamentalDeviceResetTriggeredOnD3ToD0", 1},
}
}
)
Identifizieren von PCIe-Stammports, die Hot-Plug-in D3 unterstützen
Dieses ACPI-Objekt ermöglicht es dem Betriebssystem, PCIe-Stammports zu identifizieren und zu verwalten, die Hot-Plug-Ereignisse während des D3-Zustands behandeln können. Wenn dieses Objekt nicht auf einem PCIe-Hot-Plug-fähigen Port implementiert ist, verwaltet das System diesen Port nicht, wenn es über keine untergeordneten PCIe-Geräte verfügt, was dazu führt, dass das System mehr Energie verbraucht als nötig.
Dieses Objekt muss auf allen PCIe-Stammports von Thunderbolt-Hierarchien auf Runtime D3 (RTD3)-fähigen Systemen im Bereich des ACPI-Stammports implementiert werden.
Name (_DSD, Package () {
ToUUID("6211E2C0-58A3-4AF3-90E1-927A4E0C55A4"),
Package () {
Package (2) {"HotPlugSupportInD3", 1},
}
}
)
Identifizieren extern verfügbarer PCIe-Stammports
Dieses ACPI-Objekt ermöglicht es dem Betriebssystem, extern verfügbar gemachte PCIe-Hierarchien wie Thunderbolt zu identifizieren. Dieses Objekt muss im ACPI-Gerätebereich des Stammports implementiert werden.
Hinweis: Auf Systemen, die mit Windows 10, Version 1803, bereitgestellt werden, sollte dieses Objekt nur auf PCIe-Stammports von Thunderbolt-Hierarchien implementiert werden.
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
}
}
)
Identifizieren interner PCIe-Ports, die für Benutzer zugänglich sind und DMA-Schutz erfordern
Dieses ACPI-Objekt ermöglicht es dem Betriebssystem, interne PCIe-Hierarchien zu identifizieren, die für Benutzer leicht zugänglich sind (z. B. Laptop M.2 PCIe-Slots, die über einen Schnappmechanismus zugänglich sind) und Schutz durch den Os Kernel DMA Schutz-Mechanismus erfordern. Dieses Objekt muss im ACPI-Gerätebereich des Stammports implementiert werden.
Wichtige Dinge, die zu beachten sind:
Der Schutz von PCI-Ports mit diesem ACPI-Objekt wird nur in Windows 10, Version 1903 und höher, unterstützt.
Kernel-DMA-Schutz muss im System-BIOS/UEFI aktiviert sein, damit das Betriebssystem die _DSD analysiert und die erforderlichen Schutzmaßnahmen auf den PCI-Port anwendet.
Treiber von Geräten, die mit diesem Port verbunden sind, MÜSSEN die DMA-Neuzuordnung unterstützen, andernfalls kann Windows 10 die Funktion dieser Geräte je nach DMAGuard-Richtlinie blockieren, entweder auf unbegrenzte Zeit oder bis sich ein Benutzer anmeldet.
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
}
}
)
Identifizieren von PCIe-Ports, die die D3_COLD_AUX_POWER ECN-Schnittstelle unterstützen
Dieses ACPI-Objekt ermöglicht es dem Betriebssystem, PCIe-Ports zu identifizieren, die die D3_COLD_AUX_POWER ECN-Schnittstelle unterstützen, wodurch PCIe-Geräte von der Plattform zusätzliche Hilfsleistung in D3 anfordern können, oberhalb der Standardeinstellung 375 mA bei 3,3 V. Jeder PCI-Port oder jede -Brücke, die diesen DSD definiert, muss garantieren, dass der Vorgang bei der Rück-Programmierung des zuvor ausgehandelten Hilfsleistungswerts erfolgreich ist.
Name (_DSD, Package () {
ToUUID("6B4AD420-8FD3-4364-ACF8-EB94876FD9EB"),
Package () {
}
}
)
Zuordnen von systemeigenen Protokollen (PCIe, DisplayPort) über USB4 zu USB4-Hostroutern
Dieses ACPI-Objekt ermöglicht es dem Betriebssystem, systemeigene Protokolle wie PCIe und DisplayPort zuzuordnen, die über USB4 zum richtigen USB4-Hostrouter getunnelt werden.
Im folgenden Beispiel hat Device (DSB0)
eine Abhängigkeit von \_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#},
}
})
}
}
Siehe auch
Aktivieren von PCI Express Native Control in Windows
Kernel-DMA-Schutz für Thunderbolt 3