Intel Agilex® 7 Hard Processor System Remote System Update User Guide

ID 683184
Date 2/23/2024
Public
Document Table of Contents

D.3. Using LIBRSU Without a Valid SPT or CPB

LIBRSU can also be used when the SPTs or CPBs in flash are corrupted, but with reduced functionality. APIs are provided to restore a saved SPT or CPB, and also to create an empty CPB. After the CPBs ant SPTs are repaired using these APIs, the full LIBRSU functionality is available.

If only one SPT is corrupted, librsu_init API restores it from the good copy. If only one CPB is corrupted, the librsu_init API restores it from the good copy.

If both SPTs are corrupted, the librsu_init is still successful (return code 0) but some of the APIs return the error code ECORRUPTED_SPT when called. Both SPTs being corrupted cause LIBRSU to not be able to identify the location of the CPBs, and the CPBs are also considered as corrupted.

If both CPBs are corrupted, the librsu_init is still successful (return code 0) but some of the APIs return the error code ECORRUPTED_CPB when called.

The table below lists which APIs require valid SPT or valid CPB.
Table 19.  APIs which require valid SPT or CPB
API Requires Valid SPT Requires Valid CPB
librsu_init no no
librsu_exit no no
rsu_slot_count yes no
rsu_slot_by_name yes no
rsu_slot_get_info yes yes
rsu_slot_size yes no
rsu_slot_priority yes yes
rsu_slot_erase yes yes
rsu_slot_program_buf yes yes
rsu_slot_program_factory_update_buf yes yes
rsu_slot_program_file yes yes
rsu_slot_program_factory_update_file yes yes
rsu_slot_program_buf_raw yes no
rsu_slot_program_file_raw yes no
rsu_slot_verify_buf yes yes
rsu_slot_verify_file yes yes
rsu_slot_verify_buf_raw yes no
rsu_slot_verify_file_raw yes no
rsu_slot_copy_to_file yes yes
rsu_slot_enable yes yes
rsu_slot_disable yes yes
rsu_slot_load_after_reboot yes yes
rsu_slot_load_factory_after_reboot yes no
rsu_slot_rename yes no
rsu_slot_delete yes yes
rsu_slot_create yes no
rsu_status_log no no
rsu_status_log no no
rsu_notify no no
rsu_clear_error_status no no
rsu_reset_retry_counter no no
rsu_dcmf_version no no
rsu_max_retry no no
rsu_save_spt yes no
rsu_restore_spt no no
rsu_save_cpb no yes
rsu_create_empty_cpb no no
rsu_restore_cpb no no
rsu_running_factory yes no