Partager via


Utilisation d’ACPI pour configurer des ports USB sur un ordinateur

Si le système nécessite des modifications du BIOS ACPI pour refléter avec précision la configuration du port USB, vous devez tenir compte de la capacité de l’utilisateur à connecter un appareil au port lorsque vous configurez le port.

Si vous utilisez ACPI pour spécifier la configuration d’un port USB, vous devez définir les objets de fonctionnalités de port USB (_UPC) et de description de l’emplacement physique (_PLD). Bien que la spécification ACPI 6.0 n’interdise pas spécifiquement l’utilisation de l’objet _UPC uniquement, l’utilisation des deux objets indique plus précisément la capacité de l’utilisateur à connecter des appareils au port. L’utilisation uniquement de l’objet _UPC risque de ne pas définir le regroupement de conteneurs d’appareils correctement ou comme prévu.

Les appareils attachés au port sont amovibles du hub si le bit DeviceRemovable est défini. Le tableau suivant montre comment les valeurs des objets ACPI pour un port donné affectent la valeur du descripteur de hub USB DeviceRemovable bit que Windows signale pour l’appareil.

État du port USB Exemple _UPC. Octet PortIsConnectable _PLD. Bit UserVisible (bit 64) DeviceRemovable Bit Value résultante

Le port est visible et l’utilisateur peut connecter et déconnecter librement des appareils.

Le port est exposé sur la face d’un panneau sur l’ordinateur qui est visible par l’utilisateur.

Set (0xFF)

Set (1)

Définissez

Le port est masqué ou interne et l’utilisateur ne peut pas connecter et déconnecter librement les appareils.

Le port est directement câblé à un appareil intégré, tel qu’une webcam d’ordinateur portable ou un hub USB interne.

Set (0xFF)

Désactivé

Désactivé

Le port est implémenté physiquement par le contrôleur hôte USB, mais il n’est pas utilisé.

Port est un port excédentaire qui n’est pas connecté à un terminal de prise de port ou à un appareil intégré.

Effacé (0x00)

Effacer

Désactivé

Note Il s’agit d’une configuration non valide pour définir un port comme non connectable, mais visible par l’utilisateur.

Les exemples suivants montrent le langage source ACPI (ASL) correctement formé qui illustre l’utilisation des objets _UPC et _PLD pour décrire un port USB :

  • Pour spécifier un port interne (non visible par l’utilisateur) et pouvant être connecté à un appareil intégré, le _UPC. L’octet PortIsConnectable doit être défini sur 0xFF et le _PLD. Le bit UserVisible doit être défini sur 0.

    Dans l’exemple suivant, l’appareil est regroupé avec le conteneur d’appareils de l’ordinateur.

    Name(_UPC, Package(){
        0xFF,         // Port is connectable
        0xFF,         // Connector type (N/A for non-visible ports)
        0x00000000,   // Reserved 0, must be zero
        0x00000000})  // Reserved 1, must be zero
    
    Name(_PLD, Buffer(0x10){
        0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
    
  • Pour spécifier un port externe (visible par l’utilisateur) qui peut être connecté à un appareil externe, le _UPC. L’octet PortIsConnectable doit être défini sur 0xFF et le _PLD. Le bit UserVisible doit avoir la valeur 1. _UPC. L’octet PortConnectorType doit être défini sur le type de connecteur USB approprié, comme spécifié dans la section 9.13 de la spécification ACPI 3.0.

    Dans l’exemple suivant, un nouveau conteneur d’appareils est affecté à l’appareil et s’affiche en tant qu’appareil physique distinct.

    Name(_UPC, Package(){
        0xFF,         // Port is connectable
        0x00,         // Connector type, Type 'A' in this case
        0x00000000,   // Reserved 0, must be zero
        0x00000000})  // Reserved 1, must be zero
    
    Name(_PLD, Buffer(0x10){
        0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
    

Un connecteur USB Type-C doit être correctement décrit dans ACPI afin de réussir le test du kit de laboratoire de validation DE l’ACPI USB Type-C .

Exemple _UPC pour un connecteur USB Type-C :

      Name(_UPC, Package(4){
        0x01,                       // Port is connectable
        0x09,                       // Connector type: Type C connector - USB2 and SS with Switch
        0x00000000,                 // Reserved0 – must be zero
        0x00000000})                // Reserved1 – must be zero

Pour plus d’informations sur l’interface ACPI 6.0, consultez Advanced Configuration and Power Interface Specification Revision 6.0.