デバイス要求のパーミッションの設定 - 2023.2 日本語

Versal アダプティブ SoC システム ソフトウェア開発者向けガイド (UG1304)

Document ID
UG1304
Release Date
2023-10-18
Version
2023.2 日本語

PLM は、デバイスを要求するサブシステムに対してパーミッションをチェックします。Vivado ツールでサブシステムを作成する際には、1 つのペリフェラルを複数のサブシステムに割り当てることも、1 つのサブシステムに割り当てることもできます。この情報は PMC CDO にエクスポートされ、デバイスの要求に対するアクセスは、CDO のこの情報に基づいて許可されます。デフォルトでは、このパーミッションはすべてのサブシステムで共通のため、1 つのデバイスを複数のサブシステムが要求できます。例外はクロック、リセットおよび電源操作で、これらはリソースを要求するサブシステムが 1 つしか存在しない場合のみ許可されます。

注記: いずれのサブシステムも、自分自身のデバイス、および XPm_RequestNode() を使用して要求したデバイスの初期化がすべて完了したら、XPm_InitFinalize() API を呼び出す必要があります。そうしないと、PLM はどのデバイスもパワーダウンしません。

次に、PM API を使用してデバイスを管理する場合の理想的な呼び出しシーケンスを示します。

  1. 必要なすべてのデバイスに対して XPm_RequestNode() を呼び出す。
  2. デバイスを初期化する。
  3. XPM_InitFinalize() を呼び出して、必要なすべてのデバイスが要求され、初期化されたことを PLM に通知する。

XPm_InitFinalize() を呼び出す前に XPm_RequestNode() を呼び出すことは必須ではありません。XPm_RequestNode() の前に XPm_InitFinalize() を呼び出した場合、PLM はそのデバイスをパワーダウンします (初期状態はパワーオン)。XPm_InitFinalize() の後に XPm_RequestNode() を呼び出した場合、PLM はそのデバイスをパワーアップします。

一部のデバイス初期化は、CDO によって実行されます。したがって、XPm_RequestNode() の前に XPm_InitFinalize() を呼び出した場合、デバイスがまずパワーダウンした後に再びパワーアップするため、初期化が失われる可能性があります。必要なデバイスをすべて要求したら、XPm_InitFinalize() を呼び出すことを推奨します。そうしないと、もう一度初期化が必要になります。

XPm_ReleaseNode() を呼び出す際は、デバイスがパワーダウンして初期化コンフィギュレーションが失われることがある点に注意してください。