インテル® Stratix® 10コンフィグレーション・ユーザーガイド

ID 683762
日付 12/16/2019
Public
ドキュメント目次

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

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

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

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

コンフィグレーション・ポインター・ブロックに新しいアプリケーション・イメージ用のスペースがなくなった場合、クライアントは次の作業を完了することでポインターブロックを圧縮します。

  • ポインターブロックの消去
  • これまでの有効なエントリーをすべてコピー
  • 新しいイメージの追加

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

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

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

クライアントがアプリケーション・イメージをフラッシュに書き込むと、最初の署名ブロックのメイン・イメージ・ポインター内のポインターが、フラッシュ内の正しい位置を指すように更新されます。HPSを使用してRSUを管理している場合、U-BootクライアントとLIBRSUクライアントはどちらも、必要なポインターの更新を実装します。詳細については、アプリケーション・イメージのレイアウトの内容を参照してください。