インテルのみ表示可能 — GUID: jto1540272334080
Ixiasoft
インテルのみ表示可能 — GUID: jto1540272334080
Ixiasoft
3.2.4. アプリケーション・イメージのレイアウト
アプリケーション・イメージは、SDMファームウェアとコンフィグレーション・データで構成されています。コンフィグレーション・データは、最大4つのセクションを含みます。SDMファームウェアには、これらのセクションに対するポインターが含まれています。次の表で示されているのは、アプリケーション・イメージ内のセクション数とセクションポインターの位置です。
オフセット | サイズ (バイト) | 説明 |
---|---|---|
0x1F00 | 4 | セクション数 |
… | ||
0x1F08 | 8 | 最初のセクションのアドレス |
0x1F10 | 8 | 2番目のセクションのアドレス |
0x1F18 | 8 | 3番目のセクションのアドレス |
0x1F20 | 8 | 4番目のセクションのアドレス |
… | ||
0x1FFC | 4 | 0x1000から0x1FFBのCRC32 |
セクションポインターは、フラッシュ内のFPGAイメージの実際の位置と一致させる必要があります。この要件を満たすには、2つのオプションが使用可能です。
- クアッドSPI フラッシュメモリー内の実際の位置に一致させるアプリケーション・イメージを生成することができます。システムによって、適用される更新のセットが異なる場合があるため、このオプションは実用的ではない可能性があります。その結果、新しいアプリケーション・イメージを格納するのに適したスロットが異なる場合があります。
- アドレス0に位置していると仮定してアプリケーション・イメージを生成し、ポインターを更新して実際の位置に一致させることができます。
- インテル® Quartus® PrimeQuartus Prime開発ソフトウェアのバージョン21.1以降では、Use relative addressオプションがデフォルトになります。このオプションは、単一のアプリケーション・ビットストリームを生成するためのものです。開始アドレスを指定する必要はありません。これは、イメージをQSPIフラッシュメモリー内の任意の位置にプログラムできるためです。イメージをロードするには、フラッシュメモリーに格納されているイメージの開始アドレスを正しく指す必要があります。
このオプションをディスエーブルする場合は、Use relative addressチェックボックスをオフにして、フラッシュメモリー内のイメージのStart addressを指定します。詳細については、インテルAgilexコンフィグレーション・ユーザーガイド内のアプリケーション・イメージの生成を参照してください。
- インテル® Quartus® PrimeQuartus Prime開発ソフトウェアのバージョン21.1以降では、Use relative addressオプションがデフォルトになります。このオプションは、単一のアプリケーション・ビットストリームを生成するためのものです。開始アドレスを指定する必要はありません。これは、イメージをQSPIフラッシュメモリー内の任意の位置にプログラムできるためです。イメージをロードするには、フラッシュメモリーに格納されているイメージの開始アドレスを正しく指す必要があります。
HPSを使用してRSUを管理する場合、U-BootクライアントとLIBRSUクライアントの両方は次の手順を実装します。これは、アドレス0をターゲットにしているアプリケーション・イメージを実際の送信先スロットアドレスに再配置するために行われます。
- INITIAL_ADDRESS をターゲットにするアプリケーション・イメージを作成します。
- アプリケーション・イメージのオフセット0xF100から32ビット値を読み出し、セクションの数を特定します。
- <s>= 1 to number_of_sections の場合、
- section_pointer = 0xF100 + (s * 8) から64ビットのセクションポインターを読み出します。
- INITIAL_ADDRESS を section_pointer から引きます。
- NEW_ADDRESS を section_pointer に加えます。
- 更新された section_pointer を格納します。
- アドレス0x1000から0x1FFBのCRC32を再計算します。新しい値をオフセット0x1FFCに格納します。CRC32の値は、次の手順を使用してデータのコピー上で計算する必要があります。
- 各バイトのビットを入れ替え、ビットが逆の順に発生するようにしてCRCを計算します。
- 計算したCRC32の値のバイトを入れ替え、逆の順序で表示されるようにします。
- CRC32の値の各バイトのビットを入れ替えます。
- CRC32の値をフラッシュに書き込みます。
詳細については、アプリケーション・イメージの作成を参照してください。