Linux SDK (lite-qmi)  MBPL_SDK_R25_ENG3
Firmware Management Service (FMS)

Files

file  fms.h
 
file  qaGobiApiFms.h
 Firmware Management Service API function prototypes.
 

Data Structures

struct  CarrierImage_t
 
struct  pack_fms_GetImagesPreference_t
 
struct  FMSImageElement
 
struct  FMSPrefImageList
 
struct  unpack_fms_GetImagesPreference_t
 
struct  pack_fms_GetStoredImages_t
 
struct  FMSImageIdElement
 
struct  FMSImageIDEntries
 
struct  FMSImageList
 
struct  unpack_fms_GetStoredImages_t
 
struct  pack_fms_SetImagesPreference_t
 
struct  unpack_fms_SetImagesPreference_t
 
struct  pack_fms_DeleteStoredImage_t
 
struct  fwinfo_s
 
struct  slqsfwinfo_s
 
struct  ImageElement
 
struct  PrefImageList
 
struct  ImageIdElement
 
struct  ImageIDEntries
 
struct  ImageList
 
struct  sGetDeviceSeriesResult
 
struct  SWI_STRUCT_CarrierImage
 
struct  CurrImageInfo
 
struct  CurrentImgList
 

Enumerations

enum  eGobiImageTech { eGOBI_IMG_TECH_CDMA = 0, eGOBI_IMG_TECH_UMTS }
 
enum  eGobiImageCarrier {
  eGOBI_IMG_CAR_GENERIC = 1, eGOBI_IMG_CAR_FACTORY, eGOBI_IMG_CAR_NORF, eGOBI_IMG_CAR_VERIZON = 101,
  eGOBI_IMG_CAR_SPRINT, eGOBI_IMG_CAR_ALLTEL, eGOBI_IMG_CAR_BELL, eGOBI_IMG_CAR_TELUS,
  eGOBI_IMG_CAR_US, eGOBI_IMG_CAR_TELSTRA1, eGOBI_IMG_CAR_CHINA_UNICOM, eGOBI_IMG_CAR_TELCOM_NZ,
  eGOBI_IMG_CAR_SK_TELCOM1, eGOBI_IMG_CAR_RELIANCE1, eGOBI_IMG_CAR_TATA, eGOBI_IMG_CAR_METROPCS,
  eGOBI_IMG_CAR_LEAP, eGOBI_IMG_CAR_KDDI, eGOBI_IMG_CAR_IUSACELL, eGOBI_IMG_CAR_CHINA_TELECOM,
  eGOBI_IMG_CAR_OMH, eGOBI_IMG_CAR_GENERIC_CDMA, eGOBI_IMG_CAR_ATT = 201, eGOBI_IMG_CAR_VODAFONE,
  eGOBI_IMG_CAR_TMOBILE, eGOBI_IMG_CAR_ORANGE, eGOBI_IMG_CAR_TELEFONICA, eGOBI_IMG_CAR_TELCOM_ITALIA,
  eGOBI_IMG_CAR_3, eGOBI_IMG_CAR_O2, eGOBI_IMG_CAR_SFR, eGOBI_IMG_CAR_SWISSCOM,
  eGOBI_IMG_CAR_CHINA_MOBILE, eGOBI_IMG_CAR_TELSTRA2, eGOBI_IMG_CAR_SINGTEL_OPTUS, eGOBI_IMG_CAR_RELIANCE2,
  eGOBI_IMG_CAR_BHARTI, eGOBI_IMG_CAR_NTT_DOCOMO, eGOBI_IMG_CAR_EMOBILE, eGOBI_IMG_CAR_SOFTBANK,
  eGOBI_IMG_CAR_KT_FREETEL, eGOBI_IMG_CAR_SK_TELCOM2, eGOBI_IMG_CAR_TELENOR, eGOBI_IMG_CAR_NETCOM,
  eGOBI_IMG_CAR_TELIASONERA, eGOBI_IMG_CAR_AMX_TELCEL, eGOBI_IMG_CAR_BRASIL_VIVO, eGOBI_IMG_CAR_AERIS,
  eGOBI_IMG_CAR_ROGERS
}
 
enum  eGobiImageRegion {
  eGOBI_IMG_REG_NA = 0, eGOBI_IMG_REG_LA, eGOBI_IMG_REG_EU, eGOBI_IMG_REG_ASIA,
  eGOBI_IMG_REG_AUS, eGOBI_IMG_REG_GLOBAL
}
 
enum  eGobiImageGPS { eGOBI_IMG_GPS_NONE = 0, eGOBI_IMG_GPS_STAND_ALONE, eGOBI_IMG_GPS_ASSISTED, eGOBI_IMG_GPS_NO_XTRA }
 
enum  eGobiDeviceSeries {
  eGOBI_DEV_SERIES_UNKNOWN = -1, eGOBI_DEV_SERIES_NON_GOBI = 0, eGOBI_DEV_SERIES_G3K, eGOBI_DEV_SERIES_SIERRA_GOBI,
  eGOBI_DEV_SERIES_9X15, eGOBI_DEV_SERIES_9X30, eGOBI_DEV_SERIES_9X07_9X50, eGobi_DEV_SERIES_MC83
}
 

Functions

int pack_fms_GetImagesPreference (pack_qmi_t *pCtx, uint8_t *pReqBuf, uint16_t *pLen, pack_fms_GetImagesPreference_t *reqArg)
 
int unpack_fms_GetImagesPreference (uint8_t *pResp, uint16_t respLen, unpack_fms_GetImagesPreference_t *pOutput)
 
int pack_fms_GetStoredImages (pack_qmi_t *pCtx, uint8_t *pReqBuf, uint16_t *pLen, pack_fms_GetStoredImages_t *reqArg)
 
int unpack_fms_GetStoredImages (uint8_t *pResp, uint16_t respLen, unpack_fms_GetStoredImages_t *pOutput)
 
int pack_fms_SetImagesPreference (pack_qmi_t *pCtx, uint8_t *pReqBuf, uint16_t *pLen, pack_fms_SetImagesPreference_t *reqArg)
 
int unpack_fms_SetImagesPreference (uint8_t *pResp, uint16_t respLen, unpack_fms_SetImagesPreference_t *pOutput)
 
uint32_t GetValidFwPriCombinations (FMSImageList *pStoredImageList, uint32_t *pValidCombinationSize, CarrierImage_t *pValidCombinations)
 
int pack_fms_DeleteStoredImage (pack_qmi_t *pCtx, uint8_t *pReqBuf, uint16_t *pLen, pack_fms_DeleteStoredImage_t *pReqParam)
 
int unpack_fms_DeleteStoredImage (uint8_t *pResp, uint16_t respLen, unpack_fms_DeleteStoredImage_t *pOutput)
 
ULONG GetImageStore (WORD imageStorePathSize, CHAR *pImageStorePath)
 
ULONG SLQSGetFirmwareInfo (struct qmifwinfo_s *pinfo)
 
ULONG SLQSGetImageInfoMC77xx (LPCSTR path, struct qmifwinfo_s *pinfo)
 
ULONG SLQSGetImageInfoMC83xx (LPCSTR path, struct qmifwinfo_s *pinfo)
 
ULONG SLQSGetImageInfo (LPCSTR path, struct qmifwinfo_s *pinfo)
 
ULONG UpgradeFirmware2k (CHAR *pDestinationPath)
 
ULONG GetImagesPreference (ULONG *pImageListSize, struct PrefImageList *pImageList)
 
ULONG SetImagesPreference (ULONG imageListSize, BYTE *pImageList, ULONG bForceDownload, BYTE modemIndex, ULONG *pImageTypesSize, BYTE *pImageTypes)
 
ULONG GetStoredImages (ULONG *pImageListSize, BYTE *pImageList)
 
ULONG DeleteStoredImage (ULONG imageInfoSize, BYTE *pImageInfo)
 
ULONG SLQSGetImageInfo_9x15 (LPCSTR path, BYTE imgType, struct slqsfwinfo_s *pinfo)
 
ULONG SLQSUpgradeFirmware9x07 (CHAR *pDestinationPath)
 
ULONG SLQSUpgradeFirmware9x15 (CHAR *pDestinationPath)
 
ULONG SLQSGetBootVersionNumber (ULONG *bootversion)
 
BOOL SLQSIsSpkgFormatRequired (void)
 
void SLQSSetSpkgFormatRequired (BYTE isneeded)
 
void eGetDeviceSeries (struct sGetDeviceSeriesResult *result)
 
ULONG SLQSSwiGetAllCarrierImages (ULONG *pNumOfItems, struct SWI_STRUCT_CarrierImage *pCarrierImages, char *pFolderPath)
 
ULONG DownloadToSlot (CHAR *path, struct slqsfwinfo_s fwImgInfo, struct slqsfwinfo_s priImgInfo, BYTE slot, BYTE forceDownload)
 
ULONG SLQSDownloadFirmwareToSlot (CHAR *pPath, BYTE slot_index, BYTE force_download)
 
ULONG SLQSGetValidFwPriCombinations (struct ImageList *pStoredImageList, ULONG *pValidCombinationSize, struct SWI_STRUCT_CarrierImage *pValidCombinations)
 
ULONG SLQSSetSIMBasedImageSwitching (void)
 
void SLQSSetCrashStateCheckIgnore (BOOL ignore)
 
ULONG SLQSSwiGetFirmwareCurr (CurrentImgList *pCurrentImgList)
 
ULONG upgrade_9x07_9x50_fw (LPCSTR path)
 
ULONG SetImagePath (CHAR *path, ULONG isMDM9x15, WORD imgMask, BYTE mdmProtocol)
 
int SLQSIsBootloaderDebugEnabled (const char *szPath, const char *pQsn)
 

Detailed Description

Enumeration Type Documentation

◆ eGobiDeviceSeries

enumeration which lists the Device Series

◆ eGobiImageCarrier

enumeration which lists the carrier supported by the image

◆ eGobiImageGPS

enumeration which lists the GPS type supported by the image

◆ eGobiImageRegion

enumeration which lists the region supported by the image

◆ eGobiImageTech

enumeration which lists the technology supported by the image

Function Documentation

◆ DeleteStoredImage()

ULONG DeleteStoredImage ( ULONG  imageInfoSize,
BYTE *  pImageInfo 
)

Used to delete the specified image from the device. This API function is only relevant to devices with the ability to store multiple firmware images(see Device Supported section below).

Parameters
[in]imageInfoSize
  • The size in BYTEs of the image info array
[in]pImageInfo
  • The image info list array containing information about the image to be deleted.
  • See ImageElement
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
Note
Device Supported: MC83x5/SL9090
Timeout: 2 Secs

◆ DownloadToSlot()

ULONG DownloadToSlot ( CHAR *  path,
struct slqsfwinfo_s  fwImgInfo,
struct slqsfwinfo_s  priImgInfo,
BYTE  slot,
BYTE  forceDownload 
)

This API is dedicated for downloading a firmware image into a specific slot. it is used for EM74xx/MC74xx only

Parameters
path
  • fully qualified path to firmware image to download
fwImgInfo
priImgInfo
slot
  • slot id in the modem to store the firmware
forceDownload
  • a flag to force download take place.
Returns
See qmerrno.h for eQCWWAN_xxx error values
Note
only EM74xx/MC74xx is supported

◆ eGetDeviceSeries()

void eGetDeviceSeries ( struct sGetDeviceSeriesResult result)

Name : eGetDeviceSeries

Parameters
result
Returns
sGetDeviceSeriesResult
Note
Get Devie Series

◆ GetImagesPreference()

ULONG GetImagesPreference ( ULONG *  pImageListSize,
struct PrefImageList pImageList 
)

restore original alignment from stack

Gets the current images preference from the device.

Parameters
[in,out]pImageListSize
  • Upon input, the size of structure ImageList ImageList
  • Upon successful output, the number of BYTEs copied to the image list array
[out]pImageList
  • The caller must supply a pointer to a ImageList structure typecast as a BYTE pointer
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
Note
Timeout: 2 seconds

◆ GetImageStore()

ULONG GetImageStore ( WORD  imageStorePathSize,
CHAR *  pImageStorePath 
)

Returns the image store folder, i.e., the folder containing one or more carrier-specific image subfolders compatible with the currently connected QC WWAN device.

Parameters
imageStorePathSize
  • Maximum number of characters (including NULL terminator) that can be copied to the image store path array.
[out]pImageStorePath
  • The path to the image store
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values

◆ GetStoredImages()

ULONG GetStoredImages ( ULONG *  pImageListSize,
BYTE *  pImageList 
)

restore original alignment from stack

Gets the list of images stored on the device.

Parameters
[in,out]pImageListSize
  • Upon input, the size of structure ImageList ImageList
  • Upon successful output, the number of BYTEs copied to the image list array
[out]pImageList
  • The caller must supply a pointer to a ImageList structure typecast as a BYTE pointer
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
Note
Device Supported: MC83x5/SL9090
Timeout: 2 seconds

◆ GetValidFwPriCombinations()

uint32_t GetValidFwPriCombinations ( FMSImageList pStoredImageList,
uint32_t *  pValidCombinationSize,
CarrierImage_t pValidCombinations 
)

This API distills valid Firmware/PRI combinations from GetStoredImages result

Parameters
[in]pStoredImageList
[in,out]pValidCombinationSize
  • number of combination passed in and returned
[out]pValidCombinations
Returns
  • eQCWWAN_ERR_INVALID_ARG - Invalid parameters
  • eQCWWAN_ERR_BUFFER_SZ - No enough element to store combinatons returned
See also
See qmerrno.h for eQCWWAN_xxx error values

◆ pack_fms_DeleteStoredImage()

int pack_fms_DeleteStoredImage ( pack_qmi_t pCtx,
uint8_t *  pReqBuf,
uint16_t *  pLen,
pack_fms_DeleteStoredImage_t pReqParam 
)

Pack function for deleting a specified stored image.

Parameters
[in,out]pCtxqmi request context
[out]pReqBufqmi request buffer
[out]pLenqmi request length
[in]pReqParamrequest prarmeters
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values

◆ pack_fms_GetImagesPreference()

int pack_fms_GetImagesPreference ( pack_qmi_t pCtx,
uint8_t *  pReqBuf,
uint16_t *  pLen,
pack_fms_GetImagesPreference_t reqArg 
)

Get Images Preference pack

Parameters
[in,out]pCtxqmi request context
[out]pReqBufqmi request buffer
[out]pLenqmi request length
[in]reqArgrequest parameter

◆ pack_fms_GetStoredImages()

int pack_fms_GetStoredImages ( pack_qmi_t pCtx,
uint8_t *  pReqBuf,
uint16_t *  pLen,
pack_fms_GetStoredImages_t reqArg 
)

Get Images Preference pack

Parameters
[in,out]pCtxqmi request context
[out]pReqBufqmi request buffer
[out]pLenqmi request length
[in]reqArgrequest parameter

◆ pack_fms_SetImagesPreference()

int pack_fms_SetImagesPreference ( pack_qmi_t pCtx,
uint8_t *  pReqBuf,
uint16_t *  pLen,
pack_fms_SetImagesPreference_t reqArg 
)

Set Images Preference pack

Parameters
[in,out]pCtxqmi request context
[out]pReqBufqmi request buffer
[out]pLenqmi request length
[in]reqArgrequest parameter

◆ SetImagePath()

ULONG SetImagePath ( CHAR *  path,
ULONG  isMDM9x15,
WORD  imgMask,
BYTE  mdmProtocol 
)

This API is used to set image path for firmware download

Parameters
[in]path
  • fully qualified path to firmware image to download.
[in]isMDM9x15
  • a flag indicates whether it is a MDM9x15 device
[in]imgMask
  • image mask to check CWE and NVU files are required or not
[in]mdmProtocol
  • which firmware download protocol should be used
    • 0 - SSDP protocol
    • 1 - Firehose protocol
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
Note
Timeout: 12 seconds

◆ SetImagesPreference()

ULONG SetImagesPreference ( ULONG  imageListSize,
BYTE *  pImageList,
ULONG  bForceDownload,
BYTE  modemIndex,
ULONG *  pImageTypesSize,
BYTE *  pImageTypes 
)

Sets the current images preference on the device. After this function successfully completes, the device must be reset for the selected image preference to be realized. Additionally, when the returned list of image types that require downloading is not empty, the device opens in QDL mode after the reset. At that point, the QDL portion of this API must be used to download the selected image preference to the device.

Parameters
imageListSize
  • The size in BYTEs of the image list array
[in]pImageList
  • The image info list array containing Image Elements
[in]bForceDownload
  • Force device to download images from host? 0 - No Nonzero - Yes
modemIndex
  • Desired storage index for downloaded modem image (optional, a value of 0xFF indicates unspecified)
[in,out]pImageTypesSize
  • Upon input, maximum number of elements that download image types array can contain
  • Upon successful output, number of elements in download image types array
[out]pImageTypes-The download image types array.
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
Note
Timeout: 2 seconds

◆ SLQSDownloadFirmwareToSlot()

ULONG SLQSDownloadFirmwareToSlot ( CHAR *  pPath,
BYTE  slot_index,
BYTE  force_download 
)

This API is used to download firmware to a specific slot id of the modem. It is only applicable for EM74xx variant. This API encapsulates all steps involved in the firmware download process.Hence it is a blocking API call.
This API will not return until the entire process has been completed. This API will takes significant amount of time (in order of minutes, normally should be less than 10 minutes).

This API Performs the following steps:

  1. Verifies arguments.
  2. Retrieve and store the details of the firmware and the PRI file
  3. Enable device state change callback.
  4. Enable firmware download callback.
  5. Set Image preference on the device and reset the device.
  6. Wait for the firmware to download and device to become ready.
  7. Check the firmware update status. If fail, return an error.
  8. If update status is OK, check if current image preference and preferred image preference( from step 2 ) match
  9. If match, firmware download is successful. otherwise, report FW_PREFERENCE_MISMATCH
    10.Disable callbacks and exit.
    The call to this API blocks until step 7 or 10. This could be a significant amount of time ( in order of minutes ). Also note that the device state change callback and firmware download callback are used internally
    within this API. Hence the user application's instance of these callbacks (if any) are cleared. The user must re-enable these callbacks after a call to this API in order to use them.
    Parameters
    [in]pPath
    • fully qualified path to firmware image to download.
    [in]slot_index
    • slot id in the modem to store the firmware
    [in]force_download
    • a flag to force download take place.
    Returns
    • eQCWWAN_ERR_NONE - Firmware download/Switch success.
    • eQCWWAN_ERR_INVALID_ARG - The path input does not contain any image
    • eQCWWAN_ERR_SWIIM_FW_UPDATE_FAIL - Firmware download/switch failed
    • eQCWWAN_ERR_SWIIM_FW_PREFERENCE_MISMATCH - Download success but device offline due to image preference mismatch ( ref. syslogs for cause )
    See also
    See qmerrno.h for eQCWWAN_xxx error values
    Note
    Timeout: NA

◆ SLQSGetBootVersionNumber()

ULONG SLQSGetBootVersionNumber ( ULONG *  bootversion)

Gets the boot loader version number

Parameters
[out]bootversion
  • boot loader version presented by a 4 byte integer
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
Note
Device Supported: MC9090/SL9090
Timeout: 2 seconds

◆ SLQSGetFirmwareInfo()

ULONG SLQSGetFirmwareInfo ( struct qmifwinfo_s pinfo)

Returns firmware image information from the connected device

Parameters
[out]pinfo
  • firmware image information record
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
struct qmifwinfo_s
Note
Timeout: 2 Seconds.

◆ SLQSGetImageInfo()

ULONG SLQSGetImageInfo ( LPCSTR  path,
struct qmifwinfo_s pinfo 
)

Returns firmware image information from a CWE file or mbn files stored on the host. For CWE, information is returned for the first CWE image found at the specified path. For MBN, the provided path must be located under the image store for the currently connected QC WWAN device. Note that as this API supports multiple firmware image types, it relies on the presence of a supported device. Otherwise, refer to SLQSGetImageInfoMC83xx and SLQSGetImageInfoMC77xx for APIs which do not rely on the presence of a supported device.

Parameters
[in]path
  • fully qualified path to folder containing CWE image or MBN images
  • should use a "/" at the end of the path.
[out]pinfo
  • firmware image information record
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
struct qmifwinfo_s
Note
Timeout: N/A

◆ SLQSGetImageInfo_9x15()

ULONG SLQSGetImageInfo_9x15 ( LPCSTR  path,
BYTE  imgType,
struct slqsfwinfo_s pinfo 
)

Returns firmware image information from a CWE file(s) stored on the host. It does not rely on the presence of a supported device.

Parameters
[in]path
  • fully qualified path to folder containing the image(s)
  • should use a "/" at the end of the path.
[in]imgType
  • 2 - Firmware Image( .cwe extension )
  • 3 - PRI Image ( .nvu extension )
[out]pinfo
  • firmware image information record
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
struct qmifwinfo_s
Note
Device Supported: MC73xx
Timeout: N/A

◆ SLQSGetImageInfoMC77xx()

ULONG SLQSGetImageInfoMC77xx ( LPCSTR  path,
struct qmifwinfo_s pinfo 
)

Returns firmware image information from a SPKGS CWE file stored on the host. The information is returned for the first SPKGS CWE image found at the specified path. This API executes independent of a MC77xx being connected to the target.

Parameters
[in]path
  • fully qualified path to folder containing SPKG CWE image
  • should use a "/" at the end of the path.
[out]pinfo
  • firmware image information record
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
struct qmifwinfo_s
Note
Device Supported: MC77xx
Timeout: N/A

◆ SLQSGetImageInfoMC83xx()

ULONG SLQSGetImageInfoMC83xx ( LPCSTR  path,
struct qmifwinfo_s pinfo 
)

Returns firmware image information from an MBN file located on the host. This API executes independent of a MC83xx being connected to the target.

Parameters
[in]path
  • fully qualified path to folder containing MBN file
  • should use a "/" at the end of the path.
[out]pinfo
  • firmware image information record
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
struct qmifwinfo_s
Note
Device Supported: MC83xx/SL9090
Timeout: N/A

◆ SLQSGetValidFwPriCombinations()

ULONG SLQSGetValidFwPriCombinations ( struct ImageList pStoredImageList,
ULONG *  pValidCombinationSize,
struct SWI_STRUCT_CarrierImage pValidCombinations 
)

This API distills valid Firmware/PRI combinations from GetStoredImages result

Parameters
[in]pStoredImageList
  • image list returned from GetStoredImages
[in,out]pValidCombinationSize
  • number of combination passed in and returned
[out]pValidCombinations
  • valid combinations returned
Returns
  • eQCWWAN_ERR_INVALID_ARG - Invalid parameters
  • eQCWWAN_ERR_BUFFER_SZ - No enough element to store combinatons returned
See also
See qmerrno.h for eQCWWAN_xxx error values

◆ SLQSIsBootloaderDebugEnabled()

int SLQSIsBootloaderDebugEnabled ( const char *  szPath,
const char *  pQsn 
)

This API is used to check if the bootloader is debug enabled or not for the specified QSN

Parameters
[in]szPath
  • the full path of the provided bootloader or firmware file
[in]pQsn
  • the QSN of a specific module user wants to check, it is a 4 bytes hex value without the prefix 0X. It can be retrieved by AT command AT!ENTERCND="<password>", AT!SECBOOTCFG?, the first parameter of the response of AT!SECBOOTCFG?.
Returns
values listed below
  • -1 bootloader is not debug enabled
  • 0 unbale to retrieve the bootloader debug info
  • 1 bootloader is debug enabled for the provided QSN
  • 4 either szPath or pQsn is invalid (NULL)
  • 18 invalid file

◆ SLQSIsSpkgFormatRequired()

BOOL SLQSIsSpkgFormatRequired ( void  )

Check if SPKG format download is required for SL9090/MC9090, it returns the value whcih was set by API SLQSSetSpkgFormatRequired()

Returns
return TRUE if required, otherwise, return FALSE
Note
Device Supported: MC9090/SL9090

◆ SLQSSetCrashStateCheckIgnore()

void SLQSSetCrashStateCheckIgnore ( BOOL  ignore)

This API is used to set whether ignore crash state checking before proceed firmware download using the API UpgradeFirmware2k().

Parameters
[in]ignore
  • 0 - crash state checking applied (default value)
  • 1 - ignore crash state checking
Note
Device Supported: EM73xx/MC73xx, EM74xx/MC74xx

◆ SLQSSetSIMBasedImageSwitching()

ULONG SLQSSetSIMBasedImageSwitching ( void  )

This API is used to enable the SIM-based Image Switching. The modem will reboot automatically to take effect of the enabing

Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
Note
Device Supported: EM74xx/MC74xx

◆ SLQSSetSpkgFormatRequired()

void SLQSSetSpkgFormatRequired ( BYTE  isneeded)

Set if SPKG format download is required for SL9090/MC9090

Parameters
isneeded[INPUT] user inputs the firmware download method preference
  • 1 - Gobi3K download method, use mbn files. This is default value
  • 2 - SPKG download method, use cwe file
Returns
None
Note
Device Supported: MC9090/SL9090

◆ SLQSSwiGetAllCarrierImages()

ULONG SLQSSwiGetAllCarrierImages ( ULONG *  pNumOfItems,
struct SWI_STRUCT_CarrierImage pCarrierImages,
char *  pFolderPath 
)

This API gets a list of all images stored on both the host and the device

Parameters
pNumOfItems
  • Number of Images{IN/OUT]
[out]pCarrierImages
[in]pFolderPath
  • Path of Input folder
Returns
TRUE/FALSE
Note
In case pFolderPath is invalid, API does not return invalid path error as SLQSSwiGetAllCarrierImages get carrier images from device also.

◆ SLQSSwiGetFirmwareCurr()

ULONG SLQSSwiGetFirmwareCurr ( CurrentImgList pCurrentImgList)

This API gets the currently active images on the device.

Parameters
pCurrentImgList
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
Note
Technology Supported: NA
Device Supported: MC73xx, MC74xx/EM74xx
Timeout: 5 Secs

◆ SLQSUpgradeFirmware9x07()

ULONG SLQSUpgradeFirmware9x07 ( CHAR *  pDestinationPath)

This API is used to download firmware to a WP760x device.

This API Performs the following steps:

  1. Verifies arguments.
  2. Informs the SDK of the firmware upgrade path
  3. Send the DM command to requests the device reset (device will reset after all open handles are released).
    Upon successful completion, the above steps will have been completed, however, the actual upgrade of the firmware will necessarily then follow.
Parameters
[in]pDestinationPath
  • fully qualified path to firmware image to download.
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
Note
Timeout: 5 seconds

◆ SLQSUpgradeFirmware9x15()

ULONG SLQSUpgradeFirmware9x15 ( CHAR *  pDestinationPath)

This API is used to upgrade firmware on a MC73xx device. This API encapsulates all steps involved in the firmware download process. It is an alternative to any firmware download application. Hence it is a blocking API call. This API will not return until the entire process has been completed.

This API Performs the following steps:

  1. Verifies arguments.
  2. Retrieve and store the details of the firmware and the PRI file
  3. Enable device state change callback.
  4. Enable firmware download callback.
  5. Set Image preference on the device and reset the device.
  6. Wait for the firmware to download and device to become ready.
  7. Check the firmware update status. If fail, return an error.
  8. If update status is OK, check if current image preference and preferred image preference( from step 2 ) match
  9. If match, firmware download is successful.
  10. If do not match, repeat from step 5 once more.
  11. Disable callbacks and exit.
    The call to this API blocks until step 7 or 11. This could be a significant amount of time ( in order of minutes ). Also note that the device state change callback and firmware download callback are used internally
    within this API. Hence the user application's instance of these callbacks (if any) are cleared. The user must re-enable these callbacks after a call to this API in order to use them.
    Parameters
    [in]pDestinationPath
    • fully qualified path to firmware image to download. The path must
      end with a forward slash.
    Returns
    • eQCWWAN_ERR_NONE - Firmware download/Switch success.
    • eQCWWAN_ERR_INVALID_ARG - The path input does not contain any image
    • eQCWWAN_ERR_SWIIM_FW_UPDATE_FAIL - Firmware download/switch failed
    • eQCWWAN_ERR_SWIIM_FW_PREFERENCE_MISMATCH - Download success but device offline due to image preference mismatch ( ref. syslogs for cause )
    See also
    See qmerrno.h for eQCWWAN_xxx error values
    Note
    Timeout: NA

◆ unpack_fms_DeleteStoredImage()

int unpack_fms_DeleteStoredImage ( uint8_t *  pResp,
uint16_t  respLen,
unpack_fms_DeleteStoredImage_t pOutput 
)

Unpack function for deleting a specified image.

Parameters
[in]pRespqmi response from modem
[in]respLenqmi response length
[out]pOutputresponse unpacked
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values

◆ unpack_fms_GetImagesPreference()

int unpack_fms_GetImagesPreference ( uint8_t *  pResp,
uint16_t  respLen,
unpack_fms_GetImagesPreference_t pOutput 
)

Get Images Preference unpack

Parameters
[in]pRespqmi response
[in]respLenqmi response length
[out]pOutputunpacked response

◆ unpack_fms_GetStoredImages()

int unpack_fms_GetStoredImages ( uint8_t *  pResp,
uint16_t  respLen,
unpack_fms_GetStoredImages_t pOutput 
)

Get Images Preference unpack

Parameters
[in]pRespqmi response
[in]respLenqmi response length
[out]pOutputunpacked response

◆ unpack_fms_SetImagesPreference()

int unpack_fms_SetImagesPreference ( uint8_t *  pResp,
uint16_t  respLen,
unpack_fms_SetImagesPreference_t pOutput 
)

Set Images Preference unpack

Parameters
[in]pRespqmi response
[in]respLenqmi response length
[out]pOutputunpacked response

◆ upgrade_9x07_9x50_fw()

ULONG upgrade_9x07_9x50_fw ( LPCSTR  path)

This API is used to download firmware to a 9x07 or 9x50 device.

Parameters
[in]path
  • fully qualified path to firmware image to download.
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
Note
Timeout: 12 seconds

◆ UpgradeFirmware2k()

ULONG UpgradeFirmware2k ( CHAR *  pDestinationPath)

This API is used to download firmware to a MC77xx or Gobi 3000 device. For SL909/MC9090, SLQSSetSpkgFormatRequired() needs to be called in advance to specify the download method, Gobi3K or SPKG download, please refer to the API SLQSSetSpkgFormatRequired() for more details of the input values. If SLQSSetSpkgFormatRequired() is not called in advance, it will us Gobi3K firmware download method (MBN files) as the default download method.

This API Performs the following steps:

  1. Verifies arguments.
  2. Verify that device Crash State should be 1 (RESET State).
  3. Informs the SDK of the firmware upgrade path
  4. Updates the images preference on the currently connected device.
  5. Requests the device reset (device will reset after all open handles are released).
    Upon successful completion, the above steps will have been completed, however, the actual upgrade of the firmware will necessarily then follow.
Parameters
[in]pDestinationPath
  • fully qualified path to firmware image to download. The path must
    end with a forward slash. For a Gobi 3000 device the path should
    specify the carrier image folder index i.e.
    "path_to_carrier_image/carrier_index/" where carrier_index
    is a valid sub-directory entry. For 9x30 devices if pDestinationPath
    is not valid on host, it will use pseudo path for image switching.
Returns
eQCWWAN_ERR_NONE on success, eQCWWAN_xxx error value otherwise
See also
See qmerrno.h for eQCWWAN_xxx error values
Note
Timeout: 12 seconds