Linux SDK (lite-qmi)  MBPL_SDK_R25_ENG3
qaGobiApiFms.h
Go to the documentation of this file.
1 
9 /*
10  * Copyright: © 2011-2105 Sierra Wireless, Inc. all rights reserved
11  */
12 #ifndef __GOBI_API_FMS_H__
13 #define __GOBI_API_FMS_H__
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 /* MC7xx CWE Header SPKGS defines */
20 #define SLQSFWINFO_MODELID_SZ 20
21 #define SLQSFWINFO_BOOTVERSION_SZ 85
22 #define SLQSFWINFO_APPVERSION_SZ 85
23 #define SLQSFWINFO_SKU_SZ 15
24 #define SLQSFWINFO_PACKAGEID_SZ 85
25 #define SLQSFWINFO_CARRIER_SZ 20
26 #define SLQSFWINFO_PRIVERSION_SZ 16
27 #define SLQSFWINFO_CUR_CARR_NAME 17
28 #define SLQSFWINFO_CUR_CARR_REV 13
29 /* Gobi .mbn image defines */
30 #define GOBI_MBN_IMG_ID_SIZE 16
31 #define TOTAL_IMAGE_ID_STRING_SIZE 100
32 #define GOBI_MBN_IMG_ID_STR_LEN TOTAL_IMAGE_ID_STRING_SIZE
33 #define GOBI_MBN_BUILD_ID_STR_LEN TOTAL_IMAGE_ID_STRING_SIZE
34 #define GOBI_LISTENTRIES_MAX 2
35 #define GOBI_SET_IMG_PREF_RSPLEN 40
36 #define DEVICE_SHUTDOWN 5
37 #define DEVICE_RESET 4
38 #define DEVICE_OFFLINE 3
39 
40 #define FIRMWARE_UPDATE_SUCCESS 0x01
41 #define FIRMWARE_UPDATE_FAIL 0x01
42 #define PRI_UPDATE_FAIL 0x02
43 #define FIRMWARE_UPGRADE_SUCCESS 0x00
44 
45 #define IMG_ID_LEN TOTAL_IMAGE_ID_STRING_SIZE
46 #define BUILD_ID_LEN TOTAL_IMAGE_ID_STRING_SIZE //100
47 #define G3K_FIRMWARE_DOWNLOAD 1
48 #define SPKG_FIRMWARE_DOWNLOAD 2
49 
50 #define UNIQUE_ID_LEN 16
51 #define BUILD_ID_MAX_LEN 255
52 #define IMGDETAILS_LEN 16
53 #define MAX_IMAGE_IDE_ELEMENTS 50
54 
71 struct fwinfo_s
72 {
73  ULONG FirmwareID;
74  ULONG Technology;
75  ULONG Carrier;
76  ULONG Region;
77  ULONG GPSCapability;
78 };
79 
106  CHAR modelid_str[SLQSFWINFO_MODELID_SZ];
107  CHAR bootversion_str[SLQSFWINFO_BOOTVERSION_SZ];
108  CHAR appversion_str[SLQSFWINFO_APPVERSION_SZ];
109  CHAR sku_str[SLQSFWINFO_SKU_SZ];
110  CHAR packageid_str[SLQSFWINFO_PACKAGEID_SZ];
111  CHAR carrier_str[SLQSFWINFO_CARRIER_SZ];
112  CHAR priversion_str[SLQSFWINFO_PRIVERSION_SZ];
113  CHAR cur_carr_name[SLQSFWINFO_CUR_CARR_NAME];
114  CHAR cur_carr_rev[SLQSFWINFO_CUR_CARR_REV];
115 };
116 
149 {
150  union
151  {
152  struct fwinfo_s g;
153  struct slqsfwinfo_s s;
154  } dev;
155 };
156 
176 extern ULONG GetImageStore(
177  WORD imageStorePathSize,
178  CHAR *pImageStorePath );
179 
186 {
187  eGOBI_IMG_TECH_CDMA = 0, /* 0 - CDMA */
188  eGOBI_IMG_TECH_UMTS /* 1 - UMTS */
189 };
190 
197 {
198  eGOBI_IMG_CAR_GENERIC = 1, /* 001 */
199  eGOBI_IMG_CAR_FACTORY, /* 002 */
200  eGOBI_IMG_CAR_NORF, /* 003 */
201 
202  eGOBI_IMG_CAR_VERIZON = 101, /* 101 */
203  eGOBI_IMG_CAR_SPRINT, /* 102 */
204  eGOBI_IMG_CAR_ALLTEL, /* 103 */
205  eGOBI_IMG_CAR_BELL, /* 104 */
206  eGOBI_IMG_CAR_TELUS, /* 105 */
207  eGOBI_IMG_CAR_US, /* 106 */
208  eGOBI_IMG_CAR_TELSTRA1, /* 107 */
209  eGOBI_IMG_CAR_CHINA_UNICOM, /* 108 */
210  eGOBI_IMG_CAR_TELCOM_NZ, /* 109 */
211  eGOBI_IMG_CAR_SK_TELCOM1, /* 110 */
212  eGOBI_IMG_CAR_RELIANCE1, /* 111 */
213  eGOBI_IMG_CAR_TATA, /* 112 */
214  eGOBI_IMG_CAR_METROPCS, /* 113 */
215  eGOBI_IMG_CAR_LEAP, /* 114 */
216  eGOBI_IMG_CAR_KDDI, /* 115 */
217  eGOBI_IMG_CAR_IUSACELL, /* 116 */
218  eGOBI_IMG_CAR_CHINA_TELECOM, /* 117 */
219  eGOBI_IMG_CAR_OMH, /* 118 */
220  eGOBI_IMG_CAR_GENERIC_CDMA, /* 119 */
221 
222  eGOBI_IMG_CAR_ATT = 201, /* 201 */
223  eGOBI_IMG_CAR_VODAFONE, /* 202 */
224  eGOBI_IMG_CAR_TMOBILE, /* 203 */
225  eGOBI_IMG_CAR_ORANGE, /* 204 */
226  eGOBI_IMG_CAR_TELEFONICA, /* 205 */
227  eGOBI_IMG_CAR_TELCOM_ITALIA, /* 206 */
228  eGOBI_IMG_CAR_3, /* 207 */
229  eGOBI_IMG_CAR_O2, /* 208 */
230  eGOBI_IMG_CAR_SFR, /* 209 */
231  eGOBI_IMG_CAR_SWISSCOM, /* 210 */
232  eGOBI_IMG_CAR_CHINA_MOBILE, /* 211 */
233  eGOBI_IMG_CAR_TELSTRA2, /* 212 */
234  eGOBI_IMG_CAR_SINGTEL_OPTUS, /* 213 */
235  eGOBI_IMG_CAR_RELIANCE2, /* 214 */
236  eGOBI_IMG_CAR_BHARTI, /* 215 */
237  eGOBI_IMG_CAR_NTT_DOCOMO, /* 216 */
238  eGOBI_IMG_CAR_EMOBILE, /* 217 */
239  eGOBI_IMG_CAR_SOFTBANK, /* 218 */
240  eGOBI_IMG_CAR_KT_FREETEL, /* 219 */
241  eGOBI_IMG_CAR_SK_TELCOM2, /* 220 */
242  eGOBI_IMG_CAR_TELENOR, /* 221 */
243  eGOBI_IMG_CAR_NETCOM, /* 222 */
244  eGOBI_IMG_CAR_TELIASONERA, /* 223 */
245  eGOBI_IMG_CAR_AMX_TELCEL, /* 224 */
246  eGOBI_IMG_CAR_BRASIL_VIVO, /* 225 */
247  eGOBI_IMG_CAR_AERIS, /* 226 */
248  eGOBI_IMG_CAR_ROGERS /* 227 */
249 };
250 
257 {
258  eGOBI_IMG_REG_NA = 0, /* 0 - North America */
259  eGOBI_IMG_REG_LA, /* 1 - Latin America */
260  eGOBI_IMG_REG_EU, /* 2 - Europe */
261  eGOBI_IMG_REG_ASIA, /* 3 - Asia */
262  eGOBI_IMG_REG_AUS, /* 4 - Australia */
263  eGOBI_IMG_REG_GLOBAL /* 5 - Global */
264 };
265 
272 {
273  eGOBI_IMG_GPS_NONE = 0, /* 0 - None */
274  eGOBI_IMG_GPS_STAND_ALONE, /* 1 - Stand-alone */
275  eGOBI_IMG_GPS_ASSISTED, /* 2 - Stand-alone + AGPS + XTRA */
276  eGOBI_IMG_GPS_NO_XTRA /* 3 - Stand-alone + AGPS */
277 };
278 
295 ULONG SLQSGetFirmwareInfo(
296  struct qmifwinfo_s *pinfo );
297 
323  LPCSTR path,
324  struct qmifwinfo_s *pinfo );
325 
349  LPCSTR path,
350  struct qmifwinfo_s *pinfo );
351 
379 ULONG SLQSGetImageInfo(
380  LPCSTR path,
381  struct qmifwinfo_s *pinfo );
382 
418 ULONG UpgradeFirmware2k(
419  CHAR *pDestinationPath );
420 
427 #pragma pack(push)
428 #pragma pack(1)
429 
451 {
452  BYTE imageType;
453  BYTE imageId[GOBI_MBN_IMG_ID_STR_LEN];
454  BYTE buildIdLength;
455  CHAR buildId[GOBI_MBN_BUILD_ID_STR_LEN];
456 };
457 
472 {
473  BYTE listSize;
474  struct ImageElement listEntries[GOBI_LISTENTRIES_MAX];
475 };
476 
482 #pragma pack(pop)
483 
506 extern ULONG GetImagesPreference(
507  ULONG *pImageListSize,
508  struct PrefImageList *pImageList );
509 
553 extern ULONG SetImagesPreference(
554  ULONG imageListSize,
555  BYTE *pImageList,
556  ULONG bForceDownload,
557  BYTE modemIndex,
558  ULONG *pImageTypesSize,
559  BYTE *pImageTypes );
560 
567 #pragma pack(push)
568 #pragma pack(1)
569 
594 {
595  BYTE storageIndex;
596  BYTE failureCount;
597  BYTE imageID[GOBI_MBN_IMG_ID_STR_LEN];
598  BYTE buildIDLength;
599  CHAR buildID[GOBI_MBN_BUILD_ID_STR_LEN];
600 };
601 
626 {
627  BYTE imageType;
628  BYTE maxImages;
629  BYTE executingImage;
630  BYTE imageIDSize;
631  struct ImageIdElement imageIDElement[MAX_IMAGE_IDE_ELEMENTS];
632 };
633 
645 struct ImageList
646 {
647  BYTE listSize;
648  struct ImageIDEntries imageIDEntries[2];
649 };
650 
656 #pragma pack(pop)
657 
680 ULONG GetStoredImages(
681  ULONG *pImageListSize,
682  BYTE *pImageList );
683 
707 ULONG DeleteStoredImage(
708  ULONG imageInfoSize,
709  BYTE *pImageInfo );
710 
739  LPCSTR path,
740  BYTE imgType,
741  struct slqsfwinfo_s *pinfo );
742 
767  CHAR *pDestinationPath );
768 
816  CHAR *pDestinationPath );
817 
834 ULONG SLQSGetBootVersionNumber(ULONG *bootversion);
835 
847 BOOL SLQSIsSpkgFormatRequired(void);
848 
863 void SLQSSetSpkgFormatRequired(BYTE isneeded);
864 
865 ULONG upgrade_mc77xx_fw(
866  LPCSTR path );
867 
874 {
875  eGOBI_DEV_SERIES_UNKNOWN = -1, /* unknown */
876  eGOBI_DEV_SERIES_NON_GOBI = 0, /* Non Gobi */
877  eGOBI_DEV_SERIES_G3K, /* G3K */
878  eGOBI_DEV_SERIES_SIERRA_GOBI, /* MC9090 SL9090 */
879  eGOBI_DEV_SERIES_9X15, /* 9x15 */
880  eGOBI_DEV_SERIES_9X30, /* 9x30 */
881  eGOBI_DEV_SERIES_9X07_9X50, /* 9x07, 9x50 */
882  eGobi_DEV_SERIES_MC83 /* MC83 */
883 };
897 {
898  enum eGobiDeviceSeries eDevice;
899  ULONG uResult;
900 };
901 
914 void eGetDeviceSeries(struct sGetDeviceSeriesResult* result);
915 
916 
951 {
952  ULONG m_nCarrierId;
953  ULONG m_nFolderId;
954  ULONG m_nStorage;
955  BYTE m_FwImageId[IMG_ID_LEN];
956  BYTE m_FwBuildId[BUILD_ID_LEN];
957  BYTE m_PriImageId[IMG_ID_LEN];
958  BYTE m_PriBuildId[BUILD_ID_LEN];
959 };
980 ULONG SLQSSwiGetAllCarrierImages(ULONG *pNumOfItems,
981  struct SWI_STRUCT_CarrierImage *pCarrierImages,
982  char *pFolderPath);
983 
1010 ULONG DownloadToSlot(
1011  CHAR* path, struct slqsfwinfo_s fwImgInfo,
1012  struct slqsfwinfo_s priImgInfo, BYTE slot, BYTE forceDownload);
1013 
1066  CHAR *pPath, BYTE slot_index, BYTE force_download );
1067 
1088 ULONG SLQSGetValidFwPriCombinations (struct ImageList *pStoredImageList,
1089  ULONG *pValidCombinationSize,
1090  struct SWI_STRUCT_CarrierImage *pValidCombinations);
1091 
1105 ULONG SLQSSetSIMBasedImageSwitching(void);
1106 
1120 void SLQSSetCrashStateCheckIgnore(BOOL ignore);
1143 typedef struct
1144 {
1145  BYTE imageType;
1146  BYTE uniqueID[UNIQUE_ID_LEN];
1147  BYTE buildIDLen;
1148  BYTE buildID[BUILD_ID_MAX_LEN];
1149 } CurrImageInfo;
1150 
1176 typedef struct
1177 {
1178  BYTE numEntries;
1179  CurrImageInfo *pCurrImgInfo;
1180  CHAR priver[IMGDETAILS_LEN];
1181  CHAR pkgver[IMGDETAILS_LEN];
1182  CHAR fwvers[IMGDETAILS_LEN];
1183  CHAR carrier[IMGDETAILS_LEN];
1184 } CurrentImgList;
1185 
1204 ULONG SLQSSwiGetFirmwareCurr( CurrentImgList *pCurrentImgList );
1205 
1223 ULONG upgrade_9x07_9x50_fw(
1224  LPCSTR path );
1225 
1254 ULONG SetImagePath(
1255  CHAR *path,
1256  ULONG isMDM9x15,
1257  WORD imgMask,
1258  BYTE mdmProtocol);
1259 
1281 int SLQSIsBootloaderDebugEnabled(const char* szPath,
1282  const char* pQsn );
1283 
1284 #ifdef __cplusplus
1285 } /* extern "C" { */
1286 #endif
1287 
1288 #endif /* __GOBI_API_FMS_H__ */
ULONG SLQSGetValidFwPriCombinations(struct ImageList *pStoredImageList, ULONG *pValidCombinationSize, struct SWI_STRUCT_CarrierImage *pValidCombinations)
BOOL SLQSIsSpkgFormatRequired(void)
ULONG SetImagesPreference(ULONG imageListSize, BYTE *pImageList, ULONG bForceDownload, BYTE modemIndex, ULONG *pImageTypesSize, BYTE *pImageTypes)
Definition: qaGobiApiFms.h:450
ULONG upgrade_9x07_9x50_fw(LPCSTR path)
eGobiImageCarrier
Definition: qaGobiApiFms.h:196
ULONG SLQSGetImageInfoMC77xx(LPCSTR path, struct qmifwinfo_s *pinfo)
ULONG SLQSSwiGetFirmwareCurr(CurrentImgList *pCurrentImgList)
Definition: qaGobiApiFms.h:896
ULONG SLQSUpgradeFirmware9x15(CHAR *pDestinationPath)
void eGetDeviceSeries(struct sGetDeviceSeriesResult *result)
Definition: qaGobiApiFms.h:471
Definition: qaGobiApiFms.h:1176
ULONG DeleteStoredImage(ULONG imageInfoSize, BYTE *pImageInfo)
void SLQSSetSpkgFormatRequired(BYTE isneeded)
Definition: qaGobiApiFms.h:625
ULONG UpgradeFirmware2k(CHAR *pDestinationPath)
ULONG SLQSGetImageInfo_9x15(LPCSTR path, BYTE imgType, struct slqsfwinfo_s *pinfo)
void SLQSSetCrashStateCheckIgnore(BOOL ignore)
ULONG GetImagesPreference(ULONG *pImageListSize, struct PrefImageList *pImageList)
ULONG SLQSSetSIMBasedImageSwitching(void)
Definition: qaGobiApiFms.h:148
Definition: qaGobiApiFms.h:71
ULONG SLQSGetFirmwareInfo(struct qmifwinfo_s *pinfo)
eGobiImageGPS
Definition: qaGobiApiFms.h:271
Definition: qaGobiApiFms.h:593
Definition: qaGobiApiFms.h:645
ULONG SLQSDownloadFirmwareToSlot(CHAR *pPath, BYTE slot_index, BYTE force_download)
eGobiImageTech
Definition: qaGobiApiFms.h:185
eGobiImageRegion
Definition: qaGobiApiFms.h:256
Definition: qaGobiApiFms.h:105
ULONG SetImagePath(CHAR *path, ULONG isMDM9x15, WORD imgMask, BYTE mdmProtocol)
eGobiDeviceSeries
Definition: qaGobiApiFms.h:873
ULONG GetStoredImages(ULONG *pImageListSize, BYTE *pImageList)
ULONG SLQSGetBootVersionNumber(ULONG *bootversion)
ULONG SLQSGetImageInfo(LPCSTR path, struct qmifwinfo_s *pinfo)
ULONG SLQSUpgradeFirmware9x07(CHAR *pDestinationPath)
ULONG SLQSSwiGetAllCarrierImages(ULONG *pNumOfItems, struct SWI_STRUCT_CarrierImage *pCarrierImages, char *pFolderPath)
ULONG SLQSGetImageInfoMC83xx(LPCSTR path, struct qmifwinfo_s *pinfo)
int SLQSIsBootloaderDebugEnabled(const char *szPath, const char *pQsn)
Definition: qaGobiApiFms.h:1143
ULONG DownloadToSlot(CHAR *path, struct slqsfwinfo_s fwImgInfo, struct slqsfwinfo_s priImgInfo, BYTE slot, BYTE forceDownload)
Definition: qaGobiApiFms.h:950
ULONG GetImageStore(WORD imageStorePathSize, CHAR *pImageStorePath)