XilLoader - 2022.1 Japanese

Versal ACAP システム ソフトウェア開発者向けガイド (UG1304)

Document ID
UG1304
Release Date
2022-04-21
Version
2022.1 Japanese

PDI には、システムにロードする必要のあるすべてのイメージが含まれます。PLM はブート デバイスから PDI を読み出し、これらのイメージをイメージ ヘッダーに基づいて適切なメモリにロードします。

注記: PDI フォーマットの詳細は、ブートおよびコンフィギュレーション の「PDI」のセクションを参照してください。

XilLoader は、各モジュールが PDI 内のイメージをロード/開始/参照するために必要なインターフェイスを提供します。XilLoader は XilSecure (セキュア ブート時)、XilPM (サブシステムの立ち上げ時)、およびブート ドライバー (ブート時) とも相互に通信します。

XilLoader には、次の関数があります。

XLoader_LoadAndStartSubSystemPdi
この関数は、PDI ポインターを入力パラメーターにとります。この API を呼び出すと、PDI イメージ内のイメージがロードされ、PDI 内のハンドオフ情報に基づいてサブシステムが開始されます。この API は、PDI 内のイメージおよびパーティション情報に基づいて PDI ソースから各イメージ パーティションを読み出してロードします。イメージがハンドオフを必要とするかどうかをチェックし、必要なら XilPM API を呼び出してハンドオフを実行します。

イメージは、CDO パーティションまたはサブシステム イメージとすることができます。イメージが CDO パーティションの場合、この API は PLMI 経由で CDO パーサー API を呼び出します。イメージがサブシステムの実行ファイル パーティションの場合、この API はパーティションをそれぞれのサブシステムのメモリへロードします。イメージをロードしたら、この API は PDI から CPI ID とハンドオフ アドレスを読み出し、これらの情報を使用して XilPM API を呼び出します。イメージのロードまたは開始中にエラーが発生した場合、この API は該当するエラー コードを返します。それ以外の場合は、SUCCESS が返されます。

XLoader_RestartImage
PDI の各イメージには、一意の ID があります。この関数はイメージ ID を入力にとり、PDI 内のイメージを特定してそのイメージをリスタートします。この API は、格納されたサブシステム情報をイメージ ID に基づいてブート時に解析し、PDI 内のイメージ番号とパーティション番号を取得します。次に、この API はイメージ パーティションを読み出し、これらをロードします。また、この API はイメージがハンドオフを必要とするかどうかをチェックし、必要なら XilPM API を呼び出します。イメージのリスタート中にエラーが発生した場合、この API は該当するエラー コードを返します。それ以外の場合は、SUCCESS が返されます。

動作シーケンス

ローダーとその他のコンポーネント間で発生する動作シーケンスは次のとおりです。

  1. ブート モードに応じたフラッシュ ドライバーを使用して PDI を読み出します。
  2. イメージ ヘッダーに基づき、ローダーがイメージに関する CPU の詳細を取得します。
  3. ローダーが XilPlmi API を使用して CDO をロードし、XilPM API を使用してプロセッサを開始/停止し、メモリを初期化します。
  4. ローダーが XilSecure を使用して、イメージに対してチェックサム計算、認証、または復号化を実行します。

ブート ドライバー

XilLoader は、次の高レベル ブート デバイス インターフェイス API を実装します。これらを呼び出して、ブート デバイスを初期化し、ブート デバイスから適切なサブシステム メモリへイメージをロードします。これらの API は、必要に応じて内部でドライバー API を呼び出します。

フラッシュ ドライバー
QSPI、OSPI、SD/eMMC ドライバーを使用してフラッシュ デバイスからイメージを読み出します。
PMC DMA
PMC DMA 関連機能のための API。