次の方法で共有


その他の ACPI 名前空間オブジェクト

一部の特定のクラスのデバイスでは、追加の Advanced Configuration および Power Interface (ACPI) 名前空間オブジェクトが名前空間内のデバイスの下に表示される必要があります。 このセクションでは、SoC ベースのプラットフォームに必要な追加オブジェクトの一覧を示します。

プロセッサ識別オブジェクト

プロセッサは、ACPI 名前空間に列挙する必要があります。 プロセッサは、プラットフォーム上の他のデバイスと同様に、"Device" ステートメントを使用して \_SB で宣言されます。 プロセッサ デバイスには、次のオブジェクトが含まれている必要があります。

  • _HID: ACPI0007
  • _UID: MADT 内のプロセッサのエントリに一致する一意の数値。

ディスプレイ特有のオブジェクト

表示固有のオブジェクトの詳細については、 ACPI 5.0 仕様の付録 B「ビデオ拡張機能」を参照してください。

Display-Specific オブジェクトの要件

メソッド 説明 要件
_DOS 出力切り替えを有効/無効にします。 システムがディスプレイの切り替えまたは LCD の明るさレベルをサポートしている場合に必要です。
アメリカ国防総省 ディスプレイ アダプターに接続されているすべてのデバイスを列挙します。 内蔵コントローラが出力スイッチングをサポートする場合に必要です。
_ROM ROM データを取得します。 ROM イメージが独自の形式で格納されている場合に必要です。
_GPD POST デバイスを取得します。 _VPOが実装されている場合は必須。
_SPD POST デバイスを設定します。 _VPOが実装されている場合は必須。
_VPO ビデオ POST オプション。 システムがポスト VGA デバイスの変更をサポートしている場合に必要です。
ADR このデバイスの一意の ID を返します。 必須。
_BCL サポートされている明るさ制御レベルのクエリ 一覧。 埋め込み LCD が明るさ制御をサポートする場合に必要です。
_BCM 明るさレベルを設定します。 _BCLが実装されている場合は必須。
_DDC このデバイスの EDID を返します。 埋め込み LCD が標準インターフェイス経由の EDID の戻り値をサポートしていない場合に必要です。
_DCS 出力デバイスの状態を返します。 システムが (ホットキーによる) ディスプレイの切り替えをサポートしている場合に必要です。
_DGS グラフィックスの状態を照会します。 システムが (ホットキーによる) ディスプレイの切り替えをサポートしている場合に必要です。
_DSS デバイスの状態セット。 システムが (ホットキーによる) ディスプレイの切り替えをサポートしている場合に必要です。

USB ホスト コントローラーとデバイス

USB ホスト コントローラーは、内部デバイスと外部デバイスを接続するために SoC プラットフォームで使用されます。 Windows には、EHCI または XHCI 仕様に準拠している標準 USB ホスト コントローラー用の受信トレイ ドライバーが含まれています。

SoC ベースのプラットフォームでは、USB ホスト コントローラーを ACPI で列挙できます。 Windows では、互換性のある USB ハードウェアを列挙および構成するときに、次の ACPI 名前空間オブジェクトが使用されます。

  • ベンダー割り当て ACPI 準拠ハードウェア ID (_HID)。

  • 名前空間に USB コントローラーのインスタンスが複数存在する場合 (つまり、同一のデバイス ID オブジェクトを持つ 2 つ以上のノード) が存在する場合は、一意の ID (_UID) オブジェクト。

  • EHCI または XHCI Standard 準拠 USB ホスト コントローラー (EHCI: PNP0D20)、(XHCI: PNP0D10) の互換性 ID (_CID)。

  • USB コントローラーに割り当てられている現在のリソース設定 (_CRS)。 コントローラーのリソースは、適切なハードウェア インターフェイス仕様 (EHCI または XHCI) で説明されています。

USB Device-Specific メソッド (_DSM)

Windows では、USB サブシステムのデバイス クラス固有の構成をサポートする Device-Specific メソッド (_DSM) が定義されています。 詳細については、「 USB Device-Specific メソッド」を参照してください。

USB 統合トランザクション トランスレーター (TT) のサポート (_HRV)

標準の EHCI ホスト コントローラーでは、高速 USB デバイスのみがサポートされます。 SoC プラットフォームでは、Windows は、低速および全速 USB デバイス用の統合トランザクション トランスレーターを実装する EHCI 準拠ホスト コントローラーの 2 つの一般的な設計をサポートしています。 Hardware Revision (_HRV) オブジェクトは、USB ホスト コントローラー ドライバーへの統合 TT サポートの種類を示します。

_HRVは、次の条件に従って設定されます。

  • NoIntegratedTT - _HRV = 0

    標準 EHCI ホスト コントローラーは統合トランザクション トランスレーターを実装せず、_HRV値 0 はこれらのコントローラーでのみ有効です。 これらのコントローラーの_HRV オブジェクトを含める必要はありません。

  • IntegratedTTSpeedInPortSc - _HRV = 1

    統合 TT サポートを有効にします。 このインターフェイスのフレーバーには、PORTSC レジスタ自体に LowSpeed ビットと HiSpeed ビットが含まれます。 これらのビットはそれぞれビット オフセット 26 と 27 にあります。 速度を決定すると、EHCI ドライバーは PORTSC を読み取り、これらのビットから速度情報を抽出します。

  • IntegratedTTSpeedInHostPc - _HRV = 2

    統合 TT サポートを有効にします。 このタイプのインターフェースには、別の HOSTPC レジスタに LowSpeed ビットと HiSpeed ビットが含まれています。 EHCI ドライバーは、ポート速度を決定する必要がある場合、目的のポートに対応する HOSTPC レジスタを読み取り、速度情報を抽出します。

USB XHCI D3cold のサポート

選択的な一時停止に加えて、XHCI コントローラーに接続されている内部 USB デバイスを D3cold 状態にして、使用していない場合は電源をオフにすることができます。 詳細については、「 デバイスの電源管理」を参照してください。 すべての USB デバイス関数ドライバーは、D3cold にオプトインする必要があります。

USB ポート固有のオブジェクト

Windows では、システム上の USB ポートの可視性と接続機能を認識する必要があります。 これは、ポートとデバイスに関する正確な情報をユーザーに提供するために必要です。 この目的には、物理デバイスの場所 (_PLD) と USB ポート機能 (_UPC) の 2 つのオブジェクトが使用されます。 詳細については以下をご覧ください:

SD ホスト コントローラーとデバイス

SD ホスト コントローラーは、ストレージおよび I/O デバイスにアクセスするために SoC プラットフォームで使用されます。 Windows には、SDA 標準ホスト コントローラー ハードウェア用の受信トレイ ドライバーが含まれています。 このドライバーとの互換性を確保するには、SD ホスト コントローラー デバイスが SD アソシエーションの SD ホスト コントローラー仕様に準拠している必要があります。

SoC プラットフォームでは、SD ホスト コントローラーを ACPI で列挙できます。 Windows では、互換性のある SD ハードウェアを列挙および構成するときに、次の ACPI 名前空間オブジェクトが使用されます。

  • ベンダー割り当て ACPI 準拠ハードウェア ID (_HID)。

  • 名前空間に SD コントローラーのインスタンスが複数存在する場合 (つまり、同一のデバイス識別オブジェクトを持つ 2 つ以上のノード) が存在する場合は、一意の ID (_UID) オブジェクト。

  • SDA 標準準拠 SD ホスト コントローラー (PNP0D40) の互換性 ID (_CID)。

  • コントローラーに割り当てられている現在のリソース設定 (_CRS)。 コントローラーのリソースは次のように記述されます。

    • 実装されているすべてのスロットのハードウェア リソースが含まれています。 スロットは、メモリまたは I/O デバイスの SDIO バス上の接続ポイントです。 各スロットは、接続されているデバイスとの通信に使用される、SD ホスト コントローラーの標準のレジスタ セットと割り込みに関連付けられています。 SD ホスト コントローラーは任意の数のスロットを実装できますが、SoC プラットフォームでは通常 1 つだけです。

    • スロット リソースは、スロット番号の順に一覧表示されます (スロット 0 のリソースは最初、スロット 1 のリソースは 2 番目など)。

    • 各スロットについて、リソースは次の順序で一覧表示されます。

      • スロットに設定された SD 標準レジスタのベース アドレス。

      • スロットの SD 標準割り込み。

      • カードの挿入と削除を通知するためのスロットの GPIO 割り込みリソース (標準の SD カード検出インターフェイスがすべての電源状態でサポートされていない場合)。

      • カードが現在スロット内にあるかどうかを読み取るためのスロットの GPIO 入力リソース (標準の SD カード検出インターフェイスがすべての電源状態でサポートされていない場合)。 挿入/削除割り込みと同じピンを使用します。

      • スロット内のカードが書き込み保護されているかどうかを読み取るための 2 つ目の GPIO 入力リソース (標準の SD 書き込み保護インターフェイスがすべての電源状態でサポートされていない場合)。

割り込みは、ウェイク対応である必要があります ("SharedAndWake" または "ExclusiveAndWake" と記述されます)。

埋め込み SD デバイス

SD に接続されたデバイスは、SD バス ドライバーによって列挙されます。 プラットフォームに統合されている SD デバイスも、SD ホスト コントローラーの子として ACPI 名前空間に一覧表示する必要があります。 この要件により、オペレーティング システムは、ACPI オブジェクトによってデバイスに提供されるプラットフォーム固有の属性にバス列挙デバイスを関連付けることができます (たとえば、非リモート化、デバイスの電源状態、GPIO または SPB リソースの使用など)。 この関連付けを行うには、デバイス名前空間には、SDIO バス上のデバイスのアドレスを通信する Address (_ADR) オブジェクトが必要です。 _ADR オブジェクトは整数を返します。

SDIO バスの場合、この整数の値は次のように定義されます。

  • ハイワード – スロット番号 (0 – 最初のスロット)

  • 低ワード – 関数番号 (定義については SD 仕様を参照)。

埋め込み SD デバイス名前空間には、次も含める必要があります。

  • 0 を返す Remove メソッド (_RMV) オブジェクト (デバイスを削除できないことを示します)。

  • デバイスが必要とするサイドバンドリソース (GPIOピンやSPB接続など) が必要な場合に備えての_CRSオブジェクト。

イメージング クラス デバイス (カメラ)

カメラ デバイスは、グラフィックス ドライバーまたは USB によって列挙される場合があります。 どちらの場合も、適切な UI を表示できるように、Windows はカメラの物理的な位置を認識する必要があります。 これを行うには、システムのシャーシに組み込まれており、機械的に固定された方向を持つカメラ デバイスは、ACPI 名前空間に含まれており、物理デバイスの場所 (_PLD) オブジェクトを提供します。 これには次のものが必要です。

  • 列挙デバイス (GPU デバイスまたは USB デバイス) の子 (ネストされたデバイス) として表示されるカメラデバイス。

  • カメラ デバイスは、親デバイスのバス上におけるカメラのアドレスを含む Address (_ADR) オブジェクトを提供します。

    • USB については、次のセクションで 、埋め込み USB デバイスの ACPI 名前空間の階層と_ADR を参照してください。

    • グラフィックスの場合、これは GPU デバイスで提供される _DOD メソッドで指定される識別子です。 詳細については、ACPI 5.0 仕様の付録 B「ビデオ拡張機能」を参照してください。

  • _PLD オブジェクトを提供するカメラ デバイス。

  • カメラ ドライバーで必要なサイドバンド リソース (GPIO 割り込み、I/O 接続、SPB 接続など) がある場合は、これらのリソースに対して_CRS オブジェクトが提供されます。

_PLD オブジェクトでは、 Panel フィールド (ビット 67 から 69)、 Lid フィールド (ビット 66)、 Dock フィールド (ビット 65) が、カメラが取り付けられているサーフェスの値を修正するように設定されます。 その他のフィールドはすべて省略可能です。 タブレットを含むハンドヘルドモバイルデバイスの場合、フロントパネルはディスプレイ画面を保持するものであり、ディスプレイが縦向きで表示されるとき、その原点は左下隅にあります。 この参照を使用して、"Front" はカメラがユーザー (Web カメラ) を表示することを示し、"戻る" はカメラがユーザー (静止カメラまたはビデオ カメラ) から離れて表示されることを示します。 詳細については、 ACPI 5.0 仕様のセクション 6.1.8「_PLD (デバイスの物理的な場所)」を参照してください。

埋め込み USB デバイスの ACPI 名前空間階層と_ADR

ACPI 名前空間に埋め込み USB デバイスを追加する場合、デバイス ノードの階層は、Windows USB ドライバーによって列挙されているデバイスの階層と完全に一致する必要があります。 これは、"接続で表示" モードで Windows デバイス マネージャーを調べることで確認できます。 USB ホスト コントローラーから始まり、埋め込みデバイスまで拡張する階層全体を含める必要があります。 各デバイスのデバイス マネージャーで提供される "Address" プロパティは、ファームウェアがデバイスの_ADRで報告する必要があるアドレスです。

ACPI 5.0 仕様では、USB デバイスのアドレスが次のように定義されています。

USB ルート ハブ: それはホスト コントローラーの唯一の子です。 _ADRが 0 である必要があります。 _ADRの他の子または値は許可されません。

USB ポート: ポート番号 (1 ~ n)

特定のポートに接続されている USB デバイスは、そのポートのアドレスを共有します。

ポートに接続されているデバイスが複合 USB デバイスの場合、複合デバイス内の関数は次のアドレスを使用する必要があります。

複合 USB デバイス内の USB 関数: 複合デバイスが接続されているポートのポート番号と、関数の最初のインターフェイス番号。 (算術加算)。

詳細については、「 内部カメラの位置を識別する」を参照してください。

ASL コードの例

次の ASL コード例では、USB ポート 3 に直接接続されている USB Web カメラについて説明します。

Device (EHCI) {
    ...  // Objects required for EHCI devices
    Device {RHUB) {         // the Root HUB
     Name (_ADR, ZERO)      // Address is always 0.
     Device (CAM0) {          // Camera connected directly to USB
                       //   port number 3 under the Root.
            Name (_ADR, 3)      // Address is the same as the port.
            Method (_PLD, 0, Serialized) {...}
            }  //  End of Camera device
    } // End of Root Hub Device
}  // End of EHCI device

次の ASL コード例では、関数 2 として Web カメラを実装する USB 複合デバイスについて説明します。

Device (EHCI) {
    ...  // Objects required for EHCI devices
    Device {RHUB) {
     Name (_ADR, ZERO)
     Device (CUSB) {        // Composite USB device
                    //   connected to USB port number 3
                    //   under the Root.
            Name (_ADR, 3)      // Address is the same as the port.
            Device (CAM0) { // Camera function within the
                    //   Composite USB device.
                Name (_ADR, 5)  // Camera function has a first
                    //   Interface number of 2, so
                    //   Address is 3 + 2  = 5.
                Method (_PLD, 0, Serialized) {...}
            }  //  End of Camera device
        } // End of Composite USB Device
    } // End of Root Hub Device
}  // End of EHCI device

次の ASL コード例では、I2C 経由で接続された Web カメラについて説明します。

Device (GPU0) {
    ... // Other objects required for graphics devices
    Name (_DOD, Package ()  // Identifies the children of this graphics device.
                // Each integer must be unique within the GPU0 namespace.
                {
                    0x00024321,  // The ID for CAM0. It is a non-VGA
                    //   device, cannot be detected by
                    //   the VGA BIOS, and uses a vendor-
                    //   specific ID format in bits 15:0
                    //   (see the _DOD specification).
                    ...     // Other child device IDs (for
                    //   example, display output ports)
                })
    Device (CAM0) {
        Name (_ADR, 0x00024321) // The identifier for this device
                    //   (Same as in _DOD above)
        Name (_CRS, ResourceTemplate()
            {
            // I2C Resource
            // GPIO interrupt resource(s), if required by
            //   driver
            // GPIO I/O resource(s), if required by driver
                ...
            })
        Method (_PLD, 0, Serialized) {...}
    } // End of CAM0 device
} // End of GPU0 device

HID-over-I2C デバイス

Windows には、ヒューマン インターフェイス デバイス (HID) のクラス ドライバーが含まれています。 このドライバーにより、さまざまな入力デバイス (タッチ パネル、キーボード、マウス、センサーなど) の汎用サポートが可能になります。 SoC プラットフォームでは、HID デバイスを I2C 経由でプラットフォームに接続でき、ACPI によって列挙されます。 Windows での HID クラスのサポートとの互換性のために、次の名前空間オブジェクトが使用されます。

  • ベンダー固有の_HID

  • PNP0C50の_CID

  • _CRSには次のものがあります。

    • デバイスにアクセスするための I2CSerialBusConnection リソース

    • 割り込み用の GpioInt リソース

  • HIDI2C _DSMデバイスの HID 記述子レジスタ アドレスを返すメソッドです。 詳細については、「 HIDI2C Device-Specific メソッド (_DSM)」を参照してください。

ボタンデバイス

SoC プラットフォームの場合、Windows では、ACPI で定義されたコントロール メソッドの電源ボタンと、Windows 互換の 5 ボタン配列の両方がサポートされています。 電源ボタンは、ACPI コントロール メソッドの電源ボタンとして実装されているか、Windows 互換の Button 配列の一部として実装されているかに関係なく、次の処理を行います。

  • オフの場合、プラットフォームの電源がオンになります。

  • 押したままにすると、電源ボタンのオーバーライド イベントが生成されます。 詳細については、ACPI 5.0 仕様のセクション 4.8.2.2.1.3「電源ボタンのオーバーライド」を参照してください。

コントロール メソッドの電源ボタン

クラムシェルデザインや、組み込みまたは接続されたキーボードを備えた他のシステムは、ACPI 5.0仕様のセクション5.6.5におけるGPIO-Signaled ACPIイベントを用いて、ACPIが定義する制御メソッドパワーボタン(ACPI 5.0仕様のセクション4.8.2.2.1.2)を実装します。 電源ボタン デバイスをサポートするために、名前空間は次のとおりです。

  • 電源ボタンの GPIO 割り込みピンを非共有 (排他) GPIO 割り込みリソースとして記述します。

  • 接続されている GPIO コントローラーの_AEI オブジェクト内の電源ボタンの GPIO 割り込みリソースを一覧表示します。

  • GPIO コントローラー デバイスの下に関連付けられたイベント メソッド (Lxx/Exx/EVT) を提供します。 このイベント メソッドは、ボタン イベントが発生したことをオペレーティング システムのコントロール メソッド ボタン ドライバーに通知します。

詳細については、「 Windows 8 タブレットおよびコンバーチブル デバイスのハードウェア ボタン」を参照してください。

Windows 互換のボタン配列

スレートなどのタッチ優先 (キーボードレス) プラットフォームの場合、Windows には 5 つのボタンの配列用の汎用ドライバーが用意されています。 配列内の各ボタンには定義された関数があり (下の一覧の番号付き項目を参照)、特定の "押し続け" ボタンの組み合わせは UI で追加の意味を持ちます。 電源ボタンを押す必要があるボタンの組み合わせは定義されていません。 Windows 系統の受信トレイボタン ドライバーとの互換性を確保するために、Windows 対応の Button Array ACPI デバイスが実装されています。 デバイスは次のように定義されます。

  • 5 つのボタンはそれぞれ、プラットフォーム上の専用の割り込みピンに接続されています。

  • 各割り込みピンは、非共有 (排他) で、エッジトリガー型 (Edge) の割り込みリソースとして構成され、両エッジ (ActiveBoth) で割り込みを発生します。

  • デバイス名前空間には、ベンダー定義の_HIDと、PNP0C40の_CIDが含まれています。

  • _CRS オブジェクト内の GPIO 割り込みリソースは、次の順序で一覧表示されます。

    1. [電源] ボタンに対応する割り込み

      [電源] ボタンはウェイク機能を持つ (ExclusiveAndWake) である必要があります。

    2. [Windows] ボタンに対応する割り込み

      Windows ボタンは、ウェイク対応 (ExclusiveAndWake) である必要があります。

    3. [音量を上げる] ボタンに対応する割り込み

      [音量を上げる] ボタンは、ウェイク対応であってはなりません(Exclusive を使用する必要があります)。

    4. 「音量ダウン」ボタンに対応する割り込み

      [音量を下げる] ボタンは、ウェイク対応であってはなりません (排他を使用する必要があります)。

    5. [回転ロック] ボタンに対応する割り込み(サポートされている場合)

      [回転ロック] ボタンは、ウェイク対応であってはなりません(専用を使用する必要があります)。

詳細については、「 Windows 8 タブレットおよびコンバーチブル デバイスのハードウェア ボタン」を参照してください。

Windows Button UI の進化をサポートするために、Windows では Windows Button Array デバイスの Device-Specific メソッド (_DSM) が定義されています。 詳細については、「 Windows Button Array Device-Specific メソッド (_DSM)」を参照してください

ドックおよびコンバーチブルPCセンシングデバイス

Windows では、ACPI 名前空間で 2 つのセンシング デバイスを使用することで、ドックとコンバーチブル (クラムシェル/タブレット コンボ) がサポートされています。 これらのデバイスは、Windows 受信トレイ ボタン ドライバーでサポートされています。 Button Array デバイスに適用されるのと同じ要件は、次のデバイスにも適用されることに注意してください。

  • GPIO ActiveBoth 割り込みは、(SPB に接続された GPIO コントローラーではなく) SoC 上の GPIO コントローラーに接続する必要があります。

  • GPIO コントローラーは、レベル モードの割り込みと動的極性の再プログラミングをサポートする必要があります。

  • GPIO コントローラー ドライバーでは、 GPIO フレームワーク拡張機能 (GpioClx) によって提供される ActiveBoth エミュレーションを使用する必要があります。

  • アサート状態 ("Docked" または "Converted") がアサートされていないロジックレベルで低い場合、GPIO ドライバースタックの既定の動作をオーバーライドするには、GPIO コントローラーの _DSM メソッドが必要です。 詳細については、「汎用 I/O (GPIO)」トピックの「GPIO コントローラー デバイス」セクションを参照してください。

詳細については、「 Windows 8 タブレットおよびコンバーチブル デバイスのハードウェア ボタン」を参照してください。

ドックセンシング装置

ドック検出装置は、ドックがシステムに取り付けられているか、またはシステムから取り付けられていないときに、システムを中断します。 このモード変更情報は、必要に応じてユーザーの入力と出力のエクスペリエンスを更新するために使用されます。 デバイスの名前空間には次のものが必要です。

  • ベンダー固有の_HID

  • PNP0C70の_CID

  • 1 つの ActiveBoth 割り込みを含む_CRS

    割り込みをウェイク対応にすることはできません。

コンバーチブルPCセンシングデバイス

コンバーチブル PC 検出デバイスは、コンバーチブル PC がタブレットからクラムシェル フォーム ファクターに切り替わると、システムを中断します。 このモード変更情報は、必要に応じてユーザーの入力と出力のエクスペリエンスを更新するために使用されます。 デバイスの名前空間には次のものが必要です。

  • ベンダー固有の_HID

  • PNP0C60の_CID

  • 1つのActiveBoth割り込みを持つ_CRS

    割り込みをウェイク対応にすることはできません。