インテルのみ表示可能 — GUID: prj1588367402186
Ixiasoft
1. 概要
2. ユースケース
3. クアッドSPIフラッシュのレイアウト
4. インテル® Quartus® Prime開発ソフトウェアとツールのサポート
5. ソフトウェアのサポート
6. フラッシュの破損 - 検出と回復
7. リモート・システム・アップデートの例
8. バージョンの互換性に関する考慮事項
9. HPS先行でのRSUの使用
A. コンフィグレーション・フローの図
B. RSUステータスコードとエラーコード
C. U-Boot RSUリファレンス情報
D. LIBRSUリファレンス情報
E. 組み合わせたアプリケーション・イメージ
15. SoCのリモート・システム・アップデート・ユーザーガイドの改訂履歴
C.6.1. rsu_init
C.6.2. rsu_exit
C.6.3. rsu_slot_count
C.6.4. rsu_slot_by_name
C.6.5. rsu_slot_get_info
C.6.6. rsu_slot_size
C.6.7. rsu_slot_priority
C.6.8. rsu_slot_erase
C.6.9. rsu_slot_program_buf
C.6.10. rsu_slot_program_factory_update_buf
C.6.11. rsu_slot_program_buf_raw
C.6.12. rsu_slot_verify_buf
C.6.13. rsu_slot_verify_buf_raw
C.6.14. rsu_slot_enable
C.6.15. rsu_slot_disable
C.6.16. rsu_slot_load
C.6.17. rsu_slot_load_factory
C.6.18. rsu_slot_rename
C.6.19. rsu_slot_delete
C.6.20. rsu_slot_create
C.6.21. rsu_status_log
C.6.22. rsu_notify
C.6.23. rsu_clear_error_status
C.6.24. rsu_reset_retry_counter
C.6.25. rsu_dcmf_version
C.6.26. rsu_max_retry
C.6.27. rsu_dcmf_status
C.6.28. rsu_create_empty_cpb
C.6.29. rsu_restore_cpb
C.6.30. rsu_save_cpb
C.6.31. rsu_restore_spt
C.6.32. rsu_save_spt
C.6.33. rsu_running_factory
C.7.1. dtb
C.7.2. list
C.7.3. slot_by_name
C.7.4. slot_count
C.7.5. slot_disable
C.7.6. slot_enable
C.7.7. slot_erase
C.7.8. slot_get_info
C.7.9. slot_load
C.7.10. slot_load_factory
C.7.11. slot_priority
C.7.12. slot_program_buf
C.7.13. slot_program_buf_raw
C.7.14. slot_program_factory_update_buf
C.7.15. slot_rename
C.7.16. slot_delete
C.7.17. slot_create
C.7.18. slot_size
C.7.19. slot_verify_buf
C.7.20. slot_verify_buf_raw
C.7.21. status_log
C.7.22. update
C.7.23. notify
C.7.24. clear_error_status
C.7.25. reset_retry_counter
C.7.26. display_dcmf_version
C.7.27. display_dcmf_status
C.7.28. display_max_retry
C.7.29. restore_spt
C.7.30. save_spt
C.7.31. create_empty_cpb
C.7.32. restore_cpb
C.7.33. save_cpb
C.7.34. check_running_factory
D.6.1. librsu_init
D.6.2. librsu_exit
D.6.3. rsu_slot_count
D.6.4. rsu_slot_by_name
D.6.5. rsu_slot_get_info
D.6.6. rsu_slot_size
D.6.7. rsu_slot_priority
D.6.8. rsu_slot_erase
D.6.9. rsu_slot_program_buf
D.6.10. rsu_slot_program_factory_update_buf
D.6.11. rsu_slot_program_file
D.6.12. rsu_slot_program_factory_update_file
D.6.13. rsu_slot_program_buf_raw
D.6.14. rsu_slot_program_file_raw
D.6.15. rsu_slot_verify_buf
D.6.16. rsu_slot_verify_file
D.6.17. rsu_slot_verify_buf_raw
D.6.18. rsu_slot_verify_file_raw
D.6.19. rsu_slot_program_callback
D.6.20. rsu_slot_program_callback_raw
D.6.21. rsu_slot_verify_callback
D.6.22. rsu_slot_verify_callback_raw
D.6.23. rsu_slot_copy_to_file
D.6.24. rsu_slot_enable
D.6.25. rsu_slot_disable
D.6.26. rsu_slot_load_after_reboot
D.6.27. rsu_slot_load_factory_after_reboot
D.6.28. rsu_slot_rename
D.6.29. rsu_slot_delete
D.6.30. rsu_slot_create
D.6.31. rsu_status_log
D.6.32. rsu_notify
D.6.33. rsu_clear_error_status
D.6.34. rsu_reset_retry_counter
D.6.35. rsu_dcmf_version
D.6.36. rsu_max_retry
D.6.37. rsu_dcmf_status
D.6.38. rsu_save_spt
D.6.39. rsu_restore_spt
D.6.40. rsu_save_cpb
D.6.41. rsu_create_empty_cpb
D.6.42. rsu_restore_cpb
D.6.43. rsu_running_factory
D.7.1. count
D.7.2. list
D.7.3. size
D.7.4. priority
D.7.5. enable
D.7.6. disable
D.7.7. request
D.7.8. request-factory
D.7.9. erase
D.7.10. add
D.7.11. add-factory-update
D.7.12. add-raw
D.7.13. verify
D.7.14. verify-raw
D.7.15. copy
D.7.16. log
D.7.17. notify
D.7.18. clear-error-status
D.7.19. reset-retry-counter
D.7.20. display-dcmf-version
D.7.21. display-dcmf-status
D.7.22. display-max-retry
D.7.23. create-slot
D.7.24. delete-slot
D.7.25. restore-spt
D.7.26. save-spt
D.7.27. create-empty-cpb
D.7.28. restore-cpb
D.7.29. save-cpb
D.7.30. check-running-factory
D.7.31. help
インテルのみ表示可能 — GUID: prj1588367402186
Ixiasoft
7.2.5. 初期フラッシュイメージの作成
ファクトリー・イメージとアプリケーション・イメージ、および関連するRSUデータ構造を含む、初期フラッシュイメージを作成します。
- qpfgwコマンドを実行して、Programming File Generatorツールを起動します。
cd $TOP_FOLDER ~/intelFPGA_pro/21.2/nios2eds/nios2_command_shell.sh \ qpfgw &
- Device familyに Intel Agilex を選択し、Configuration modeにActive Serial x4を選択します。
- Nameを「initial_image」に変更します。
- 出力ファイルタイプにJTAG Indirect Configuration File (. jic ) を選択します。これは、 インテル® Quartus® Prime ProgrammerツールがQSPIフラッシュに書き込むために使用する形式です。
- オプションのMemory Map File (.map ) ファイルを選択して、それも生成されるようにします。.map ファイルには、結果のフラッシュレイアウトに関する情報が含まれています。
- オプションのRaw Programming Data File (.rpd ) ファイルを選択して、それも生成されるようにします。このファイルには、他に何も追加されていない、バイナリー・フラッシュ・コンテンツが含まれています。ウィンドウは、次のようになります。
- Raw Programming Data File (.rpd ) ファイルをクリックして選択します。次に、Edit ...ボタンをクリックし、Bitswap オプションを選択して「On」にします。これにより、RPDファイルをU-BootやLinuxなどのHPSソフトウェアで必要に応じて使用できるようになります。
- 出力タイプを選択したら、Input Filesタブをクリックします。
- Input FilesタブでAdd Bitstreamボタンをクリックした後に、$TOP_FOLDER/hw/ghrd.0/output_files ファイルを検索して、ghrd_agfb014r24a3e3vr0.sof ファイルを選択し、Openをクリックします。これは、初期ファクトリー・イメージです。$TOP_FOLDER/hw/ghrd.1/output_files/ghrd_agfb014r24a3e3vr0.sof のイメージについても同様に行います。これは、初期アプリケーション・イメージです。タブは、次のようになります。
- 最初の .sof ファイルをクリックしてから、右側のPropertiesボタンをクリックします。これにより、FSBLを検索し、認証と暗号化設定を選択するためのウィンドウが開きます。
- Bootloader … (Browse) ボタンをクリックし、$TOP_FOLDER/u-boot-socfpga/spl/u-boot-spl-dtb.hex ファイルを選択して、OKをクリックします。
- 2番目の .sof ファイルをクリックして、同じFSBLファイルを追加します。Input Filesタブは、次のようになります。
- Configuration Deviceタブをクリックします。このタブは、Input Filesタブに少なくとも1つの入力ファイルが追加された場合にのみイネーブルになることに注意してください。
- Input Filesタブに複数の入力ファイルが追加されたため、リモート・システム・アップデートのオプションが表示されています。それ以外の場合は、標準のコンフィグレーション・フローのみがイネーブルになります。
- Configuration Deviceタブで、Add Deviceをクリックし、ダイアログ・ボックス・ウィンドウでMT25QU02Gを選択してから、OKをクリックします。それが完了すると、ウィンドウにRSU用のデフォルトの初期パーティションが表示されます。
注: サポートされている別のフラッシュデバイスを使用することもできます。この例では、512Mbのフラッシュスペースしか必要ないためです。 インテル® Quartus® Prime Programmerは、サポートされている別の512 Mb以上のフラッシュが使用された場合にいくつかの警告を表示しますが、この例は機能します。
- FACTORY_IMAGEエントリーを選択し、Edit…ボタンをクリックします。Edit Partitionウィンドウがポップアップします。Input fileにBitstream_1 (ghrd_agfb014r24a3e3vr0.sof) を選択します。Address ModeをBlockに変更します。これは、使用する予定の最大のファクトリー・イメージ用に十分なスペースを残しておく必要があるためです。ファクトリー・イメージ用に7MBを予約するには、End Addressを0x0090FFFFに設定します。この終了アドレスは、BOOT_INFOパーティションの最後に8MBを追加することによって計算されました。OKをクリックします。
注: FACTORY_IMAGEパーティションのPageプロパティーは、常に0に設定する必要があります。これはFACTORY_IMAGEが、すべてのアプリケーション・イメージが失敗した後にのみ再試行できることを意味します。
- Configuration DeviceタブでMT25QU02Gフラッシュデバイスをクリックして選択し、Add Partition…ボタンをクリックしてAdd Partitionウィンドウを開きます。NameをP1のままにして、Input fileにBitstream_2(ghrd_agfb014r24a3e3vr0.sof) を選択します。これが、初期アプリケーション・イメージになります。Pageに1を選択します。 これは、すべてのアプリケーション・イメージの中で最も優先度が高いことを意味します。Address ModeにBlcokを選択し、Start Address = 0x01000000およびEnd Address = 0x01FFFFFFを設定して16MBのデータを割り当てます。
Pageプロパティーは、Programming File Generatorが、コンフィグレーション・ポインター・ブロックにイメージが最初に表示される順序を決定するために使用されます。最も優先度が高いのはPage=1の優先度で、次がPage=2の優先度、と続きます。Programming File Generatorはエラーを発行します。それが発生するのは、同じページ番号のパーティションが複数ある場合、または、Page=1の後にPage=3がありPage=2がないなどの「ギャップ」がある場合です。
最大7つのパーティションまでを、初期フラッシュイメージの作成時にアプリケーション・イメージを含めることができます。この制限による悪影響はありません。通常の作成時には、1つのファクトリー・イメージと1つのアプリケーション・イメージのみが含まれることが予想されるためです。
- 前のステップと同じ手順で、さらに2つのパーティションP2とP3を作成します。ただし、Input fileにNoneを設定し、Pageを変更せずに (空のパーティションでも問題なし)、開始アドレスと終了アドレスを次のように設定します。
- P2: Start Address = 0x02000000およびEnd Address = 0x02FFFFFF
- P3: Start Address = 0x03000000およびEnd Address = 0x03FFFFFF
- Select …をクリックして、Flashローダーを選択します。フラッシュローダーはJICファイルの一部になり、Flash Programmerツールによって使用されます。次に示すように、目的のDevice familyおよびDevice nameを選択します。
Configuration Deviceタブは、次のようになります。
- File > Save As .. をクリックし、ファイルを $TOP_FOLDER/initial_image.pfg として保存します。このファイルは後に、コマンドを使用して初期イメージを再生成する場合に役立ちます。
cd $TOP_FOLDER ~/intelFPGA_pro/21.2/nios2eds/nios2_command_shell.sh \ quartus_pfg -c initial_image.pfg
注: 作成されたpfgファイルは実際にはXMLファイルであり、手動で編集して絶対ファイルパスを相対ファイルパスに置き換えることができます。その他の目的で .pfg ファイルを直接編集することはできません。変更が必要な場合は、Programming File Generatorから .pfg ファイルを開くことができます。 - Generateボタンをクリックして、初期フラッシュイメージを $TOP_FOLDER/initial_image.jic として生成し、マップファイルを $TOP_FOLDER/initial_image_jic.map として生成します。ファイルが正常に生成されたことを示すダイアログボックスが開きます。