Visible to Intel only — GUID: mvw1660705574803
Ixiasoft
1.1. Release Information
1.2. Device Family Support
1.3. Parameters
1.4. Mailbox Client Intel® FPGA IP Core Interface Signals
1.5. Mailbox Client Intel FPGA IP Avalon® Memory-Mapped Interface
1.6. Commands and Responses
1.7. Specifying the Command and Response FIFO Depths
1.8. Enabling Cryptographic Services
1.9. Using the Intel® FPGA IP
1.10. Accessing Quad SPI Flash Mailbox Client Intel FPGA IP Core Use Case Examples
1.11. Nios® II and Nios® V Processors HAL Driver
1.12. Mailbox Client Intel FPGA IP User Guide Archives
1.13. Document Revision History for the Mailbox Client Intel® FPGA IP User Guide
Visible to Intel only — GUID: mvw1660705574803
Ixiasoft
1.11.2.3. Using LibRSU HAL API without Valid SPT or CPB
You can use the LibRSU HAL APIs when the SPTs or CPBs in flash are corrupted, but with reduced functionality. Intel provides specialized APIs to restore a saved SPT or CPB, and also to create an empty CPB. After the CPBs and SPTs are repaired using these APIs, the full RSU functionality is available.
Data Corruption | Impact |
---|---|
Single SPT or Single CPB | The librsu_init function restores it from the good copy. |
Both SPTs | The librsu_init is still successful (return code 0) but some of the functions returns the error code ECORRUPTED_SPT when called. Both SPTs being corrupted cause librsu_init to not be able to identify the location of the CPBs, and the CPBs is also considered as corrupted. |
Both CPBs | The librsu_init is still successful (return code 0) but some of the functions returns the error code ECORRUPTED_CPB when called. |
Note: When the processor implements the Functions, the processor needs to call the function librsu_init at the beginning of the whole application, and ends with librsu_exit This is not necessary for RSU Client API.
The table below lists which APIs require valid SPT or CPB.
Functions | Requires Valid SPT | Requires Valid CPB |
---|---|---|
librsu_init | ||
librsu_exit | ||
rsu_slot_count | Yes | |
rsu_slot_by_name | Yes | |
rsu_slot_get_info | Yes | Yes |
rsu_slot_size | Yes | |
rsu_slot_priority | Yes | Yes |
rsu_slot_erase | Yes | Yes |
rsu_slot_program_buf | Yes | Yes |
rsu_slot_verify_buf | Yes | Yes |
rsu_slot_program_callback | Yes | Yes |
rsu_slot_verify_callback | Yes | Yes |
rsu_slot_copy_to_buf | Yes | Yes |
rsu_slot_enable | Yes | Yes |
rsu_slot_disable | Yes | Yes |
rsu_slot_load | Yes | Yes |
rsu_slot_load_factory | Yes | |
rsu_slot_rename | Yes | |
rsu_slot_delete | Yes | Yes |
rsu_slot_create | Yes | |
rsu_status_log | ||
rsu_clear_error_status | ||
rsu_dcmf_version | ||
rsu_max_retry | ||
rsu_dcmf_status | ||
rsu_create_empty_cpb | ||
rsu_restore_cpb | ||
rsu_save_cpb | Yes | |
rsu_restore_spt | ||
rsu_save_spt | Yes | |
rsu_running_factory | Yes |