インテルのみ表示可能 — GUID: jto1540272334080
Ixiasoft
1. 概要
2. 使用例
3. クワッドSPIフラッシュレイアウト
4. インテル® Quartus® Prime開発ソフトウェアおよびツールのサポート
5. ソフトウェアのサポート
6. リモート・システム・アップデートの例
7. バージョンの互換性に関する考慮事項
8. HPS FirstでのRSUの使用
9. 決定ファームウェアのバージョン情報
10. インテルAgilex SoCリモート・システム・アップデート・ユーザーガイドのドキュメント改訂履歴
A. コンフィグレーション・フローの図
B. RSUステータスおよびエラーコード
C. LIBRSUリファレンス情報
D. U-Boot RSUリファレンス情報
C.5.1. librsu_init
C.5.2. librsu_exit
C.5.3. rsu_slot_count
C.5.4. rsu_slot_by_name
C.5.5. rsu_slot_get_info
C.5.6. rsu_slot_size
C.5.7. rsu_slot_priority
C.5.8. rsu_slot_erase
C.5.9. rsu_slot_program_buf
C.5.10. rsu_slot_program_factory_update_buf
C.5.11. rsu_slot_program_file
C.5.12. rsu_slot_program_factory_update_file
C.5.13. rsu_slot_program_buf_raw
C.5.14. rsu_slot_program_file_raw
C.5.15. rsu_slot_verify_buf
C.5.16. rsu_slot_verify_file
C.5.17. rsu_slot_verify_buf_raw
C.5.18. rsu_slot_verify_file_raw
C.5.19. rsu_slot_program_callback
C.5.20. rsu_slot_program_callback_raw
C.5.21. rsu_slot_verify_callback
C.5.22. rsu_slot_verify_callback_raw
C.5.23. rsu_slot_copy_to_file
C.5.24. rsu_slot_enable
C.5.25. rsu_slot_disable
C.5.26. rsu_slot_load_after_reboot
C.5.27. rsu_slot_load_factory_after_reboot
C.5.28. rsu_slot_rename
C.5.29. rsu_slot_status_log
C.5.30. rsu_notify
C.5.31. rsu_clear_error_status
C.5.32. rsu_reset_retry_counter
C.5.33. rsu_dcmf_version
C.6.1. count
C.6.2. list
C.6.3. size
C.6.4. priority
C.6.5. enable
C.6.6. disable
C.6.7. request
C.6.8. request-factory
C.6.9. erase
C.6.10. add
C.6.11. add-factory-update
C.6.12. add-raw
C.6.13. verify
C.6.14. verify-raw
C.6.15. copy
C.6.16. log
C.6.17. notify
C.6.18. clear-error-status
C.6.19. reset-retry-counter
C.6.20. display-dcmf-version
C.6.21. help
D.5.1. rsu_init
D.5.2. rsu_exit
D.5.3. rsu_slot_count
D.5.4. rsu_slot_by_name
D.5.5. rsu_slot_get_info
D.5.6. rsu_lot_size
D.5.7. rsu_slot_priority
D.5.8. rsu_slot_erase
D.5.9. rsu_slot_program_buf
D.5.10. rsu_slot_program_factory_update_buf
D.5.11. rsu_slot_program_buf_raw
D.5.12. rsu_slot_verify_buf
D.5.13. rsu_slot_verify_buf_raw
D.5.14. rsu_slot_enable
D.5.15. rsu_slot_disable
D.5.16. rsu_slot_load
D.5.17. rsu_slot_load_factory
D.5.18. rsu_slot_rename
D.5.19. rsu_status_log
D.5.20. rsu_notify
D.5.21. rsu_clear_error_status
D.5.22. rsu_reset_retry_counter
D.5.23. rsu_dcmf_version
D.6.1. dtb
D.6.2. list
D.6.3. slot_by_name
D.6.4. slot_count
D.6.5. slot_disable
D.6.6. slot_enable
D.6.7. slot_erase
D.6.8. slot_get_info
D.6.9. slot_load
D.6.10. slot_load_factory
D.6.11. slot_priority
D.6.12. slot_program_buf
D.6.13. slot_program_buf_raw
D.6.14. slot_program_factory_update_buf
D.6.15. slot_rename
D.6.16. slot_size
D.6.17. slot_verify_buf
D.6.18. slot_verify_buf_raw
D.6.19. status_log
D.6.20. update
D.6.21. notify
D.6.22. clear_error_status
D.6.23. reset_retry_counter
D.6.24. display_dcmf_version
インテルのみ表示可能 — 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に位置していると仮定してアプリケーション・イメージを生成し、その後実際の位置に一致するようにポインターを更新することができます。
HPSを使用してRSUを管理する場合、U-BootクライアントおよびLIBRSUクライアントの両方は以下の手順を実装し、アドレス0をターゲットにしているアプリケーション・イメージを実際の送信先スロットアドレスに再配置します。
INITIAL_ADDRESS 用に作成されたアプリケーション・イメージから NEW_ADDRESS にポインターを更新する手順は次のとおりです。
- INITIAL_ADDRESS をターゲットにするアプリケーション・イメージを作成します。
- アプリケーション・イメージのオフセット0xF100から32ビット値を読み出し、セクションの数を特定します。
- <s>= 1 to number_of_sections の場合、
- section_pointer = 0xF100 + (s * 8) から64ビットのセクションポインターを読み出します。
- section_pointer から INITIAL_ADDRESS を引きます。
- NEW_ADDRESS を section_pointer に加えます。
- 更新された section_pointer を格納します。
- アドレス0x1000から0x1FFBのCRC32を再計算します。新しい値をオフセット0x1FFCに格納します。CRC32の値は、次の手順を使用してデータのコピー上で計算する必要があります。
- 各バイトのビットを入れ替え、ビットが逆の順に発生するようにしてCRCを計算します。
- 計算したCRC32の値のバイトを入れ替え、逆の順序で表示されるようにします。
- CRC32の値の各バイトのビットを入れ替えます。
- CRC32の値をフラッシュに書き込みます。
注: ファクトリー・アップデート・イメージの形式は異なります。ポインター・アップデートには異なる手順が必要です。HPSを使用してRSUを管理する場合、U-BootクライアントおよびLIBRSUクライアントの両方が、ファクトリー・アップデート・イメージを再配置するためにこの手順を実装します。