次の方法で共有


ACPI 名前空間の階層

ACPI名前空間階層は、プロセッサのシステムバス("_SB")で始まる、プラットフォームのハードウェアトポロジを正確にモデル化する必要があります。 一般に、バスまたはコントローラーに接続するデバイスは、名前空間内のそのバスまたはコントローラーデバイスの子として表示されます。

次の規則は、SoCベースのプラットフォームに具体的に適用されます。

  • メモリにマップされた機能ブロック (プロセッサを含む) は、_SBノードの下に直接表示されます。

  • 単純な周辺機器バス (SPB) コントローラーやGPIOコントローラーの組み合わせに接続する周辺機器は、接続リソースとしてこれらのコントローラーへの接続を記述します。 詳細については 汎用i/o (GPIO)単純な周辺機器バス (SPB) 」 を参照してください。

    この方法で接続されている周辺機器は、_SBノードの下、または親SPBまたはGPIOコントローラーの下に直接表示される場合があります。 後者は、可能であれば、リレーションシップを検出するためにリソースのデコードを必要とするのではなく、名前空間自体に直接デバイスのリレーションシップを示すため、推奨されます。

  • ハードウェア列挙(SDIOやUSBなど)をサポートする標準バスを介して接続されている機能ブロックまたは周辺機器は、名前空間に表示される必要はありません。

    ただし、特定の場合は、名前空間の親コントローラーの下にこのようなデバイスを含める必要があります。 たとえば、これは、プラットフォーム固有の (非標準) コントロール(たとえば、電源スイッチ、GPIOまたはSPB接続など)がシステム設計の一部としてデバイスに関連付けられている、埋め込みUSB HSICまたはSDIOデバイスで必要です。 この場合、標準の親バスドライバーはデバイスを列挙しますが Windows ACPIドライバーであるAcpi.sysは、必要に応じて、バスドライバーの代わりに非標準のコントロールの制御メソッドを呼び出すために、デバイススタックにフィルターとして読み込まれます。

  • 1つの関数ドライバー(たとえば、オーディオドライバー)の使用専用の"プライベート"バスまたはデバイス(たとえば、I2S)は、名前空間に表示される必要はありません。 ただし、この場合、デバイスによって使用されるすべてのシステムリソースは、名前空間の関数デバイスのリソース一覧に表示される必要があります。 詳細については 「デバイス管理名前空間オブジェクト」「デバイス構成オブジェクト」 セクションを参照してください。

ACPIでは、多くの標準の名前空間オブジェクトとメソッドが定義されていますが、実装者は必要に応じて新しいものを定義できます。 ACPIで定義されたオブジェクトとメソッドは、次のような一般的なオペレーティングシステム関数に使用されます。

プラットフォームの説明 たとえば、デバイスidとシステムリソースの割り当てなどです。

汎用デバイスコントロール たとえば、リソースを構成し、電源リソースを制御します。

クラス固有の機能コントロール たとえば、ディスプレイを暗くしたり、バッテリの状態を報告したりします。