Hard Processor System Remote System Update User Guide: Agilex™ 5 SoCs
ID
852610
Date
4/18/2025
Public
1. Overview
2. Use Cases
3. Quad SPI Flash Layout
4. Quartus® Prime Software and Tool Support
5. Software Support
6. Flash Corruption - Detection and Recovery
7. Remote System Update Example
8. Version Compatibility Considerations
9. Revision History for the Hard Processor System Remote System Update User Guide: Agilex™ 5 SoCs
A. Configuration Flow Diagrams
B. RSU Status and Error Codes
C. U-Boot RSU Reference Information
D. LIBRSU Reference Information
E. Combined Application Images
2.1. Manufacturing
2.2. Application Image Boot
2.3. Factory Image Boot
2.4. Modifying the List of Application Images
2.5. Querying RSU Status
2.6. Loading a Specific Image
2.7. Protected Access to Flash
2.8. Remote System Update Watchdog
2.9. RSU Notify
2.10. Updating the Factory Image
2.11. Updating the Decision Firmware
2.12. Retrying when Configuration Fails
2.13. Querying the Decision Firmware Version
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. rsu_slot_priority
D.6.2. rsu_slot_erase
D.6.3. rsu_slot_program_buf
D.6.4. rsu_slot_program_factory_update_buf
D.6.5. rsu_slot_program_file
D.6.6. rsu_slot_program_factory_update_file
D.6.7. rsu_slot_program_buf_raw
D.6.8. rsu_slot_program_file_raw
D.6.9. rsu_slot_verify_buf
D.6.10. rsu_slot_verify_file
D.6.11. rsu_slot_verify_buf_raw
D.6.12. rsu_slot_verify_file_raw
D.6.13. rsu_slot_program_callback
D.6.14. rsu_slot_program_callback_raw
D.6.15. rsu_slot_verify_callback
D.6.16. rsu_slot_verify_callback_raw
D.6.17. rsu_slot_copy_to_file
D.6.18. rsu_slot_enable
D.6.19. rsu_slot_disable
D.6.20. rsu_slot_load_after_reboot
D.6.21. rsu_slot_load_factory_after_reboot
D.6.22. rsu_slot_rename
D.6.23. rsu_slot_delete
D.6.24. rsu_slot_create
D.6.25. rsu_status_log
D.6.26. rsu_notify
D.6.27. rsu_clear_error_status
D.6.28. rsu_reset_retry_counter
D.6.29. rsu_dcmf_version
D.6.30. rsu_max_retry
D.6.31. rsu_dcmf_status
D.6.32. rsu_save_spt
D.6.33. rsu_restore_spt
D.6.34. rsu_save_cpb
D.6.35. rsu_create_empty_cpb
D.6.36. rsu_restore_cpb
D.6.37. 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
4.2.3.4. Creating Decision Firmware Update Images
The following command is used to create decision firmware update images in HPS boot first mode:
quartus_pfg -c \ factory_design.sof \ decision_update.rpd \ -o hps_path=fsbl.hex \ -o mode=ASX4 \ -o bitswap=ON \ -o rsu_upgrade=ON \ -o firmware_only=ON \ -o hps=1 \ -o factory_fallback=ON
The following table describes the parameters.
Parameter | Description |
---|---|
factory_design.sof | Input SOF file, which contains the FPGA design with the parameters for the decision firmware data |
decision_update.rpd | Output decision firmware update image |
-o hps_path=fsbl.hex | Input HPS FSBL hex binary file, ignored |
-o mode=ASX4 | Create image targeting QSPI |
-o bitswap=ON | Create file in regular binary format |
-o rsu_upgrade=ON | Select factory upgrade image |
-o firmware_only=ON | Select to upgrade just decision firmware |
-o hps=1 | Use only for HPS boot first designs |
-o factory_fallback=ON | Optional, use to enable direct factory fallback |
For the FPGA configuration first case, omit the -o hps=1 parameter to create the factory_update.rpd file.
For the HPS boot first case, pass the -o hps=1 parameter to create following two files:
- decision_update.hps.rpd—contains the decision firmware update image
- decision_update.core.rbf—corresponding fabric configuration file (to be discarded)
The optional -o factory_fallback=ON parameter enables direct factory fallback for all configuration failures.