インテルのみ表示可能 — GUID: elq1540272320025
Ixiasoft
インテルのみ表示可能 — GUID: elq1540272320025
Ixiasoft
2.4. アプリケーション・イメージのリストの変更
工場出荷時の直接フォールバック オプションが有効になっていない場合、SDM はコンフィグレーション・ポインター ブロックを使用してアプリケーション・イメージの優先順位を決定します。ダイレクト ファクトリー・イメージ フォールバック オプションが有効になっている場合、コンフィグレーション・ポインター ブロック内の最初のアプリケーション・イメージのみが試行され、それが失敗した場合はファクトリー・イメージがロードされます。
- セクタ消去では、すべてのセクタ フラッシュ ビットが 1 になります。
- プログラム操作では、1 を 0 に変えることしかできません。
- すべて 1 – エントリは未使用です。クライアントは、このエントリへのポインタを書き込むことができます。これは、クワッド SPI 消去操作がポインター ブロックで発生した後の状態です。
- すべて 0 – エントリは以前に使用され、その後キャンセルされました。
- 1 と 0 の組み合わせ - アプリケーション・イメージへの有効なポインター。
コンフィグレーション・ポインタ ブロックが消去されると、すべてのエントリは未使用としてマークされます。アプリケーション・イメージをリストに追加するには、クライアントは最初の未使用の場所を見つけて、アプリケーション・イメージのアドレスをこの場所に書き込みます。リストからアプリケーション・イメージを削除するには、クライアントはポインタ ブロック リストでアプリケーション・イメージのアドレスを見つけ、このアドレスにすべて 0 を書き込みます。
コンフィグレーション・ポインター ブロックで新しいアプリケーション・イメージ用のスペースが不足した場合、クライアントは次のアクションを実行してポインター ブロックを圧縮します。
- 設定から有効なエントリをすべて読み取ります。
- ポインタブロックを消去する
- 以前に有効だったエントリをすべて追加します
- 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 に書き込まれる最後のワードになります。この番号を書き込んだ後は、イメージ ポインター スロットの値のみを変更できます。