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

ID 683184
日付 6/09/2023
Public
ドキュメント目次

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

工場出荷時の直接フォールバック オプションが有効になっていない場合、SDM はコンフィグレーション・ポインター ブロックを使用してアプリケーション・イメージの優先順位を決定します。ダイレクト ファクトリー・イメージ フォールバック オプションが有効になっている場合、コンフィグレーション・ポインター ブロック内の最初のアプリケーション・イメージのみが試行され、それが失敗した場合はファクトリー・イメージがロードされます。

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

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

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

  1. 設定から有効なエントリをすべて読み取ります。
  2. ポインタブロックを消去する
  3. 以前に有効だったエントリをすべて追加します
  4. Add the address of the new image

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

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

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

クライアントがアプリケーション・イメージをフラッシュに書き込むとき、最初の署名ブロックのメイン イメージ ポインタ内のポインタがフラッシュ内の正しい場所を指すように更新されるようにします。 HPS を使用して RSU を管理する場合、U-Boot クライアントと LIBRSU クライアントの両方が必要なポインターの更新を実装します。 詳細については、を参照してください。 アプリケーション画像のレイアウト セクション。
注: SPT および CPB を正常に更新するには、CPB および SPT サイズ以下の最小 QSPI 消去粒度をサポートするように HPS ソフトウェア (U-Boot または Linux) を構成する必要があります。サポートされているすべてのフラッシュ・デバイスは、次の消去粒度を提供します。 4KB32KB、 そして 64KB。 HPS ソフトウェアは通常、次のいずれかで構成されます。 4KB または 64KB 粒度を消去します。 HPS ソフトウェアが次のように構成されている場合 64KB 消去粒度を設定するには、CPB および SPT サイズを Programming File Generator で設定する必要があります。 64KB デフォルトの代わりに 32KB