Linux SDK (lite-fw)  MBPL_SDK_R25_ENG3
Streaming Download Protocol (lite-fw)

The lite-fw module allows for Firmware Download operation for EM919x devices. More...

Files

file  lite-fw.h
 

Data Structures

struct  image_node
 
struct  _userOptions
 
struct  _litefw_FirmwareInfo_
 

Typedefs

typedef struct image_node image_node_t
 
typedef struct _litefw_FirmwareInfo_ litefw_FirmwareInfo
 
typedef void(* litefwlogger) (uint8_t lvl, const char *buff)
 

Enumerations

enum  litefw_fwdwl_error_codes {
  eSDP_FWDWL_SUCCESS = 0, eSDP_FWDWL_ERR_GENERAL = 100, eSDP_FWDWL_ERR_SDK, eSDP_FWDWL_ERR_SET_CBK,
  eSDP_FWDWL_ERR_PATH_TOO_LONG, eSDP_FWDWL_ERR_PATH_NOT_SPECIFIED, eSDP_FWDWL_ERR_FW_UPGRADE, eSDP_FWDWL_ERR_INVALID_DEV,
  eSDP_FWDWL_ERR_INVALID_PATH, eSDP_FWDWL_ERR_TIMEOUT, eSDP_FWDWL_ERR_FAIL, eSDP_FWDWL_ERR_PRI_FAIL,
  eSDP_FWDWL_ERR_FW_VERSION_FAIL, eSDP_FWDWL_ERR_SDP_TIMEOUT, eReserved, eSDP_FWDWL_ERR_SARAHA_STATE_ERR,
  eSDP_FWDWL_ERR_NO_IMG_TO_DWLD_ERR, eSDP_FWDWL_ERR_DATA_SENDING_ERR, eSDP_FWDWL_ERR_OUT_OF_SYNC, eSDP_FWDWL_ERR_SPKG_STR_FAIL,
  eSDP_FWDWL_ERR_INVALID_ARGUMENT, eSDP_FWDWL_ERR_FIREHOSE_STATE_ERR, eSDP_FWDWL_ERR_FIREHOSE_DEV_REPORT_ERR, eSDP_FWDWL_ERR_SAHARA_UNRESPONSIVE,
  eSDP_FWDWL_ERR_END
}
 
enum  litefw_Fw_Type {
  eFW_TYPE_MBN_GOBI, eFW_TYPE_MBN, eFW_TYPE_CWE, eFW_TYPE_NVU,
  eFW_TYPE_SPK, eFW_TYPE_INVALID, eFW_TYPE_CWE_NVU
}
 
enum  litefw_Models {
  eModel_Unknown =-1, eModel_9X15 =0, eModel_WP9X15 =1, eModel_9X30 =2,
  eModel_9x07 =3, eModel_9x06 =4
}
 
enum  fwdwl_modem_states { eFWDWL_STATE_BOOT_AND_HOLD, eFWDWL_STATE_ONLINE, eFWDWL_STATE_DISCONNECTED, eFWDWL_STATE_UNKNOWN }
 
enum  fwdwl_modem_mode { eLITE_MODEM_MODE_QMI =1, eLITE_MODEM_MODE_MBIM }
 
enum  litefw_app_error_code {
  eLITE_FWDWL_APP_OK, eLITE_FWDWL_APP_ERR_GEN =101, eLITE_FWDWL_APP_ERR_INVALID_ARG, eLITE_FWDWL_APP_ERR_QMI,
  eLITE_FWDWL_APP_ERR_LITEFW, eLITE_FWDWL_APP_ERR_MODEM_STATE, eLITE_FWDWL_APP_ERR_INVALID_CRASH_ACTION_STATE, eLITE_FWDWL_APP_ERR_INVALID_MODEL_FAMILY,
  eLITE_FWDWL_APP_ERR_QDL, eLITE_FWDWL_APP_ERR_QMI_SEND_FAILURE, eLITE_FWDWL_APP_ERR_QMI_WAIT_RSP_FAILURE, eLITE_FWDWL_APP_ERR_SWITCH_MODE_FAILURE,
  eLITE_FWDWL_APP_ERR_TRANSPORT_INIT_FAILURE, eLITE_FWDWL_APP_ERR_GET_SVC_CLIENT_ID_FAILURE, eLITE_FWDWL_APP_ERR_SYNC_OBJECT_INIT_FAILURE, eLITE_FWDWL_APP_ERR_WAIT_DL_MODE_FAILURE,
  eLITE_FWDWL_APP_ERR_WAIT_APP_MODE_FAILURE, eLITE_FWDWL_APP_ERR_NO_IMAGE_TO_DOWNLOAD, eLITE_FWDWL_APP_ERR_PACK_OBJ_FAILURE, eLITE_FWDWL_APP_ERR_UNPACK_OBJ_FAILURE,
  eLITE_FWDWL_APP_ERR_MODEM_MANAGER_CONFLICT, eLITE_FWDWL_APP_ERR_UNRESPONSIVE_IN_DOWNLOAD_MODE, eLITE_FWDWL_APP_ERR_INIT_CTRL_FAILURE, eLITE_FWDWL_APP_ERR_UNEXPECTED_REMOVAL,
  eLITE_FWDWL_APP_UNDEFINED = 0xffffffff
}
 
enum  fwdwl_type { eFWDWL_TYPE_UNSPECIFIED, eFWDWL_TYPE_IMG_SWITCH, eFWDWL_TYPE_REG_DWLD }
 

Functions

void print_hex (void *pBuffer, int bufSize, bool read)
 
void litefw_logsenable (int log_en)
 
int litefw_ExtractImageParamsByFile (char *img, litefw_FirmwareInfo *info)
 
int litefw_ExtractFirmwareParametersByFile (char *fw, char *pri, litefw_FirmwareInfo *info)
 
int litefw_ExtractFirmwareParametersByPath (char *pImagePath, litefw_FirmwareInfo *info, bool *bIsSpkImg)
 
int litefw_BuildImagesPreferenceRequest (litefw_FirmwareInfo info, pack_fms_SetImagesPreference_t *pack, bool force)
 
int litefw_BuildAutoSimImgPrefRequest (pack_fms_SetImagesPreference_t *pack)
 
int litefw_CalculateImageMask (unpack_fms_SetImagesPreference_t SetPrefRspFromModem)
 
int litefw_getFileType (char *szPath)
 
int litefw_getFwDownloadType (char *szPath)
 
unsigned int litefw_DownloadFW (char *pImagePath, char *szTTYPath, int iFWImageType, int image_mask, int iModelFamily, int img_list_size, image_node_t *img_list)
 
int litefw_GetModelFamily (char *pModelString)
 
int litefw_CheckValidFirmwareInfo (litefw_FirmwareInfo info)
 
char * litefw_GetVersion ()
 
int litefw_set_log_func (logger func)
 
void litefw_SetReadBlockSize (unsigned long lBlockSize)
 
int litefw_switch_9x07_to_downloadmode (char *szTTYPath)
 
int litefw_switch_to_BootHoldMode (char *szTTYPath)
 
int litefw_SetQTLDownloadMode (int iMode)
 
int litefw_GetQTLDownloadMode ()
 
int litefw_SetQTLHWFlowControl (int iMode)
 
int litefw_GetQTLHWFlowControl ()
 
int SendImagesPreference (pack_fms_SetImagesPreference_t pack_request, unpack_fms_SetImagesPreference_t *pSetPrefRspFromModem, struct _userOptions *pUserOption)
 
int SetFirmwarePref (unpack_dms_SetFirmwarePreference_t *pSetFirmwarePref)
 
int ResetModem ()
 
int FWVersionAfterDownload (struct _userOptions *user_options)
 
int VerifyAutoSimImageSwitch (struct _userOptions *user_options)
 
bool locate_adapter_path (struct _userOptions *user_opt_data)
 
bool locate_qdl_path (struct _userOptions *user_opt_data)
 
bool find_adapter_path (struct _userOptions *user_opt_data)
 
bool get_image_list (struct _userOptions *pUserOptData, int *num_of_images, image_node_t **image_list, bool no_check)
 
bool litefw_cfg_dev_mode (struct _userOptions *pUserOptData)
 
int check_dev_family (struct _userOptions *pUserOption)
 
int litefw_download (struct _userOptions userOptData)
 

Detailed Description

The lite-fw module allows for Firmware Download operation for EM919x devices.

The Firmware Download application lite-fw-download included in this SDK is a working sample that demonstrates how to perform a Firmware Download operation for EM919x devices.

Overview of the lite-fw-download functionality:

Typedef Documentation

◆ image_node_t

typedef struct image_node image_node_t

Image list file name

Parameters
full_file_name
  • The full file name including the absolute path
next
  • Pointer to the next element in the list

◆ litefw_FirmwareInfo

This structure contains information of the response parameters associated with a Read Transparent API.

Parameters
szModelid_str
  • Model Name String
szFwversion_str
  • Firmware Version String.
szSku_str
  • SKU String.
szPackageid_str
  • Package ID String.
szCarrier_str
  • Carrier String.
szCarrierPriversion_str
  • Carrier PRI Version String.

◆ litefwlogger

typedef void(* litefwlogger) (uint8_t lvl, const char *buff)

This function is the Custom Log prototype.

Parameters
[in]lvl
  • Log level.
[in]buff
  • Log String.
Returns
none

Enumeration Type Documentation

◆ fwdwl_modem_mode

Modem adapter mode enum

Enumerator
eLITE_MODEM_MODE_QMI 

Modem adapter in RmNet mode

eLITE_MODEM_MODE_MBIM 

Modem adapter in MBIM mode

◆ fwdwl_modem_states

Modem state enum

Enumerator
eFWDWL_STATE_BOOT_AND_HOLD 

Modem boot and hold mode

eFWDWL_STATE_ONLINE 

Modem online mode

eFWDWL_STATE_DISCONNECTED 

Modem disconnected

eFWDWL_STATE_UNKNOWN 

Modem state unknown

◆ fwdwl_type

enum fwdwl_type

Firmware download type

Enumerator
eFWDWL_TYPE_UNSPECIFIED 

Firmware download type not specified

eFWDWL_TYPE_IMG_SWITCH 

Image switch type of firmware download

eFWDWL_TYPE_REG_DWLD 

Non image switch type of firmware download

◆ litefw_app_error_code

Error codes for applications

Enumerator
eLITE_FWDWL_APP_OK 

Success

eLITE_FWDWL_APP_ERR_GEN 

Generic error. Check logs.

eLITE_FWDWL_APP_ERR_INVALID_ARG 

Invalid arguments provided

eLITE_FWDWL_APP_ERR_QMI 

Error in communicating with QMI FDs. Check logs.

eLITE_FWDWL_APP_ERR_LITEFW 

A lite-fw API has failed. Check logs.

eLITE_FWDWL_APP_ERR_MODEM_STATE 

Modem state is unknown. Maybe not connected to host.

eLITE_FWDWL_APP_ERR_INVALID_CRASH_ACTION_STATE 

Error in setting modem crash action to reset

eLITE_FWDWL_APP_ERR_INVALID_MODEL_FAMILY 

Error getting Model Family

eLITE_FWDWL_APP_ERR_QDL 

Error in communicating with QDL FDs. Check logs.

eLITE_FWDWL_APP_ERR_QMI_SEND_FAILURE 

Error when sending QMI requests

eLITE_FWDWL_APP_ERR_QMI_WAIT_RSP_FAILURE 

Error when waiting for QMI responses

eLITE_FWDWL_APP_ERR_SWITCH_MODE_FAILURE 

Error when switching modem operating mode

eLITE_FWDWL_APP_ERR_TRANSPORT_INIT_FAILURE 

Failed to initialize QMUX transport

eLITE_FWDWL_APP_ERR_GET_SVC_CLIENT_ID_FAILURE 

Failed to get service client ID

eLITE_FWDWL_APP_ERR_SYNC_OBJECT_INIT_FAILURE 

Failed to initialize QmiSyncObject

eLITE_FWDWL_APP_ERR_WAIT_DL_MODE_FAILURE 

Failed to enter Download mode

eLITE_FWDWL_APP_ERR_WAIT_APP_MODE_FAILURE 

Failed to enter APP mode

eLITE_FWDWL_APP_ERR_NO_IMAGE_TO_DOWNLOAD 

No image to download

eLITE_FWDWL_APP_ERR_PACK_OBJ_FAILURE 

Error when packing objects

eLITE_FWDWL_APP_ERR_UNPACK_OBJ_FAILURE 

Error when unpacking objects

eLITE_FWDWL_APP_ERR_MODEM_MANAGER_CONFLICT 

Conflict with Modem Manager

eLITE_FWDWL_APP_ERR_UNRESPONSIVE_IN_DOWNLOAD_MODE 

Device unresponsive in B&H mode

eLITE_FWDWL_APP_ERR_INIT_CTRL_FAILURE 

Failed to initialize control service

eLITE_FWDWL_APP_ERR_UNEXPECTED_REMOVAL 

Device unexpectedly removed

eLITE_FWDWL_APP_UNDEFINED 

Undefined initialization value. Application should not finish with this code.

◆ litefw_Fw_Type

This enum matches with fw_image_type_e in imudefs.h

Enumerator
eFW_TYPE_CWE 

CWE File

eFW_TYPE_NVU 

NVU File

eFW_TYPE_SPK 

SPK File

eFW_TYPE_INVALID 

Invalid File

eFW_TYPE_CWE_NVU 

CWE and NVU

◆ litefw_fwdwl_error_codes

litefw internal error codes

Enumerator
eSDP_FWDWL_SUCCESS 

Success

eSDP_FWDWL_ERR_GENERAL 

Generic FW download error

eSDP_FWDWL_ERR_SDK 

SDK specific error

eSDP_FWDWL_ERR_SET_CBK 

Error in setting SDK callbacks

eSDP_FWDWL_ERR_PATH_TOO_LONG 

Path is too long

eSDP_FWDWL_ERR_PATH_NOT_SPECIFIED 

Mandatory SDK/FW path not set

eSDP_FWDWL_ERR_FW_UPGRADE 

Post FW download check indicates that the FW upgrade has failed. For example, PRI not updated as expected, FW version not updated etc.

eSDP_FWDWL_ERR_INVALID_DEV 

Invalid device

eSDP_FWDWL_ERR_INVALID_PATH 

Invalid Path or No valid firmware or nvu file exist in the path

eSDP_FWDWL_ERR_TIMEOUT 

Download Process Timeout

eSDP_FWDWL_ERR_FAIL 

Download Process Fail

eSDP_FWDWL_ERR_PRI_FAIL 

Download PRI Fail

eSDP_FWDWL_ERR_FW_VERSION_FAIL 

Download Fail Version Not Match

eSDP_FWDWL_ERR_SDP_TIMEOUT 

SSDP mode timeout

eSDP_FWDWL_ERR_SARAHA_STATE_ERR 

Sahara state error

eSDP_FWDWL_ERR_NO_IMG_TO_DWLD_ERR 

No images to download

eSDP_FWDWL_ERR_DATA_SENDING_ERR 

Failed when sending data

eSDP_FWDWL_ERR_OUT_OF_SYNC 

Out of sync with device

eSDP_FWDWL_ERR_SPKG_STR_FAIL 

Failed to get SPKG string from image file

eSDP_FWDWL_ERR_INVALID_ARGUMENT 

Invalid argument

eSDP_FWDWL_ERR_FIREHOSE_STATE_ERR 

State timeout or error in Firehose

eSDP_FWDWL_ERR_FIREHOSE_DEV_REPORT_ERR 

Device reported an error in Firehose

eSDP_FWDWL_ERR_SAHARA_UNRESPONSIVE 

Device not responsive in Sahara

◆ litefw_Models

Device model family

Enumerator
eModel_Unknown 

Chipset family unknown

eModel_9X15 

9x15 chipset based

eModel_WP9X15 

WP devices based on 9x15 chipset

eModel_9X30 

9x30 chipset based or equivalent

eModel_9x07 

9x07 chipset based or equivalent

eModel_9x06 

9x06 chipset based or equivalent

Function Documentation

◆ check_dev_family()

int check_dev_family ( struct _userOptions pUserOption)

This API checks device chip set family.

Parameters
[in]pUserOption
Returns
0 on success, litefw_app_error_code error values otherwise

◆ find_adapter_path()

bool find_adapter_path ( struct _userOptions user_opt_data)

This API finds device adapter path

Parameters
[in]user_opt_data
Returns
true if device adapter path found successfully, false otherwise.

◆ FWVersionAfterDownload()

int FWVersionAfterDownload ( struct _userOptions user_options)

This API verify the FW download status and device images after FW download

Parameters
[in]user_options
Returns
0 on success, litefw_app_error_code error values otherwise

◆ get_image_list()

bool get_image_list ( struct _userOptions pUserOptData,
int *  num_of_images,
image_node_t **  image_list,
bool  no_check 
)

This API create an image list which includes all the image files from the user specified FW location folder.

Parameters
[in]pUserOptData
[out]num_of_images
  • Number of images included in the list upon a successful return
[in,out]image_list
  • A linked list including all the images from FW location folder
  • See image_node_t for more details
[in]no_check
  • A flag indicating if further image validation is required or not.
  • true means no image validation is required.
Returns
true if image list created successfully, false otherwise

◆ litefw_BuildAutoSimImgPrefRequest()

int litefw_BuildAutoSimImgPrefRequest ( pack_fms_SetImagesPreference_t pack)

This API build image preference request for device AUTO-SIM feature.

Parameters
[out]pack
Returns
0 on success, litefw_fwdwl_error_codes error value otherwise

◆ litefw_BuildImagesPreferenceRequest()

int litefw_BuildImagesPreferenceRequest ( litefw_FirmwareInfo  info,
pack_fms_SetImagesPreference_t pack,
bool  force 
)

This API Build Image Preference Request Using Firmware Information.

Parameters
[in]info
[out]pack
[in]force
  • Flag indicating force image download or not 1: Force download 0: Device decides what images need to be downloaded
Returns
0 on success, litefw_fwdwl_error_codes error value otherwise

◆ litefw_CalculateImageMask()

int litefw_CalculateImageMask ( unpack_fms_SetImagesPreference_t  SetPrefRspFromModem)

This API Calculate Image Mask for Firmware Download.

Parameters
[in]SetPrefRspFromModem
Returns
Image Mask
  • IMG_MASK_MDM | IMG_MASK_PRI

◆ litefw_cfg_dev_mode()

bool litefw_cfg_dev_mode ( struct _userOptions pUserOptData)

This API checks device mode.

Parameters
[in]pUserOptData
Returns
true on success, false on failure

◆ litefw_CheckValidFirmwareInfo()

int litefw_CheckValidFirmwareInfo ( litefw_FirmwareInfo  info)

This API Check Valid Firmware Information to build Image Prefernce Request.

Parameters
[in]info
Returns
0 on success, -1 error value otherwise

◆ litefw_download()

int litefw_download ( struct _userOptions  userOptData)

This API initiate a FW download session based on the specified user options.

Parameters
[in]userOptData
Returns
0 on success, litefw_app_error_code error values otherwise

◆ litefw_DownloadFW()

unsigned int litefw_DownloadFW ( char *  pImagePath,
char *  szTTYPath,
int  iFWImageType,
int  image_mask,
int  iModelFamily,
int  img_list_size,
image_node_t img_list 
)

This API Download Firmware.

Parameters
[in]pImagePath
  • Firmware Folder Path.
[in]szTTYPath
  • QDL Device Path.
[in]iFWImageType
[in]image_mask
  • Image Mask.
    • IMG_MASK_MDM | IMG_MASK_PRI
[in]iModelFamily
[in]img_list_size
  • Size of images list
[in]img_list
  • Images list
Returns
0 on success, litefw_fwdwl_error_codes error value otherwise

◆ litefw_ExtractFirmwareParametersByFile()

int litefw_ExtractFirmwareParametersByFile ( char *  fw,
char *  pri,
litefw_FirmwareInfo info 
)

This API Extrace Firmware Parameters From FW and PRI Files specified.

Parameters
[in]fw
  • Firmware file path and name.
[in]pri
  • Carrier PRI file path and name
[out]info
Returns
0 on success, litefw_fwdwl_error_codes error value otherwise

◆ litefw_ExtractFirmwareParametersByPath()

int litefw_ExtractFirmwareParametersByPath ( char *  pImagePath,
litefw_FirmwareInfo info,
bool *  bIsSpkImg 
)

This API Extrace Firmware Parameters From Path.

Parameters
[in]pImagePath
  • Firmware Folder Path.
[out]info
[out]bIsSpkImg
  • True indicates the image is an spk image; otherwise, false.
Returns
0 on success, litefw_fwdwl_error_codes error value otherwise

◆ litefw_ExtractImageParamsByFile()

int litefw_ExtractImageParamsByFile ( char *  img,
litefw_FirmwareInfo info 
)

This API extracts the image info of the specified image

Parameters
[in]img
  • Image file path and name
[out]info
Returns
0 on success or litefw_fwdwl_error_codes for error scenarios

◆ litefw_getFileType()

int litefw_getFileType ( char *  szPath)

This API Get File Type By Path

Parameters
[in]szPath
Returns
eFW_TYPE_INVALID on error, litefw_Fw_Type value otherwise

◆ litefw_getFwDownloadType()

int litefw_getFwDownloadType ( char *  szPath)

This API Get Firmware Download Type By Path

Parameters
[in]szPath
Returns
eFW_TYPE_INVALID on error, litefw_Fw_Type value otherwise

◆ litefw_GetModelFamily()

int litefw_GetModelFamily ( char *  pModelString)

This API Get Model Famliy from a model string.

Parameters
[in]pModelString
  • Model String.
Returns
eModel_Unknown on Error, litefw_Models value otherwise

◆ litefw_GetQTLDownloadMode()

int litefw_GetQTLDownloadMode ( )

This API Get QDL port donwload mode.

Returns
eQDL_MODE_Unknown on Error, litefw_QDL_MODEs value otherwise

◆ litefw_GetQTLHWFlowControl()

int litefw_GetQTLHWFlowControl ( )

This API Get QDL port Hardware flow control.

Returns
eQDL_HW_FLOW_Unknown on Error, litefw_QDL_FLOW_CONTROLs value otherwise

◆ litefw_GetVersion()

char* litefw_GetVersion ( )

This API Get Lib SDP Version.

Returns
Version String

◆ litefw_logsenable()

void litefw_logsenable ( int  log_en)

This function enables/disables lite firmware debug logs.

Parameters
[in]log_en
  • Logs enable/disable flag.

◆ litefw_set_log_func()

int litefw_set_log_func ( logger  func)

This API Set Custom Log function.

Parameters
[in]func
Returns
none

◆ litefw_SetQTLDownloadMode()

int litefw_SetQTLDownloadMode ( int  iMode)

This API set QDL port donwload mode.

Parameters
[in]iMode
  • QDL Download Mode.
    • litefw_QDL_MODEs
Returns
0 on success, -1 error value otherwise

◆ litefw_SetQTLHWFlowControl()

int litefw_SetQTLHWFlowControl ( int  iMode)

This API Set QDL port Hardware flow control.

Parameters
[in]iMode
Returns
0 on success, -1 error value otherwise

◆ litefw_SetReadBlockSize()

void litefw_SetReadBlockSize ( unsigned long  lBlockSize)

This API Set Read BlockSize.

Parameters
[in]lBlockSize
  • Firmware Read Block Size.
Returns
none

◆ litefw_switch_9x07_to_downloadmode()

int litefw_switch_9x07_to_downloadmode ( char *  szTTYPath)

This API switch 9x07 modem to download mode.

Parameters
[in]szTTYPath
  • QDL Device Path.
Returns
0 on success, -1 error value otherwise

◆ litefw_switch_to_BootHoldMode()

int litefw_switch_to_BootHoldMode ( char *  szTTYPath)

This API switch modem to boot hold modem via QDL port.

Parameters
[in]szTTYPath
  • QDL Device Path.
Returns
0 on success, -1 error value otherwise

◆ locate_adapter_path()

bool locate_adapter_path ( struct _userOptions user_opt_data)

This API locate modem network adapter device path

Parameters
[in]user_opt_data
Returns
true if adapter path located successfully, false otherwise.

◆ locate_qdl_path()

bool locate_qdl_path ( struct _userOptions user_opt_data)

This API locate modem QDL port device path

Parameters
[in]user_opt_data
Returns
true if QDL path located successfully, false otherwise.

◆ print_hex()

void print_hex ( void *  pBuffer,
int  bufSize,
bool  read 
)

This function prints pBuffer in hex format.

Parameters
[in]pBuffer
  • Data buffer
[in]bufSize
  • Data buffer size
[in]read
  • Flag indicating the data buffer is for read or write packet
  • true: read data buffer
  • false: write data buffer

◆ ResetModem()

int ResetModem ( )

This API reset device

Returns
0 on success, litefw_app_error_code error values otherwise

◆ SendImagesPreference()

int SendImagesPreference ( pack_fms_SetImagesPreference_t  pack_request,
unpack_fms_SetImagesPreference_t pSetPrefRspFromModem,
struct _userOptions pUserOption 
)

This API sends image preferences to device for image switching type of FW download.

Parameters
[in]pack_request
[out]pSetPrefRspFromModem
[in]pUserOption
  • User options
Returns
0 on success, litefw_app_error_code error values otherwise

◆ SetFirmwarePref()

int SetFirmwarePref ( unpack_dms_SetFirmwarePreference_t *  pSetFirmwarePref)

This API switch device to download mode for non image switching type of FW download

Parameters
[out]pSetFirmwarePref
  • Device QMI response in unpack_dms_SetFirmwarePreference_t
Returns
0 on success, litefw_app_error_code error values otherwise

◆ VerifyAutoSimImageSwitch()

int VerifyAutoSimImageSwitch ( struct _userOptions user_options)

This API verify the device AUTO-SIM based image switch feature

Parameters
[in]user_options
  • User specified options
Returns
0 on success, litefw_app_error_code error values otherwise