Share via


USB4 ACPI-Anforderungen

In diesem Artikel wird beschrieben, wie USB4-Geräte mit einem ACPI-Gerät (Advanced Configuration and Power Interface) verbunden werden. ACPI-Geräte werden durch die Advanced Configuration and Power Interface (ACPI) Specification definiert.

_OSC (Betriebssystemfunktionen) für USB4

Das BIOS muss dem USB4-Verbindungsmanager gemäß der ACPI 6.4-Spezifikation die Kontrolle gewähren. Das System muss die Kontrolle über die native USB4-Unterstützung in den plattformweiten Betriebssystem-Power-Management-Funktionen (OSPM) gewähren. Die Steuerung wird gewährt, wenn _OSC vom Betriebssystem aufgerufen wird, wobei das Abfrage-Flag auf 0 und die native USB4-Unterstützung auf 1 gesetzt ist.

Zusätzlich muss auch _OSC für USB implementiert werden. Das BIOS kann die Kontrolle über PCIe-Tunneling aus Sicherheitsgründen gemäß den erforderlichen Richtlinien oder Benutzereinstellungen verbieten. USB-Tunneling, DisplayPort™-Tunneling und domänenübergreifende USB4-Verbindungen müssen jedoch immer aktiviert sein. Der Verbindungsmanager versetzt das Gerät in einen Fehlerzustand, wenn USB-Tunneling, DisplayPort™-Tunneling oder Verbindungen zwischen Domänen deaktiviert sind.

Sobald beide Fähigkeiten wie oben beschrieben implementiert sind, fügt der PCIe-Bus eine Hardware-ID von „PCI\USB4_MS_CM“ zur Liste der Hardware-IDs für PCIe-enumerierte Host-Router hinzu. Dadurch kann Plug & Play den USB4-Verbindungs-Manager-Treiber laden.

Der Screenshot der Hardware-ID für den PCIe-basierten Host-Router.

Hinweis

_OSC-Einstellungen für native USB4-Unterstützung oder _OSC für USB sollten während eines Übergangs in den Ruhezustand (S4) nicht geändert werden. Wenn solche Einstellungen geändert werden, ist ein vollständiger Neustart erforderlich.

Portzuordnung (_DSD) für USB 3.x und PCIe

Damit die PCIe- und USB 3.x-Software-Stacks Strombeziehungen mit dem USB4-Host-Router herstellen können, sind gerätespezifische Daten (_DSD) für die getunnelten PCIe- und USB 3.x-Ports erforderlich. Andernfalls wird die USB4-Domäne möglicherweise heruntergefahren, ohne mit den getunnelten PCIe- und USB 3.x-Geräten zu koordinieren.

Hinweis

Die Hostschnittstelleninstanz muss immer mit einer 3-Bit-Ziffer (0-7) enden.

Im Folgenden finden Sie ein Beispiel für die Portzuordnung in der ACPI-Quellsprache (ASL):

Scope (\_SB.PCI0)
{
  Device (NHI0) { } //Host interface instance must always end with a 3-bit digit (0-7). 
  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#}, // PortInstance# is unused and can be 0
      }
    })
  }
…
  Device (SS01) // e.g. Tunnel capable USB 3.x super speed port under RHUB
  {
    …
    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#}, // PortInstance# is unused and can be 0
      }
    })
  }

Vorhandene USB-Anforderungen zur Beschreibung der USB-Portfunktionen(_UPC) bleiben für USB4 unverändert.

Zusätzliche Anforderungen für PCIe-Ports

PCIe-Root-Ports, die USB4 zugeordnet sind, müssen so gekennzeichnet sein, dass sie Hot-Plug-Ereignisse im D3-Zustand verarbeiten können. Weitere Informationen finden Sie unter Identifizieren von PCIe-Root-Ports die Hot-Plug-in-D3 unterstützen, und Identifizieren von extern exponierten PCIe-Root-Ports.

PCIe-Root-Ports sollten entsprechend als fähig markiert werden, aus D3Cold aufzuwachen, indem die _S0W- und _CRS- oder _PRW-Methoden verwendet werden. Weitere Informationen zu _S0W und _CRS oder _PRW finden Sie in der ACPI-Spezifikation und den Firmware-Anforderungen für D3cold.

Gerätespezifische Methode zum Verhindern des Austauschs von Datenrollen für Host-zu-Host-Verbindungen

Auf bestimmten Plattformen versuchen Windows-System UCSI OPM-Treiber möglicherweise, die USB-Datenrolle in einer USB-Verbindung zu korrigieren, indem sie einen USB-Datenrollentausch mit dem BEFEHL „Set USB Operation Role“ (SET_UOR) anfordern. Dies kann sich jedoch auf die Host-zu-Host-Verbindung auswirken, da beide Seiten einer solchen Verbindung diese Rollenkorrektur einleiten können. Um dieses Problem anzugehen, muss die Plattform die ACPI _DSM-Methode unter dem UCSI-Gerät wie folgt implementieren, um zu behaupten, dass die Datenrollenkorrektur in UCSI OPM deaktiviert werden sollte.

USB-gerätespezifische Methode (_DSM)

Um die USB-Datenrollenkorrektur in UCSI OPM zu deaktivieren, definiert Windows eine gerätespezifische Methode (_DSM), die die unten beschriebene Funktion hat.

Funktion 4: Deaktivieren der USB-Datenrollenkorrektur in UCSI OPM

Argumente

Arg0: UUID = 6F8398C2-7CA4-11E4-AD36-631042B5008F

Arg1: Revision ID = 0

Arg2: Funktionsindex = 4

Arg3: Leeres Paket (nicht verwendet)

Rückgabewert

Eine ganze Zahl, die einen der folgenden Werte enthält:

Element Objekttyp BESCHREIBUNG
Disabled 4-byte (32-bit) unsigned long Geben Sie an, ob die Rollenkorrektur in UCSI OPM deaktiviert werden soll.
0x00 (Standard) – Deaktiviert die USB-Datenrollenkorrektur nicht.
0x01 – Deaktiviert die USB-Datenrollenkorrektur in UCSI OPM.

Wenn diese Funktion verwendet wird, muss die _DSM-Methode unter dem UCSI-Gerät erscheinen.

Hinweis

Der Funktionsindex 0 jedes _DSM ist eine Abfragefunktion, die den Satz unterstützter Funktionsindizes zurückgibt. Es ist immer erforderlich. Weitere Informationen finden Sie in Abschnitt 9.1.1 _DSM (Gerätespezifische Methode), in der ACPI 6.4-Spezifikation.

Weitere Informationen

Thunderbolt ist eine Marke der Intel Corporation oder ihrer Tochtergesellschaften.

"USB4™" ist eine Marke des USB Implementers Forum und ist nur für die Verwendung mit Produkten vorgesehen, die auf der USB4-Spezifikation™ basieren und konform sind.