Modem Firmware Update

API Reference


Firmware update allows the various firmware images to be updated from the application processor. This may include the modem bootloader, modem firmware, and linux image, where the linux image consists of the linux bootloader, linux kernel, and linux rootfs.

Firmware update is useful when the image comes from an alternative source, rather than as an over-the-air update through the AirVantage service.

IPC interfaces binding

All the functions of this API are provided by the le_fwupdate service.

Here's a code sample binding to the le_fwupdate service:

bindings:
{
   clientExe.clientComponent.le_fwupdate -> fwupdateService.le_fwupdate
}
Warning
All of these APIs are not available for all platforms. Please refer to the Product Technical specification document of your platform for further details. Please refer to Dual System mechanism for details on Dual System.

Update Firmware Image

The firmware update process is started by calling le_fwupdate_Download(). This function takes a file descriptor, rather than a file, to provide flexibility in the source of the image. In particular, this can be used to stream the image, rather than having to save it on the file system before doing the update.

On platform which does not support dual system, when the image is successfully downloaded, a reset will occur in order to apply the update. This will reset all processors. After the application processor has restarted, the Query Firmware Version APIs can be used to determine whether the firmware has been updated to the new version.

On platform which supports dual system, if the image is successfully downloaded, the user needs to swap the systems in order to use the updated system. This will reset all processors. After the application processor has restarted, the Query Firmware Version APIs can be used to determine whether the firmware has been updated to the new version.

Update Firmware Image Download Resume

During the download, the flash programming position is saved. Thanks to this position, fwupdate service is able to resume the download without downloading the update package at the beginning.

By default, the fwupdate service download API is resuming the previous download: new data received through this API will be programmed at the resume position.

Note
A download can be resumed when:

A complete download can be forced by calling le_fwupdate_InitDownload(). Resume position is set to 0.

The current resume position can be retrieved by calling le_fwupdate_GetResumePosition().