Firmware Update From Host#

This section provides a reference to the APIs used to perform firmware updates from the host.

Functions#

sl_status_t
sl_si91x_fwup_start(const uint8_t *rps_header)

Send the RPS header content of the firmware file.

sl_status_t
sl_si91x_fwup_load(const uint8_t *content, uint16_t length)

Send the firmware file content.

sl_status_t

Abort the firmware update process on the SiWx91x device and reset all firmware upgrade helper variables in the NWP.

sl_status_t
sl_si91x_bl_upgrade_firmware(uint8_t *firmware_image, uint32_t fw_image_size, uint8_t flags)

Flash firmware to the Wi-Fi module via the bootloader.

sl_status_t

Enable fast firmware upgrade mode.

Function Documentation#

sl_si91x_fwup_start#

sl_status_t sl_si91x_fwup_start (const uint8_t * rps_header)

Send the RPS header content of the firmware file.

Parameters
[in]rps_header

Pointer to the RPS header content.

This function sends the RPS (Remote Programming Service) header content of the firmware file to the Si91x device.

This is a blocking API.

Returns


Definition at line 1072 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_fwup_load#

sl_status_t sl_si91x_fwup_load (const uint8_t * content, uint16_t length)

Send the firmware file content.

Parameters
[in]content

Pointer to the firmware file content.

[in]length

Length of the content in bytes.

This function sends the content of the firmware file to the Si91x device.

This is a blocking API.

Returns


Definition at line 1092 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_fwup_abort#

sl_status_t sl_si91x_fwup_abort (void )

Abort the firmware update process on the SiWx91x device and reset all firmware upgrade helper variables in the NWP.

Parameters
N/A

This is a blocking API.

This function aborts the ongoing firmware update process on the SiWx91x device. It is a blocking API and will not return until the process is aborted.

This is a blocking API.

Returns

Note

  • After successful completion of firmware loading using the sl_si91x_fwup_load API, the user can call this abort API.

  • Ensure to call this abort API before performing a soft or hard reset of the SiWx91x device.


Definition at line 1114 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_bl_upgrade_firmware#

sl_status_t sl_si91x_bl_upgrade_firmware (uint8_t * firmware_image, uint32_t fw_image_size, uint8_t flags)

Flash firmware to the Wi-Fi module via the bootloader.

Parameters
[in]firmware_image

Pointer to the firmware image.

[in]fw_image_size

Size of the firmware image in bytes.

[in]flags

Flags indicating the chunk position in the file:

  • 0: Middle of the file

  • 1: Start of the file

  • 2: End of the file

This function flashes the firmware to the Wi-Fi module using the bootloader. The firmware image, its size, and the position flags are provided as parameters.

This is a blocking API.

Returns


Definition at line 1140 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h

sl_si91x_set_fast_fw_up#

sl_status_t sl_si91x_set_fast_fw_up (void )

Enable fast firmware upgrade mode.

Parameters
N/A

This function enables the fast firmware upgrade mode on the Si91x device. It optimizes the firmware upgrade process for speed.

Returns


Definition at line 1152 of file components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h