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
D.5.1. Operative System Abstraction Layer Data Types
LIBRSU library defines some data types as part of the OS abstraction layer. These types are used along the library source code (from platform/host/include/RSU_OSAL_types.h):
typedef uint64_t RSU_OSAL_U64; /** unsigned 64 bit*/ typedef uint32_t RSU_OSAL_U32; /** unsigned 32 bit*/ typedef uint16_t RSU_OSAL_U16; /** unsigned 16 bit*/ typedef uint8_t RSU_OSAL_U8; /** unsigned 8 bit*/ typedef int64_t RSU_OSAL_S64; /** signed 64 bit*/ typedef int32_t RSU_OSAL_S32; /** signed 32 bit*/ typedef int16_t RSU_OSAL_S16; /** signed 16 bit*/ typedef int8_t RSU_OSAL_S8; /** unsigned 8 bit*/ typedef void RSU_OSAL_VOID; /** void type*/ typedef char RSU_OSAL_CHAR; /** character data type*/ typedef bool RSU_OSAL_BOOL; /** boolean data type*/ typedef int RSU_OSAL_INT; /** integer data type*/ typedef off_t RSU_OSAL_OFFSET; /** data type to denote offset */ typedef size_t RSU_OSAL_SIZE; /** data type to denote size*/ typedef pthread_mutex_t RSU_OSAL_MUTEX; /** mutex object type */ typedef FILE RSU_OSAL_FILE; /** file object type */