Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel werden etwaige Missverständnisse geklärt, die Anbieter erlebt haben, wie Hardware, die dem PCI Power Management (PCI-PM) entspricht, mit Gerätetreibern innerhalb des Betriebssystems interagiert und wie PCI-PM in ACPI integriert wird. Weitere Informationen finden Sie unter https://www.uefi.org/specifications
Gerätetreiber und PCI-Energieverwaltung
In dieser Diskussion wird davon ausgegangen, dass Sie mit der Behandlung von Energieverwaltungsereignissen durch Windows Driver Model (WDM)-Treiber vertraut sind, wie im aktuellen Windows DDK beschrieben. Im Allgemeinen sind die Verantwortlichkeiten für Gerätetreiber wie folgt:
Busfahrer: Busfahrer sind für das Aufzählen, Konfigurieren und Steuern von Geräten verantwortlich. Für PCI-PM ist der PCI-Treiber für das Lesen der PCI-PM Register verantwortlich, um die Funktionen der Hardware zu ermitteln. Wenn POWER-IRPs Änderungen des Energiestatus anfordern, schreibt der PCI-Treiber in die PCI-Energieverwaltungsregister, um die Hardware auf verschiedene Dx-Zustände einzustellen.
Wenn ein Gerät für das Aufwachen aktiviert ist, schreibt der PCI-Treiber in die PCI-PM-Register, damit das Gerät PME auslösen kann (ACPI führt auch eine Aktion aus, siehe nächster Abschnitt). Wenn ACPI feststellt, dass der PCI-Bus das System aufweckt, durchsucht der PCI-Treiber den PCI-Konfigurationsraum, um das Gerät zu identifizieren, das PME aktiviert. Anschließend deaktiviert er PME in diesem Gerät und benachrichtigt den Treiber für dieses Gerät.
Gerätetreiber: Der spezifische Treiber für das Gerät ist verantwortlich für das Speichern und Wiederherstellen des Gerätekontexts und das Anfordern von Energiestatusänderungen als Richtlinienbesitzer für das Gerät. Wenn der Gerätetreiber einen POWER IRP empfängt, der eine Änderung des Energiezustands eines niedrigeren Geräts anfordert, ist der Gerätetreiber dafür verantwortlich, alle proprietären Gerätekontexte zu speichern, die zum späteren Aktivieren des Geräts erforderlich sind. In einigen Fällen gibt es möglicherweise nichts zu speichern.
PCI-PM Register sind streng die Domäne des PCI-Treibers- der IHV-Gerätetreiber muss nicht auf eines dieser Register zugreifen. Dies würde dazu führen, dass das System nicht zuverlässig funktioniert. Die Verantwortung des Gerätetreibers besteht darin, nur proprietäre Aktionen auszuführen.
Integrieren von ACPI und PCI PM
Einige Geräte, insbesondere Motherboard-Videogeräte auf tragbaren Geräten, erfordern möglicherweise sowohl PCI Power Management als auch ACPI Source Language Assembler (ASL), um das Gerät vollständig zu verwalten. Die PCI Power Management-Register würden den internen Zustand eines Geräts steuern, z. B. interne Uhren und Energieebenen. ASL würde den externen Zustand steuern, z. B. externe Uhren und Energieebenen, oder bei Videocontrollern würde ASL die Video-Hintergrundbeleuchtung steuern. Beachten Sie, dass ASL und PCI-PM nur auf Hauptplatinengeräten kombiniert werden können.
Die OnNow-Architektur ist eine mehrschichtige Architektur, die die Integration des Gerätetreibers, PCI-Treibers und ACPI-Treibers (und ASL) natürlich verarbeitet. In den folgenden Szenarien wird die Reihenfolge gezeigt, in der Treiber aufgerufen werden, um diese Geräte zu verarbeiten.
Damit die oben genannten Szenarien wie beschrieben funktionieren, muss ein WDM-Treiber POWER IRPs ordnungsgemäß weiterleiten, wie in der aktuellen Version von Microsoft WDK beschrieben.
Szenario 1: Deaktivieren eines Geräts
Gerätetreiber: Speichert den proprietären Gerätezustand.
PCI-Treiber: Speichert Plug-and-Play-Konfiguration, deaktiviert das Gerät (Interrupts und BARs) und platziert das Gerät mithilfe von PCI-PM Registern in D3.
ACPI-Treiber: Führt ASL-Code (_PS3 und _OFF für nicht mehr benötigte Energiequellen) aus, um den Zustand außerhalb des Chips zu steuern.
Szenario 2: PCI-Energieverwaltung und Gerätetreiber
ACPI-Treiber: Führt ASL-Code (_PS0 und _ON für alle erforderlichen OnNow-Energieressourcen) aus, um den Zustand außerhalb des Chips zu steuern.
PCI-Treiber: Versetzt das Gerät mithilfe von PCI-PM-Registern in den D0-Zustand und stellt die Plug-and-Play-Konfiguration wieder her (Interrupts und BARs – diese können sich von den vorherigen Einstellungen des Geräts unterscheiden).
Gerätetreiber: Stellt den proprietären Kontext auf dem Gerät wieder her.
Szenario 3: Aktivieren des Aufwachens
Gerätetreiber: Legt proprietäre Register im Chip fest, um das Wake-up zu ermöglichen. Beim Musterabgleich für das Netzwerk-Wake-up wäre dies der Fall, wenn die Muster in den Adapter programmiert werden.
PCI-Treiber: Legt die Aktivierungsbits in den PCI PM-Registern fest, damit das Gerät PME bestätigen kann.
ACPI-Treiber: Aktiviert die GPE im Chipsatz, der mit PME verknüpft ist (wie im _PRW-Objekt beschrieben, das unter dem Stamm-PCI-Bus aufgeführt ist).
Szenario 4: Aufwachen
ACPI-Treiber: Wacht auf und scannt die GPE-Statusbits auf Wake-Up-Ereignisse, deaktiviert GPEs für gesetzte GPE-Statusbits und führt alle _Lxx- oder _Exx-Methoden aus, die den gesetzten GPE-Bits zugeordnet sind. Als Reaktion auf eine Wake-up-Benachrichtigung auf dem PCI-Bus vervollständigt der ACPI-Treiber die WAIT_WAKE-IRP des PCI-Treibers, um den PCI-Treiber darüber zu informieren, dass er das System aufweckt.
PCI-Treiber: Überprüft den Konfigurationsraum, um nach Geräten mit einem festgelegten PME-Statusbit zu suchen. Für jedes Gerät deaktiviert es PME und schließt das WAIT_WAKE IRP für dieses Gerät ab, um den Treiber zu informieren, dass ein Aufwachvorgang signalisiert wird. Der PCI-Treiber stoppt die Überprüfung auf Wake-Geräte, wenn es einen vollständigen Durchlauf durch alle PCI-Geräte gemacht hat, die keine bestätigten PME gefunden haben, und wenn PME nicht mehr bestätigt wird.
Gerätetreiber: Fordert an, dass das Gerät in D0 gesetzt wird (siehe Szenario 2) und legt alle proprietären Register im Chip fest, die zum Behandeln des Wake-up-Ereignisses erforderlich sind.
Handlungsaufruf für PCI-Energieverwaltung und Gerätetreiber
Integrieren Sie ACPI- und PCI-PM-Funktionen wie in diesem Artikel beschrieben in Ihre Geräte.
Die PCI Power Management-Spezifikation ist auf der website PCI-SIG verfügbar.
ACPI-Spezifikation verfügbar unter https://www.uefi.org/specifications. Dieser Link verlässt die Microsoft.com Website.
Der ACPI Component Architecture (ACPICA)-Compiler finden Sie unter https://acpica.org/downloads/binary-tools.