OpenAMP - 2024.2 日本語 - UG1304

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

Document ID
UG1304
Release Date
2024-12-13
Version
2024.2 日本語

AMD はオープンソース プロジェクトの OpenAMP に参加しています。OpenAMP は、APU と RPU の通信をサポートします。この通信パスは、Versal デバイス全体を使用するために必要な基本機能を提供します。たとえば、OpenAMP を使用することで APU は必要に応じて RPU ソフトウェアをロードまたはアンロードしたり、RPU をリセットできます。

OpenAMP フレームワークは、AMP システム用ソフトウェア アプリケーションの開発に必要なソフトウェア コンポーネントを提供します。このフレームワークの主な機能は、次のとおりです。

  • リモート コンピューティング リソースおよび関連するソフトウェア コンテキストの管理に使用される、ライフ サイクル管理機能とプロセッサ間通信機能。
  • RTOS およびベアメタル ソフトウェア環境で利用可能なスタンドアロン ライブラリ。
  • Linux remoteproc および RPMsg アップストリーム コンポーネントとの互換性。

OpenAMP フレームワークは、次の構成をサポートします。

  • Linux マスター/汎用 (ベアメタル) リモート
  • 汎用 (ベアメタル) マスター/Linux リモート
  • 汎用 (ベアメタル) マスター/汎用 (ベアメタル) リモート

プロキシ インフラストラクチャおよび付属のデモでは、ベアメタル ベースのリモート コンテキストからの printf、scanf、open、close、read、および write 呼び出しをマスター上のプロキシで処理する方法を示しています。

強化されたシステム管理や高レベルの通信 API など、より高度な機能が必要な場合は、OpenAMP コミュニティ プロジェクトでAMD SoC などをターゲットとした有用なコンテンツが見つかることがあります。

OpenAMP フレームワークには次のようなメカニズムが用意されています。

  • ファームウェアのロードとアンロード
  • 標準 API を使用したアプリケーション間通信

    次の図に、Versal デバイス上の OpenAMP アーキテクチャの例を示します。

    この例では、APU 上で動作する Linux アプリケーションが RPMsg プロトコルを利用して RPU と通信します。Linux アプリケーションは、Remoteproc フレームワークにより RPU に対してアプリケーションをロードおよびアンロードできます。これにより、開発者は必要に応じて各種の専用アルゴリズムを RPU の各プロセッシング エンジンにロードし、非常に確定的な性能を得ることができます。このアーキテクチャは SMP モードと AMP モードを組み合わせて使用していることに注意してください。

図 1. OpenAMP フレームワークを使用した SMP + AMP の例

詳細は、こちらのページで説明している デバイスで OpenAMP システムを使用するガイダンスを参照してください。