Condividi tramite


Risparmio energia PCI e driver di dispositivo

Questo articolo chiarisce alcune confusioni che i fornitori hanno sperimentato sul modo in cui l'hardware conforme a PCI Power Management (PCI-PM) interagisce con i driver di dispositivo nel sistema operativo e su come PCI-PM si integra con ACPI. Per altre informazioni, vedere https://www.uefi.org/specifications.

Driver di dispositivo e risparmio energia PCI

Questa discussione presuppone che tu abbia familiarità con il modo in cui i driver di Windows Driver Model (WDM) gestiscono gli eventi di risparmio energia, come descritto nella DDK di Windows corrente. In generale, le responsabilità per i driver di dispositivo sono le seguenti:

  • Driver del bus: i driver del bus sono responsabili dell'enumerazione, della configurazione e del controllo dei dispositivi. Per PCI-PM, il driver PCI è responsabile della lettura dei registri PCI-PM per determinare le funzionalità dell'hardware. Quando power IRP richiede modifiche allo stato di alimentazione, il driver PCI scrive nei registri di risparmio energia PCI per impostare l'hardware su stati Dx diversi.

    Quando un dispositivo è abilitato per la riattivazione, il driver PCI scrive nei registri PCI-PM per consentire al dispositivo di attivare PME (ACPI eseguirà anche un'azione, vedere la sezione successiva). Infine, quando ACPI determina che il bus PCI sta riattivando il sistema, il driver PCI analizza lo spazio di configurazione PCI cercando il dispositivo che asserisce PME, disabilita PME in tale dispositivo e invia una notifica al driver per tale dispositivo.

  • Driver di dispositivo: il driver specifico per il dispositivo è responsabile del salvataggio e del ripristino del contesto del dispositivo e della richiesta di modifiche dello stato di alimentazione come proprietario dei criteri per il dispositivo. Quando il driver di dispositivo riceve un POWER IRP che richiede una modifica dello stato di alimentazione del dispositivo inferiore, il driver di dispositivo è responsabile del salvataggio di qualsiasi contesto di dispositivo proprietario necessario per attivare successivamente il dispositivo. In alcuni casi, potrebbe non esserci nulla da salvare.

I registri PCI-PM sono rigorosamente il dominio del driver PCI: il driver di dispositivo IHV non deve accedere a nessuno di questi registri. In questo modo il sistema non funziona in modo affidabile. La responsabilità del driver di dispositivo è eseguire solo azioni proprietarie.

Integrazione di ACPI e PCI PM

Alcuni dispositivi, in particolare i dispositivi video della scheda madre nei portatili, possono richiedere sia PCI Power Management che ACPI Source Language Assembler (ASL) per gestire completamente il dispositivo. I registri PCI Power Management controllano lo stato interno di un dispositivo, ad esempio orologi interni e piani di alimentazione. ASL controlla lo stato esterno, ad esempio orologi esterni e piani di alimentazione, o nel caso di controller video, ASL controlla i backlight video. Si noti che ASL e PCI-PM possono essere combinati solo nei dispositivi scheda madre.

L'architettura OnNow è un'architettura a più livelli, che gestisce naturalmente l'integrazione del driver di dispositivo, del driver PCI e del driver ACPI (e ASL). Gli scenari seguenti mostrano l'ordine in cui vengono chiamati i driver per gestire questi dispositivi.

Nota

Per il funzionamento degli scenari precedenti come descritto, un driver WDM deve inoltrare correttamente i runtime di integrazione power power come descritto nella versione corrente di Microsoft WDK.

Scenario 1: Disattivazione di un dispositivo

  1. Driver di dispositivo: salva lo stato del dispositivo proprietario.

  2. Driver PCI: salva la configurazione di Plug and Play, disabilita il dispositivo (interrupt e BAR) e inserisce il dispositivo in D3 usando i registri PCI-PM.

  3. Driver ACPI: esegue il codice ASL (_PS3 e _OFF per le risorse di alimentazione non più in uso) per controllare lo stato esterno al chip.

Scenario 2: risparmio energia PCI e driver di dispositivo

  1. Driver ACPI: esegue il codice ASL (_PS0 e _ON per tutte le risorse di alimentazione richieste da OnNow) per controllare lo stato esterno al chip.

  2. Driver PCI: inserisce il dispositivo in D0 usando i registri PCI-PM e ripristina la configurazione di Plug and Play (interrupt e bars), che potrebbero essere diversi da quello in cui era in precedenza il dispositivo.

  3. Driver di dispositivo: ripristina il contesto proprietario nel dispositivo.

Scenario 3: Abilitazione della riattivazione

  1. Driver di dispositivo: imposta i registri proprietari nel chip per abilitare la riattivazione. Ad esempio, nella riattivazione della rete corrispondente ai criteri, si tratta di quando i modelli vengono programmati nella scheda.

  2. Driver PCI: imposta i bit di attivazione attiva nei registri PCI PM per consentire al dispositivo di asserire PME.

  3. Driver ACPI: abilita l'oggetto Criteri di gruppo nel set di chip associato a PME (come descritto dall'oggetto _PRW elencato sotto il bus PCI radice).

Scenario 4: Riattivazione

  1. Driver ACPI: riattiva e analizza i bit di stato gpe per gli eventi di riattivazione, disabilitando gli oggetti Criteri di gruppo per impostare i bit di stato gpe ed eseguendo qualsiasi _Lxx o _Exx metodi associati ai bit dell'oggetto Criteri di gruppo impostati. In risposta a una notifica di riattivazione sul bus PCI, il driver ACPI completerà il driver PCI WAIT_WAKE IRP per notificare al driver PCI che sta svegliando il sistema.

  2. Driver PCI: analizza lo spazio di configurazione cercando qualsiasi dispositivo con un bit di stato PME impostato. Per ogni dispositivo, disabilita PME e completa il WAIT_WAKE IRP per tale dispositivo per informare il driver che sta asserendo la riattivazione. Il driver PCI arresta l'analisi dei dispositivi di riattivazione quando ha eseguito un passaggio completo per tutti i dispositivi PCI che non hanno trovato alcuna pmE asserzione e quando PME smette di essere asserta.

  3. Driver di dispositivo: richiede che il dispositivo venga inserito in D0 (vedere lo scenario 2) e imposta eventuali registri proprietari nel chip necessari per gestire l'evento di riattivazione.

Invito all'azione per il risparmio energia PCI e i driver di dispositivo

  • Integrare le funzionalità ACPI e PCI-PM nei dispositivi, come descritto in questo articolo.

  • La specifica PCI Power Management è disponibile nel sito Web PCI-SIG.

  • Specifica ACPI disponibile all'indirizzo https://www.uefi.org/specifications. Questo collegamento lascia il sito Microsoft.com.

  • Il compilatore ACPI Component Architecture (ACPICA) è disponibile in https://acpica.org/downloads/binary-tools.