Linux SDK (lite-fw)  MBPL_SDK_R25_ENG3
#include <limits.h>
#include <string.h>
#include <unistd.h>
#include <syslog.h>
#include "qmerrno.h"
#include "fms.h"
#include "dms.h"
#include "dev_util.h"
#include <stdbool.h>

Go to the source code of this file.

Data Structures

struct  image_node
 
struct  _userOptions
 
struct  _litefw_FirmwareInfo_
 

Macros

#define IMG_MASK_MDM   (1<<0)
 
#define IMG_MASK_PRI   (1<<1)
 
#define IMG_MASK_CLEAR   (0x000)
 
#define IMG_MASK_GENERIC   (0xFFFF)
 
#define IMG_MASK_ALL   (0xFFFFFFF)
 
#define LITEFW_CARRIER_PACKAGE_SKU   "9999999"
 
#define LITEFW_SKU_STRING_LENGTH   7
 
#define FIRMWARE_INFO_STRING_SIZE   20
 
#define NULL_TERMINATOR_CHAR_SIZE   1
 
#define DEV_MODE_STR_LEN   8
 
#define MAX_USB_PATH_LEN   512
 
#define USB_PATH_LEN   16
 
#define DEFAULT_DL_MODE_WAIT_TIME   60
 
#define DEFAULT_APP_MODE_WAIT_TIME   240
 
#define MILLISECOND   1000
 
#define HALF_A_SECOND   (500*MILLISECOND)
 
#define SECOND   (1000*MILLISECOND)
 
#define MAX_POWER_REQUEST_RETRY   3
 
#define DEFAULT_DEV_CONN_RETRY_INTERVAL   5
 
#define DEFAULT_DEV_CONN_RETRIES   48
 
#define FW_UPDATE_STATUS_SUCCESSFUL   1
 
#define FW_UPDATE_STATUS_UNKNOWN   0xFFFFFFFF
 
#define SH_RESP_BUF_LEN   512
 
#define PCIE_QDL_PORT   "/dev/mhiqdl0"
 
#define libSDP_GetVersion   litefw_GetVersion
 
#define libSDP_CalculateImageMask   litefw_CalculateImageMask
 
#define libSDP_getFileType   litefw_getFileType
 
#define libSDP_ExtractFirmwareParametersByPath   litefw_ExtractFirmwareParametersByPath
 
#define libSDP_GetModelFamily   litefw_GetModelFamily
 
#define libSDP_CheckValidFirmwareInfo   litefw_CheckValidFirmwareInfo
 
#define libSDP_BuildImagesPreferenceRequest   litefw_BuildImagesPreferenceRequest
 
#define libSDP_DownloadFW   litefw_DownloadFW
 
#define libsdp_set_log_func   litefw_set_log_func
 
#define libsdp_SetReadBlockSize   litefw_SetReadBlockSize
 
#define LIBSDP_CARRIER_PACKAGE_SKU   LITEFW_CARRIER_PACKAGE_SKU
 
#define LIBSDP_SKU_STRING_LENGTH   LITEFW_SKU_STRING_LENGTH
 

Typedefs

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

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  litefw_QDL_MODEs { eQDL_MODE_Unknown =-1, eQDL_MODE_INIT =0, eQDL_MODE_TTYUSB =1, eQDL_MODE_UART0 =2 }
 
enum  litefw_QDL_FLOW_CONTROLs { eQDL_HW_FLOW_Unknown =-1, eQDL_HW_FLOW_INIT =0, eQDL_HW_FLOW_ENABLE =1, eQDL_HW_FLOW_DISABLE =2 }
 
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

Filename: lite-fw.h

Purpose: Global definitions used inside the SDK

Copyright: © 2016 Sierra Wireless Inc., all rights reserved

Enumeration Type Documentation

◆ litefw_QDL_FLOW_CONTROLs

Enumerator
eQDL_HW_FLOW_Unknown 

HW flow control unknown

eQDL_HW_FLOW_INIT 

HW flow control initialized

eQDL_HW_FLOW_ENABLE 

HW flow control enabled

eQDL_HW_FLOW_DISABLE 

HW flow control disabled

◆ litefw_QDL_MODEs

Enumerator
eQDL_MODE_Unknown 

QDL mode unknown

eQDL_MODE_INIT 

QDL mode initialized

eQDL_MODE_TTYUSB 

QDL mode Serial over USB

eQDL_MODE_UART0 

QDL mode UART