Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article précise certaines confusions que les fournisseurs ont expérimenté sur la façon dont le matériel conforme à PCI Power Management (PCI-PM) interagit avec les pilotes de périphérique dans le système d’exploitation et sur la façon dont PCI-PM s’intègre à ACPI. Pour plus d’informations, consultez https://www.uefi.org/specifications
Pilotes de périphérique et gestion de l’alimentation PCI
Cette discussion suppose que vous êtes familiarisé avec la façon dont les pilotes windows Driver Model (WDM) gèrent les événements de gestion de l’alimentation, comme décrit dans le DDK Windows actuel. En général, les responsabilités pour les pilotes de périphérique sont les suivantes :
Pilotes de bus : les pilotes bus sont responsables de l’énumération, de la configuration et du contrôle des appareils. Pour PCI-PM, le pilote PCI est chargé de lire les registres PCI-PM pour déterminer les fonctionnalités du matériel. Lorsque les IRP de puissance demandent des modifications d'états de puissance, le pilote PCI écrit dans les registres de gestion de l’alimentation PCI pour configurer le matériel à différents états Dx.
Lorsqu’un appareil est activé pour le réveil, le pilote PCI écrit dans les registres PCI-PM pour permettre à l’appareil de déclencher PME (ACPI prendra également des mesures, consultez la section suivante). Enfin, lorsque l’ACPI détermine que le bus PCI réveille le système, le pilote PCI analyse l’espace de configuration PCI à la recherche de l’appareil qui affirme PME, désactive PME dans cet appareil et avertit le pilote de ce périphérique.
Pilote de périphérique : le pilote spécifique du périphérique est chargé d’enregistrer et de restaurer le contexte du périphérique et de demander des modifications d’état d’alimentation en tant que propriétaire de la politique du périphérique. Lorsque le pilote de périphérique reçoit un IRP POWER demandant un changement d’état d’alimentation de l’appareil inférieur, le pilote de périphérique est chargé d’enregistrer tout contexte d’appareil propriétaire nécessaire pour activer ultérieurement l’appareil. Dans certains cas, il n'y a peut-être rien à sauvegarder.
Les registres PCI-PM sont strictement du domaine du pilote PCI ; le pilote de périphérique de l'IHV n’a pas besoin d’y accéder. Cela permettrait au système de ne pas fonctionner de manière fiable. La responsabilité du pilote de périphérique est d’effectuer uniquement des actions propriétaires.
Intégration d’ACPI et PCI PM
Certains appareils, en particulier les appareils vidéo de carte mère dans les portables, peuvent nécessiter la gestion de l’alimentation PCI ainsi que l’assembleur de langage source ACPI (ASL) pour gérer complètement l’appareil. Les registres PCI Power Management contrôlent l’état interne d’un appareil, comme les horloges internes et les plans d’alimentation. ASL contrôlerait l’état externe, tel que les horloges externes et les plans d’alimentation, ou dans le cas de contrôleurs vidéo, ASL contrôlerait les rétro-éclairages vidéo. Notez que ASL et PCI-PM ne peuvent être combinés que sur les appareils de carte mère.
L’architecture OnNow est une architecture en couches, qui gère naturellement l’intégration du pilote de périphérique, du pilote PCI et du pilote ACPI (et ASL). Les scénarios suivants montrent l’ordre dans lequel les pilotes sont appelés pour gérer ces appareils.
Pour que les scénarios ci-dessus fonctionnent comme décrit, un pilote WDM doit transférer correctement les IRP de POWER, comme décrit dans la version actuelle du WDK de Microsoft.
Scénario 1 : Désactivation d’un appareil
Pilote de périphérique : enregistre l’état de l’appareil propriétaire.
Pilote PCI : enregistre la configuration plug-and-play, désactive le périphérique (interruptions et BARs) et place le périphérique dans D3 à l’aide des registres PCI-PM.
Pilote ACPI : exécute le code ASL (_PS3 et _OFF pour les ressources d’alimentation qui ne sont plus utilisées) pour contrôler l’état externe à la puce.
Scénario 2 : Gestion de l’alimentation PCI et pilotes de périphérique
Pilote ACPI : exécute le code ASL (_PS0 et _ON pour toutes les ressources d’alimentation requises par OnNow) pour contrôler l’état externe à la puce.
Pilote PCI : place l’appareil dans D0 à l’aide des registres PCI-PM et réinitialise la configuration Plug and Play (interruptions et BARs - qui peuvent être différents de ceux utilisés précédemment par l'appareil).
Pilote de périphérique : restaure le contexte propriétaire dans l’appareil.
Scénario 3 : Activation du réveil
Pilote de périphérique : définit des registres propriétaires dans la puce pour activer le réveil. Par exemple, dans le réveil du réseau par correspondance de motifs, c'est à ce moment que les modèles seraient programmés dans l'adaptateur.
Pilote PCI : définit les bits d'activation du réveil dans les registres PM PCI pour permettre au dispositif d'affirmer PME.
Pilote ACPI : active le GPE dans le jeu de puces associé à PME (comme décrit par l’objet _PRW répertorié sous le bus PCI racine).
Scénario 4 : Réveil
Pilote ACPI : éveille et analyse les bits d’état GPE pour les événements de mise en éveil, désactivant les gpu pour définir les bits d’état GPE et exécutant toutes les méthodes _Lxx ou _Exx associées à des bits GPE définis. En réponse à une notification de réveil sur le bus PCI, le pilote ACPI termine le WAIT_WAKE IRP du pilote PCI pour informer le pilote PCI qu’il réveille le système.
Pilote PCI : analyse l’espace de configuration à la recherche d’appareils avec un bit d’état PME défini. Pour chaque appareil, il désactive PME et termine le WAIT_WAKE IRP pour cet appareil afin d’informer le pilote qu’il affirme le réveil. Le pilote PCI arrête l’analyse des périphériques de mise en veille lorsqu’il a effectué un passage complet de tous les appareils PCI sans avoir trouvé de PME en cours d'affirmation et lorsque le signalement PME cesse.
Pilote de périphérique : demande que l’appareil soit placé dans D0 (voir le scénario 2) et définit les registres propriétaires dans la puce requise pour gérer l’événement de mise en éveil.
Appel à l’action sur la gestion de l’alimentation PCI et les pilotes de périphérique
Intégrez les capacités ACPI et PCI-PM dans vos appareils, comme indiqué dans cet article.
La spécification PCI Power Management est disponible sur le site web PCI-SIG.
Spécification ACPI disponible à l’adresse https://www.uefi.org/specifications. Ce lien laisse le site Microsoft.com.
Le compilateur ACPI Component Architecture (ACPICA) se trouve à l’adresse https://acpica.org/downloads/binary-tools.