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.1.2. Enabling HPS Watchdog to Trigger RSU
The tool offers the option of selecting what happens when you enable an HPS watchdog, but do not service it, and produces an HPS reset. The option is available as an HPS component property in Platform Designer, as shown in the following image.
Figure 7. Enabling HPS Watchdog to Trigger RSU
When the highlighted option is selected and an HPS watchdog is enabled and times outbecause it is not serviced, the SDM considers the current application image as a failure. The SDM then tries to load the next application image in the configuration pointer block, or the factory image if all application images fail. When the factory image also fails to configure, the SDM clears the FPGA and HPS and the device remains not configured.
Enabling the HPS watchdog flow:
- You select the desired watchdog behavior in the Quartus® Prime project used to create the factory image SOF.
- Then the Quartus® Prime Programming File Generator takes the setting from the factory SOF file, and stores it in the decision firmware data section.
- The decision firmware then uses the data from that section to implement the selected behavior.
Note: The behavior can be changed through RSU by updating the factory image using a SOF with a different setting.