[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/l4_c2k/uim_nvram.h b/mcu/interface/protocol/l4_c2k/uim_nvram.h
new file mode 100644
index 0000000..db9dae0
--- /dev/null
+++ b/mcu/interface/protocol/l4_c2k/uim_nvram.h
@@ -0,0 +1,272 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2016
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS (""MEDIATEK SOFTWARE"")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN ""AS-IS"" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSKAL_TRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+#ifndef _UIM_NVRAM_H_
+
+#define _UIM_NVRAM_H_ 1
+
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "kal_general_types.h"
+#include "sim_public_enum.h"
+
+#define UICC_DBM_CACHE_CARD_NUM SUPPORT_SIM_TOTAL   /* Number of card info cached in DBM NV */
+#define UICC_ICCID_DATA_LEN 10
+#define UICC_CHV1_DATA_LEN 8
+#define UICC_VSIM_FCP_LEN 32
+#define UICC_EPRL_DATA_LEN 256
+#define UICC_IMSI_DATA_LEN 10
+#define UICC_AD_DATA_LEN 3
+#define UICC_UIMID_DATA_LEN 8
+#define UICC_ACCLOC_DATA_LEN 1
+#define UICC_TERM_DATA_LEN 1
+#define UICC_SSCI_DATA_LEN 1
+#define UICC_NAMLOCK_DATA_LEN 1
+#define UICC_SFUIMID_DATA_LEN 1
+#define UICC_MDN_DATA_LEN 11
+
+/* CSIM Profile Definition */
+#define UTK_TIMER_EXPIRATION 1
+#define UTK_PROFILE_DOWNLOAD 1
+#define UTK_SMSPP_DOWNLOAD 1
+#define UTK_MENU_SELECTION 1
+#define UTK_CMD_RST 1
+#define UTK_TIMER_EXPIRY 1
+#define UTK_UCS2_ENTRY 1
+#define UTK_UCS2_DISP 1
+#define UTK_DISP_TXT 1
+#define UTK_GET_INPUT 1
+#define UTK_MORE_TIME 1
+#define UTK_PLAY_TONE 1
+#define UTK_REFRESH 1
+#define UTK_SELECT_ITEM 1
+#define UTK_SET_UP_CALL 1
+#define UTK_SET_UP_MENU 1
+#define UTK_TIMER_MNGT_START 1
+#define UTK_DISP_TXT_VAR_TIME 1 /*DISPLAY TEXT (Variable Time out)*/
+#define UTK_SEND_SMS 1
+#define UTK_PROVIDELOCALINFO_MCC_MNC_LAC_CellID_IMEI 1
+#define UTK_PROVIDELOCALINFO_NMR 0
+#define UTK_PROVIDELOCALINFO_DATE_TIME 1
+#define UTK_PROVIDELOCALINFO_LANGUAGE 1
+#define UTK_PROVIDELOCALINFO_ENHANCEDTIMER 0
+#define UTK_PROVIDELOCALINFO_ACCESS_TECH 1
+#define UTK_PROVIDELOCALINFO_ESN 0
+#define UTK_POLL_INTERVAL 1
+#define UTK_POLLING_OFF 1
+#define UTK_GET_INKEY 1
+#define UTK_GET_INKEY_HELP 1 /*GET INKEY (help is supported while waiting for 
+                              immediate response or variable timeout) */
+#define UTK_GET_INKEY_VAR_TIME 0 /* GET INKEY (Variable Timeout) */
+#ifdef __SATCE__
+#define UTK_SET_UP_EVENT_LIST     1
+#define UTK_EVENT_MT_CALL         1
+#define UTK_EVENT_CALL_CONNECTED  1
+#define UTK_EVENT_CALL_DISCONNECTED  1
+#define UTK_EVENT_LOCAL_STATUS  1
+#define UTK_EVENT_USER_ACTIVITY  1
+#define UTK_EVENT_IDLE_SCREEN_AVAIL  1
+#define UTK_EVENT_CARD_READER_STATUS 1
+#define UTK_EVENT_LAN_SELECTION      1
+#define UTK_EVENT_BROWSER_TERM       1
+#define UTK_EVENT_DATA_AVAIL         1
+#define UTK_EVENT_CHANNEL_STATUS     1
+#define UTK_EVENT_ACCESS_TECH_STATUS 1
+#define UTK_EVENT_DISP_PARAMS_CHANGED 1
+#define UTK_EVENT_LOCAL_CONNECTION    1
+#define UTK_EVENT_NET_SEARCH_MODE_CHANGE 1
+#define UTK_OPEN_CHANNEL     1
+#define UTK_CLOSE_CHANNEL    1
+#define UTK_RECEIVE_DATA     1
+#define UTK_SEND_DATA        1
+#define UTK_GET_CHANNEL_STATUS 1
+
+#else
+#define UTK_SET_UP_EVENT_LIST     0
+#define UTK_EVENT_MT_CALL         0
+#define UTK_EVENT_CALL_CONNECTED  0
+#define UTK_EVENT_CALL_DISCONNECTED  0
+#define UTK_EVENT_LOCAL_STATUS  0
+#define UTK_EVENT_USER_ACTIVITY  0
+#define UTK_EVENT_IDLE_SCREEN_AVAIL  0
+#define UTK_EVENT_CARD_READER_STATUS 0
+#define UTK_EVENT_LAN_SELECTION      0
+#define UTK_EVENT_BROWSER_TERM       0
+#define UTK_EVENT_DATA_AVAIL         0
+#define UTK_EVENT_CHANNEL_STATUS     0
+#define UTK_EVENT_ACCESS_TECH_STATUS 0
+#define UTK_EVENT_DISP_PARAMS_CHANGED 0
+#define UTK_EVENT_LOCAL_CONNECTION    0
+#define UTK_EVENT_NET_SEARCH_MODE_CHANGE 0
+#define UTK_OPEN_CHANNEL     0
+#define UTK_CLOSE_CHANNEL    0
+#define UTK_RECEIVE_DATA     0
+#define UTK_SEND_DATA        0
+#define UTK_GET_CHANNEL_STATUS 0
+#endif
+
+#define SUPPORT_SOFTKEY_FOR_SELECT_ITEM  0
+#define SUPPORT_SOFTKEY_FOR_SELECT_MENU  0
+#define SOFTKEY_MAX_NUM  2
+#define DISP_HEIGHT_CHAR_NUM 5
+#define SUPPORT_DISP_HEIGHT_SIZING_PARAM 0
+#define DISP_WIDTH_CHAR_NUM  7
+#define SUPPORT_VAR_SIZE_FORTS  0
+#define SUPPORT_DISP_RESIZE     0
+#define SUPPORT_TEXT_WRAPPING   0
+#define SUPPORT_TEXT_SCROLLING  1
+#define WIDTH_REDUCTION 7
+#define SUPPORT_EXTENDED_TEXT   0
+
+#define UTK_TIMER_MANAGEMENT_START_STOP 1
+#define UTK_MAX_CHANNEL_NUM_SUPPORT 7
+#define UTK_TCP_CLIENT_REMOTE 1
+#define UTK_UDP_CLIENT_REMOTE 1
+#define UTK_TCP_SERVER 1
+/* CSIM Profile Definition End*/
+#define TERM_PROFILE_LEN 20
+
+typedef struct
+{
+#ifdef MTK_DEV_CCCI_FS
+   kal_bool IsICCIDValid;
+   kal_bool IsCHVValid;
+#else
+   kal_bool IsICCIDValid:1;
+   kal_bool IsCHVValid:1;
+#endif
+   kal_uint8 CHVData[UICC_CHV1_DATA_LEN];
+   kal_uint8 ICCIDData[UICC_ICCID_DATA_LEN];
+} UiccDbmChvIccidStruct;
+
+typedef struct
+{
+   UiccDbmChvIccidStruct DbmChvIccid[UICC_DBM_CACHE_CARD_NUM]; /* 0 for current Card */
+} UiccDbmCardDataT;
+
+
+typedef struct
+{
+   kal_bool FactoryMode;
+   UiccDbmChvIccidStruct DbmChvIccid;
+}   UiccDbmDataT;
+
+/*C2K MDVSIM*/
+typedef struct
+{
+    kal_uint8 FcpData[UICC_VSIM_FCP_LEN];
+    kal_uint8 EprlData[UICC_EPRL_DATA_LEN];
+}UiccVsimEprlT;
+
+typedef struct
+{
+    kal_uint8 FcpData[UICC_VSIM_FCP_LEN];
+    kal_uint8 ImsiData[UICC_IMSI_DATA_LEN];
+}UiccVsimImsiT;
+
+typedef struct
+{
+    kal_uint8 FcpData[UICC_VSIM_FCP_LEN];
+    kal_uint8 IccidData[UICC_ICCID_DATA_LEN];
+}UiccVsimIccidT;
+
+typedef struct
+{
+    kal_uint8 FcpData[UICC_VSIM_FCP_LEN];
+    kal_uint8 AdData[UICC_AD_DATA_LEN];
+}UiccVsimAdT;
+
+typedef struct
+{
+    kal_uint8 FcpData[UICC_VSIM_FCP_LEN];
+    kal_uint8 UimidData[UICC_UIMID_DATA_LEN];
+}UiccVsimUimidT;
+
+typedef struct
+{
+    kal_uint8 FcpData[UICC_VSIM_FCP_LEN];
+    kal_uint8 AcclocData[UICC_ACCLOC_DATA_LEN];
+}UiccVsimAcclocT;
+
+typedef struct
+{
+    kal_uint8 FcpData[UICC_VSIM_FCP_LEN];
+    kal_uint8 TermData[UICC_TERM_DATA_LEN];
+}UiccVsimTermT;
+
+typedef struct
+{
+    kal_uint8 FcpData[UICC_VSIM_FCP_LEN];
+    kal_uint8 SsciData[UICC_SSCI_DATA_LEN];
+}UiccVsimSsciT;
+
+typedef struct
+{
+    kal_uint8 FcpData[UICC_VSIM_FCP_LEN];
+    kal_uint8 NamlockData[UICC_NAMLOCK_DATA_LEN];
+}UiccVsimNamelockT;
+
+typedef struct
+{
+    kal_uint8 FcpData[UICC_VSIM_FCP_LEN];
+    kal_uint8 SfuimidData[UICC_SFUIMID_DATA_LEN];
+}UiccVsimSfuimidT;
+
+typedef struct
+{
+    kal_uint8 FcpData[UICC_VSIM_FCP_LEN];
+    kal_uint8 MdnData[UICC_MDN_DATA_LEN];
+}UiccVsimMdnT;
+
+typedef struct
+{
+    UiccVsimIccidT VsimIccidValue;
+    UiccVsimEprlT VsimEprlValue; 
+    UiccVsimImsiT VsimImsiMVale;
+    UiccVsimImsiT VsimImsiTVale;
+    UiccVsimAdT VsimAdValue;
+    UiccVsimUimidT VsimUimidValue;
+    UiccVsimAcclocT VsimAcclocValue; 
+    UiccVsimTermT VsimTermValue;
+    UiccVsimSsciT VsimSsciValue;
+    UiccVsimNamelockT VsimNamlockValue;
+    UiccVsimSfuimidT VsimSfuimidValue;
+    UiccVsimMdnT VsimMdnValue; 
+}UiccC2KVsimT;
+
+#endif/* _UIM_NVRAM_H_ */
+