Firmware Update API
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:
- le_fwupdate_Download() API has previously returned LE_CLOSED or LE_TIMEOUT
- A reset occured during last le_fwupdate_Download() processing (Legato/full system reset)
- No resume can be performed in other cases.
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().
Copyright (C) Sierra Wireless Inc.