インテル® Agilex™ ハード・プロセッサー・システム (HPS) のリモート・システム・アップデート・ユーザーガイド

ID 683184
日付 11/10/2021
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

2.4. アプリケーション・イメージのリストの変更

SDMは、コンフィグレーション・ポインター・ブロックを使用して、アプリケーション・イメージの優先度を決定します。

ポインターブロックは、クアッドSPIフラッシュメモリーの次の特性を考慮して動作します。
  • セクター消去では、セクター・フラッシュ・ビットはすべて1になります。
  • プログラム動作では、1を0にしか変換できません。
ポインターブロックには、次の意味を持つ値の配列が含まれています。
  • すべて1 - エントリーは未使用です。クライアントは、このエントリーへのポインターを書き込むことができます。これは、ポインターブロックでクアッドSPI消去動作が発生した後の状態です。
  • すべて0 - エントリーが以前に使用された後、キャンセルされました。
  • 1と0の組み合わせ - アプリケーション・イメージへの有効なポインターです。

コンフィグレーション・ポインター・ブロックが消去されると、すべてのエントリーが未使用としてマークされます。アプリケーション・イメージをリストに追加する場合、クライアントは最初の未使用位置を見つけて、アプリケーション・イメージのアドレスをその位置に書き込みます。リストからアプリケーション・イメージを削除する場合、クライアントはポインター・ブロック・リストでアプリケーション・イメージ・アドレスを見つけて、このアドレスにすべて0を書き込みます。

コンフィグレーション・ポインター・ブロックが新しいアプリケーション・イメージ用のスペースを使い果たした場合、クライアントは次のアクションを実行してポインターブロックを圧縮します。

  1. コンフィグレーションからすべての有効なエントリーを読み出す。
  2. ポインターブロックを消去する。
  3. これまでの有効なエントリーをすべて追加する。
  4. 新しいイメージを追加する。

HPSを使用してRSUを管理する場合、U-BootクライアントとLIBRSUクライアントは両方とも、ブロック圧縮を実装します。FPGAロジックからRSUを駆動するデザインの場合、 Nios® IIコード、スクリプト言語、またはステートマシンなど、さまざまな方法でポインターブロック圧縮を実装できます。

ポインターブロックには最大508の使用可能なエントリーがあるため、ポインターブロックの圧縮は頻繁には発生しません。

コンフィグレーション・ポインター・ブロックには、プライマリー (CPB0) とバックアップ (CPB1) の2つがあります。ブロックが2つあることにより、それらのうちの1つを消去した直後に電源障害が発生した場合でも、アプリケーション・イメージのリストを保護できます。CPBが消去されて再作成されると、ヘッダーが最後に書き込まれます。電源障害が発生した場合の偶発的な使用を防ぐために、CPBヘッダーは使用前にチェックされます。詳細については、コンフィグレーション・ポインター・ブロックのレイアウトのトピックを参照してください。圧縮する場合、クライアントはプライマリーCPBを完全に圧縮 (消去および書き換え) します。プライマリーCPBが有効になったら、セカンダリーCPBを変更しても安全です。書き換え時、CPBの先頭のマジックナンバーは、CPBに書き込まれる最後のワードです。(この数値が書き込まれた後は、イメージ・ポインター・スロットの値のみを変更できます。)

クライアントがアプリケーション・イメージをフラッシュに書き込む際に、最初の署名ブロックのメイン・イメージ・ポインター内のポインターが、フラッシュ内の正しい位置を指すように更新されていることを確認します。HPSを使用してRSUを管理する場合、U-BootクライアントとLIBRSUクライアントの両方が必要なポインター更新を実装します。詳細については、アプリケーション・イメージのレイアウトの項を参照してください。
注: CPB圧縮を正常に実行するには、HPSソフトウェア (U-BootまたはLinux) が32 KB以下のQSPI消去粒度を持つようにコンフィグレーションされている必要があります。より粗い消去粒度 (例えば64 KBなど) でコンフィグレーションされている場合、動作は失敗します。サポートされているすべてのフラッシュデバイスは、4 KB32 KB、および64 KBの消去粒度を提供し、現在のHPSソフトウェアのデフォルトは4 KBです。