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

ID 683184
Date 6/09/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

2.10. Updating the Factory Image

The factory image can be updated by running a factory update image.
Note: In addition to the factory image, the factory update image also updates the decision firmware and decision firmware data.

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:

  1. 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.
  2. Deploy the factory update image on the remote system.
  3. 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.
  4. Pass control to the factory update image by requesting it to be loaded or by toggling nCONFIG.
  5. 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.
  6. 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.