Mailbox Client Intel® FPGA IPs User Guide

ID 683290
Date 7/08/2024
Public
Document Table of Contents

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.

Table 28.  LibRSU HAL API without valid SPT or CPB
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.

Table 29.  Functions which 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