Visible to Intel only — GUID: dob1540272325392
Ixiasoft
Visible to Intel only — GUID: dob1540272325392
Ixiasoft
2.10. Updating the Factory Image
In order to make your system ready to support updating the factory image you need to have an available slot in flash that is the size of the maximum factory image you anticipate using plus 512 KB.
You may temporarily use an application image slot for the update procedure, because application images are typically larger than factory images. However, that means one less application image slot is available during the factory image update procedure.
The procedure for updating the factory image and decision firmware is as follows:
- Create a factory update image with the Programming File Generator, using the new factory image SOF file as input. The factory update image contains the new factory image, new decision firmware, new decision firmware data, and special firmware to perform the actual update.
- Deploy the factory update image on the remote system.
- Write the factory update image to the flash and make it the highest priority, with either U-Boot or LIBRSU. Because the factory update image has a different format than application images, use the following LIBRSU APIs: rsu_slot_program_factory_update_buf and rsu_slot_program_factory_update_file. There are also U-Boot equivalents.
- Pass control to the factory update image by requesting it to be loaded or by toggling nCONFIG.
- The factory update image proceeds and replaces the factory image, decision firmware and decision firmware data with the new copies, then erases itself from the CPB.
- At the end, the factory update image loads the new highest priority image in the CPB, or the factory image if the CPB is empty.
The factory update flow is resilient to power loss. If the power is lost during the update, the next time the power is back up, the factory update image resumes the update process from where it stopped.
For examples on how to perform the factory image update from both U-Boot and Linux, refer to the Remote System Update Example section.
For API reference information, refer to the LIBRSU Reference Information section, located in the LIBRSU Reference Information appendix.