インテルのみ表示可能 — GUID: elq1540272320025
Ixiasoft
インテルのみ表示可能 — GUID: elq1540272320025
Ixiasoft
5.4.2.4. アプリケーション・イメージ・リストの変更
SDMは、コンフィグレーション・ポインター・ブロックを使用して、アプリケーション・イメージの優先順位を特定します。
- セクター消去では、セクター・フラッシュ・ビットはすべて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クライアントはどちらも、必要なポインターの更新を実装します。詳細については、アプリケーション・イメージのレイアウトの内容を参照してください。