LinuxQMISDK-Lite  SLQS04.00.21
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
lite-fw.h
Go to the documentation of this file.
1 
13 #ifndef _LITE_FW_H_
14 #define _LITE_FW_H_
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 /* Pragmas */
21 #pragma once
22 #include "qmerrno.h"
23 #include "fms.h"
24 #include "dms.h"
25 
26 #define IMG_MASK_MDM (1<<0)
27 #define IMG_MASK_PRI (1<<1)
28 #define IMG_MASK_CLEAR (0x000)
29 #define IMG_MASK_GENERIC (0xFFFF)
30 
31 // Carrier package SKU Info
32 #define LITEFW_CARRIER_PACKAGE_SKU "9999999"
33 #define LITEFW_SKU_STRING_LENGTH 7
34 
35 // Fimware Info String size
36 #define FIRMWARE_INFO_STRING_SIZE 20
37 #define NULL_TERMINATOR_CHAR_SIZE 1
38 
39 /* error Codes */
41 {
42  eSDP_FWDWL_SUCCESS = 0, // Success
43  eSDP_FWDWL_ERR_GENERAL = 100, // 100 - Generic FW download error
44  eSDP_FWDWL_ERR_SDK, // 101 - SDK specific error. Please check syslog for SDK error codes
45  eSDP_FWDWL_ERR_SET_CBK, // 102 - Error in setting SDK callbacks
46  eSDP_FWDWL_ERR_PATH_TOO_LONG, // 103 - Path is too long
47  eSDP_FWDWL_ERR_PATH_NOT_SPECIFIED, // 104 - Mandatory SDK/FW path not set
48  eSDP_FWDWL_ERR_FW_UPGRADE, // 105 - Post FW download check indicates that the FW upgrade has failed.
49  // For example, PRI not updated as expected, FW version not updated etc
50  eSDP_FWDWL_ERR_INVALID_DEV, // 106 - Invalid device
51  eSDP_FWDWL_ERR_INVALID_PATH, // 107 - Invalid Path or No valid firmware or nvu file exist in the path
52  eSDP_FWDWL_ERR_TIMEOUT, // 108 - Download Process Timeout
53  eSDP_FWDWL_ERR_FAIL, // 109 - Download Process Fail
54  eSDP_FWDWL_ERR_PRI_FAIL, // 110 - Download PRI Fail
55  eSDP_FWDWL_ERR_FW_VERSION_FAIL, // 111 - Download Fail Version Not Match
56  eSDP_FWDWL_ERR_SDP_TIMEOUT, // 112 - SSDP mode timeout
59 };
60 
61 // Match this enum with fw_image_type_e in imudefs.h
63  eFW_TYPE_MBN_GOBI, // Not supported in litefw
64  eFW_TYPE_MBN, // Not supported in litefw
65  eFW_TYPE_CWE, //CWE File
66  eFW_TYPE_NVU, //NVU File
67  eFW_TYPE_SPK, //SPK File
68  eFW_TYPE_INVALID, //Invalid File
69  eFW_TYPE_CWE_NVU, //CWE and NVU
70 };
71 
72 /* Model Family */
80 };
81 
82 /* QDL mode */
88 };
89 
90 /* QDL mode Hardware flow control */
96 };
97 
105 void litefw_logsenable(int log_en);
106 
131 typedef struct _litefw_FirmwareInfo_
132 {
140 
151 {
154 
171 
187 int litefw_ExtractFirmwarePartNoByPath(char *pImagePath, litefw_FirmwarePartNo *partno);
188 
205 
218 
231 int litefw_getFileType(char* szPath);
232 
260 unsigned int litefw_DownloadFW(char *pImagePath,char *szTTYPath,int iFWImageType, int image_mask, int iModelFamily);
261 
274 int litefw_GetModelFamily(char *pModelString);
275 
286 
287 
294 char* litefw_GetVersion();
295 
296 
309 typedef void (* litefwlogger)(uint8_t lvl, const char* buff);
310 
322 
332 void litefw_SetReadBlockSize(unsigned long lBlockSize);
333 
334 
345 int litefw_switch_9x07_to_downloadmode(char *szTTYPath);
346 
347 
357 int litefw_switch_to_BootHoldMode(char *szTTYPath);
358 
369 int litefw_SetQTLDownloadMode(int iMode);
370 
378 
389 int litefw_SetQTLHWFlowControl(int iMode);
390 
399 
400 
401 
402 #define libSDP_GetVersion litefw_GetVersion
403 #define libSDP_CalculateImageMask litefw_CalculateImageMask
404 #define libSDP_getFileType litefw_getFileType
405 #define libSDP_ExtractFirmwareParametersByPath litefw_ExtractFirmwareParametersByPath
406 #define libSDP_GetModelFamily litefw_GetModelFamily
407 #define libSDP_CheckValidFirmwareInfo litefw_CheckValidFirmwareInfo
408 #define libSDP_BuildImagesPreferenceRequest litefw_BuildImagesPreferenceRequest
409 #define libSDP_DownloadFW litefw_DownloadFW
410 #define libsdp_set_log_func litefw_set_log_func
411 #define libsdp_SetReadBlockSize litefw_SetReadBlockSize
412 #define LIBSDP_CARRIER_PACKAGE_SKU LITEFW_CARRIER_PACKAGE_SKU
413 #define LIBSDP_SKU_STRING_LENGTH LITEFW_SKU_STRING_LENGTH
416 
417 #ifdef __cplusplus
418 } /* extern "C" { */
419 #endif
420 
421 #endif // _LITE_FW_H_
422 
struct _litefw_FirmwarePartNo_ litefw_FirmwarePartNo
litefw_QDL_FLOW_CONTROLs
Definition: lite-fw.h:91
void litefw_SetReadBlockSize(unsigned long lBlockSize)
Definition: lite-fw.h:79
Definition: lite-fw.h:51
char * litefw_GetVersion()
#define NULL_TERMINATOR_CHAR_SIZE
Definition: lite-fw.h:37
Definition: lite-fw.h:63
litefw_fwdwl_error_codes
Definition: lite-fw.h:40
Definition: lite-fw.h:94
int litefw_ExtractFirmwarePartNoByPath(char *pImagePath, litefw_FirmwarePartNo *partno)
Definition: lite-fw.h:56
Definition: lite-fw.h:48
char szCarrierPriversion_str[20+1]
Definition: lite-fw.h:138
int litefw_CalculateImageMask(unpack_fms_SetImagesPreference_t SetPrefRspFromModem)
char szFwversion_str[20+1]
Definition: lite-fw.h:134
Definition: lite-fw.h:64
Definition: lite-fw.h:50
Definition: lite-fw.h:46
#define FIRMWARE_INFO_STRING_SIZE
Definition: lite-fw.h:36
Definition: lite-fw.h:44
int litefw_BuildImagesPreferenceRequest(litefw_FirmwareInfo info, pack_fms_SetImagesPreference_t *pack)
Definition: lite-fw.h:47
int litefw_getFileType(char *szPath)
Definition: lite-fw.h:87
Definition: lite-fw.h:65
int litefw_GetQTLDownloadMode()
void(* litefwlogger)(uint8_t lvl, const char *buff)
Definition: lite-fw.h:309
Definition: lite-fw.h:86
Definition: lite-fw.h:85
litefwlogger libsdplogger
Definition: lite-fw.h:415
int litefw_switch_to_BootHoldMode(char *szTTYPath)
Definition: lite-fw.h:67
int litefw_switch_9x07_to_downloadmode(char *szTTYPath)
Definition: lite-fw.h:52
Definition: lite-fw.h:43
litefw_Fw_Type
Definition: lite-fw.h:62
Definition: lite-fw.h:75
char szModelid_str[20+1]
Definition: lite-fw.h:133
Definition: lite-fw.h:55
Definition: lite-fw.h:92
Definition: lite-fw.h:74
Definition: lite-fw.h:131
void litefw_logsenable(int log_en)
unsigned int litefw_DownloadFW(char *pImagePath, char *szTTYPath, int iFWImageType, int image_mask, int iModelFamily)
Definition: lite-fw.h:78
Definition: lite-fw.h:58
Definition: lite-fw.h:68
int litefw_GetModelFamily(char *pModelString)
litefw_FirmwareInfo libSDP_FirmwareInfo
Definition: lite-fw.h:414
char szPackageid_str[20+1]
Definition: lite-fw.h:136
Definition: lite-fw.h:76
int litefw_SetQTLHWFlowControl(int iMode)
Definition: lite-fw.h:45
Definition: lite-fw.h:150
char szPartno_str[20+1]
Definition: lite-fw.h:152
int litefw_GetQTLHWFlowControl()
struct _litefw_FirmwareInfo_ litefw_FirmwareInfo
Definition: lite-fw.h:42
int litefw_CheckValidFirmwareInfo(litefw_FirmwareInfo info)
char szSku_str[20+1]
Definition: lite-fw.h:135
Definition: lite-fw.h:69
litefw_QDL_MODEs
Definition: lite-fw.h:83
Definition: lite-fw.h:54
char szCarrier_str[20+1]
Definition: lite-fw.h:137
Definition: lite-fw.h:95
int litefw_ExtractFirmwareParametersByPath(char *pImagePath, litefw_FirmwareInfo *info)
int litefw_SetQTLDownloadMode(int iMode)
Definition: lite-fw.h:93
Definition: fms.h:343
int litefw_set_log_func(litefwlogger *func)
Definition: lite-fw.h:84
Definition: lite-fw.h:53
Definition: lite-fw.h:66
litefw_Models
Definition: lite-fw.h:73
Definition: lite-fw.h:77

Copyright (c) 2011-2015 Sierra Wireless, Inc. All rights reserved