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

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

C.3. Using U-Boot RSU Without a Valid SPT or CPB

The U-Boot RSU APIs and commands can also be used when the SPTs or CPBs in flash are corrupted, but with reduced functionality. APIs and commands 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 RSU functionality is available.

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

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

If both CPBs are corrupted, the rsu_init is still successful (return code 0) but some of the APIs returns the error code ECORRUPTED_CPB when called.
Note: The API rsu_init is only called once by U-Boot, the first time an RSU command is called. A reset or power cycle is required to cause rsu_init to be called again.
The table below lists which APIs require valid SPT or valid CPB.
Table 17.  APIs which require valid SPT or CPB
API Requires Valid SPT Requires Valid CPB
rsu_init no no
rsu_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_buf_raw yes no
rsu_slot_program_file_raw yes no
rsu_slot_verify_buf yes yes
rsu_slot_verify_buf_raw yes no
rsu_slot_enable yes yes
rsu_slot_disable yes yes
rsu_slot_load yes yes
rsu_slot_load_factory yes no
rsu_slot_rename yes no
rsu_slot_delete yes yes
rsu_slot_create yes 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_dcmf_status no no
rsu_create_empty_cpb no no
rsu_restore_cpb no no
rsu_save_cpb no yes
rsu_restore_spt no no
rsu_save_spt yes no
rsu_running_factory yes no