[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/service/nvram/d2_nvram_def.h b/mcu/interface/service/nvram/d2_nvram_def.h
new file mode 100644
index 0000000..3dae2a9
--- /dev/null
+++ b/mcu/interface/service/nvram/d2_nvram_def.h
@@ -0,0 +1,494 @@
+/*****************************************************************************
+* 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) 2005
+*
+* 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 CONSTRUED 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).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef __D2_NVRAM_DEF_H__
+#define __D2_NVRAM_DEF_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+#include "nvram_defs.h"
+#include "nvram_enums.h"
+#include "ps_public_enum.h"
+#include "device.h"
+// LID Enums
+
+
+typedef enum
+{
+ NVRAM_EF_D2_START_LID = NVRAM_LID_GRP_D2(0),
+ NVRAM_EF_D2_DATA_LID = NVRAM_LID_GRP_D2(1),
+ NVRAM_EF_D2_APNINFO_LID = NVRAM_LID_GRP_D2(2),
+ NVRAM_EF_D2_FOP_LID = NVRAM_LID_GRP_D2(3),
+ NVRAM_EF_D2_DEFAULT_PDP_PROFILE_LID = NVRAM_LID_GRP_D2(4),
+ NVRAM_EF_D2_APNSETTING_LID = NVRAM_LID_GRP_D2(6),
+ NVRAM_EF_D2_CFG_LID = NVRAM_LID_GRP_D2(7),
+ NVRAM_EF_D2_IMSTEST_LID = NVRAM_LID_GRP_D2(8),
+ NVRAM_EF_D2_IMSCFG_LID = NVRAM_LID_GRP_D2(9),
+ NVRAM_EF_D2_MCF_DATARETRY_INFO_LID = NVRAM_LID_GRP_D2(11),
+ NVRAM_EF_D2_DDM_QOS_IND_LID = NVRAM_LID_GRP_D2(14),
+ NVRAM_EF_D2_MCF_APN_CFG_LID = NVRAM_LID_GRP_D2(15),
+ NVRAM_EF_D2_URSP_LID = NVRAM_LID_GRP_D2(16),
+ NVRAM_EF_D2_MCF_TEST_HO_CFG_LID = NVRAM_LID_GRP_D2(17),
+ NVRAM_EF_D2_MCF_NORMAL_HO_CFG_LID = NVRAM_LID_GRP_D2(18),
+ NVRAM_EF_D2_VZW_APN_CFG_LID = NVRAM_LID_GRP_D2(19),
+ NVRAM_EF_D2_MCF_MTU_CFG_LID = NVRAM_LID_GRP_D2(20),
+ NVRAM_EF_D2_DNS_CFG_LID = NVRAM_LID_GRP_D2(21),
+ NVRAM_EF_D2_MCF_KEEP_INTERNET_LID = NVRAM_LID_GRP_D2(22),
+ NVRAM_EF_D2_LAST_LID = NVRAM_LID_GRP_D2(63)
+} nvram_lid_d2m_enum;
+
+// VERNO
+#define NVRAM_EF_D2_DATA_LID_VERNO "001"
+#define NVRAM_EF_D2_APNINFO_LID_VERNO "003"
+#define NVRAM_EF_D2_FOP_LID_VERNO "000"
+#define NVRAM_EF_D2_DEFAULT_PDP_PROFILE_LID_VERNO "000"
+#define NVRAM_EF_D2_APNSETTING_LID_VERNO "000"
+#define NVRAM_EF_D2_CFG_LID_VERNO "000"
+#define NVRAM_EF_D2_IMSTEST_LID_VERNO "000"
+#define NVRAM_EF_D2_IMSCFG_LID_VERNO "000"
+#define NVRAM_EF_D2_MCF_APN_CFG_LID_VERNO "001"
+#define NVRAM_EF_D2_MCF_DATARETRY_INFO_LID_VERNO "000"
+#define NVRAM_EF_D2_DDM_QOS_IND_LID_VERNO "000"
+#define NVRAM_EF_D2_URSP_LID_VERNO "000"
+#define NVRAM_EF_D2_MCF_NORMAL_HO_CFG_LID_VERNO "000"
+#define NVRAM_EF_D2_MCF_TEST_HO_CFG_LID_VERNO "000"
+#define NVRAM_EF_D2_VZW_APN_CFG_LID_VERNO "000"
+#define NVRAM_EF_D2_MCF_MTU_CFG_LID_VERNO "000"
+#define NVRAM_EF_D2_DNS_CFG_LID_VERNO "000"
+#define NVRAM_EF_D2_MCF_KEEP_INTERNET_LID_VERNO "002"
+
+// Hash Key
+#define NVRAM_EF_D2_DATA_LID_HASH 0xE2120E70
+#define NVRAM_EF_D2_APNINFO_LID_HASH 0x8754028C
+#define NVRAM_EF_D2_FOP_LID_HASH 0xAF094EF7
+#define NVRAM_EF_D2_DEFAULT_PDP_PROFILE_LID_HASH 0xAD27E22E
+#define NVRAM_EF_D2_APNSETTING_LID_HASH 0xEDBEA7A8
+#define NVRAM_EF_D2_CFG_LID_HASH 0x7F267B87
+#define NVRAM_EF_D2_IMSTEST_LID_HASH 0x019A18D1
+#define NVRAM_EF_D2_IMSCFG_LID_HASH 0xF26D36EA
+#define NVRAM_EF_D2_MCF_APN_CFG_LID_HASH 0xF9BF2D63
+#define NVRAM_EF_D2_MCF_DATARETRY_INFO_LID_HASH 0x790B131C
+#define NVRAM_EF_D2_DDM_QOS_IND_LID_HASH 0x342067A4
+#define NVRAM_EF_D2_URSP_LID_HASH 0xBE69BC10
+#define NVRAM_EF_D2_MCF_NORMAL_HO_CFG_LID_HASH 0xF8D6F88E
+#define NVRAM_EF_D2_MCF_TEST_HO_CFG_LID_HASH 0x6E517E3C
+#define NVRAM_EF_D2_VZW_APN_CFG_LID_HASH 0x20845324
+#define NVRAM_EF_D2_MCF_MTU_CFG_LID_HASH 0x57FBAFEE
+#define NVRAM_EF_D2_DNS_CFG_LID_HASH 0x55596088
+#define NVRAM_EF_D2_MCF_KEEP_INTERNET_LID_HASH 0xDC04A686
+
+// Data Structure of Each LID
+typedef struct
+{
+ kal_uint8 iccid[128];
+ kal_uint8 imsi[128];
+ kal_uint8 slot_id; // ap slot view 1, 2, 3...
+} nvram_d2_data_struct;
+
+typedef struct
+{
+ kal_uint8 ID[8]; /* IE_STRING_LEN = 5 */
+ kal_uint8 contents[32]; /* EGPCO_IE_CONTENTS_STRING_LEN = 32 */
+}nvram_d2_pco_ie_struct;
+
+typedef struct
+{
+ kal_uint8 iccid[64];
+ kal_uint8 imsi[64];
+ kal_uint8 apn[128];
+ kal_uint8 apn_type[128];
+ kal_uint8 pdp_type[128];
+ kal_uint8 roam_prot[128];
+ kal_uint8 auth_type;
+ kal_uint8 username[128];
+ kal_uint8 passwd[128];
+ kal_uint8 p_cscf_discovery;
+ kal_uint8 im_cn_signalling_flag;
+ kal_uint8 emergency_flag;
+ kal_uint8 op_id;
+ kal_bool is_pco_present; /* PCO flag */
+ kal_uint8 IE_count; /* PCO IE count */
+ nvram_d2_pco_ie_struct IE[16]; /* PCO IE, MAX_IE_COUNT = 16 */
+} nvram_d2_apninfo_struct;
+
+typedef struct
+{
+ kal_uint32 fop;
+} nvram_d2_fop_struct;
+
+typedef struct
+{
+ kal_uint8 qos_enabled_value;
+ kal_uint8 qos_data_string[255];
+} nvram_ddm_qos_enable_struct;
+
+typedef struct
+{
+ kal_uint8 context_id;
+ kal_uint8 pdp_type[10];
+ kal_uint8 apn_len;
+ kal_uint8 apn[100];
+ kal_uint8 p_cscf_discovery;
+ kal_uint8 im_cn_signalling_flag;
+ kal_uint8 request_type;
+ kal_uint8 emergency_flag;
+ kal_uint8 auth_type;
+ kal_uint8 username[128];
+ kal_uint8 passwd[128];
+} nvram_d2_default_pdp_profile_struct;
+
+typedef struct
+{
+ kal_uint32 wapn;
+ kal_uint8 apn[128];
+ kal_uint8 pdp_type[128];
+ kal_uint8 roam_prot[128];
+ kal_uint8 auth_type;
+ kal_uint8 username[128];
+ kal_uint8 passwd[128];
+ kal_uint8 carrier_enabled;
+ kal_uint32 apncl;
+ kal_uint8 apnni[128];
+ kal_uint8 apn_type[128];
+ kal_uint8 apnbear[128];
+ kal_uint8 apnenable[128];
+ kal_uint32 apntime;
+ kal_uint32 max_conn;
+ kal_uint32 max_conn_t;
+ kal_uint32 wait_time;
+ kal_uint32 throttle_time;
+} nvram_d2_apnsetting_struct;
+
+typedef struct
+{
+ kal_uint8 iccid[128];
+ kal_uint8 mobile_data;
+ kal_uint8 data_roaming;
+ kal_uint8 volte;
+ kal_uint8 ims_test_mode;
+ kal_uint8 reserved[124];
+} nvram_d2_cfg_struct;
+
+typedef struct
+{
+ kal_uint8 mode;
+} nvram_d2_imstest_struct;
+
+typedef struct
+{
+ kal_uint8 iccid[128];
+ kal_uint8 volte_enable;
+ kal_uint8 vilte_enable;
+ kal_uint8 vowifi_enable;
+ kal_uint8 viwifi_enable;
+ kal_uint8 ims_sms_enable;
+ kal_uint8 eims_enable;
+} nvram_d2_imscfg_struct;
+
+typedef struct
+{
+ kal_bool is_valid; /* Whether this config. is valid or not*/
+ kal_uint32 type; /* APN Type, defined in ddm_apn_type_enum */
+ kal_uint8 protocol; /* Protocol (PDP) Type, IPV4:0x21, IPV6:0x57, IPV4V6:0x8D (enum) */
+ kal_uint8 roaming_protocol; /* Rroaming Protocol Type, IPV4:0x21, IPV6:0x57, IPV4V6:0x8D (enum) */
+ kal_uint8 authtype; /* Auth Type, 0:NONE, 1:PAP, 2:CHAP (enum) */
+ kal_uint32 network_type_bitmask; /* Network Type Bitmask */
+ kal_uint8 mvno_type; /* MVNO type {PNN, SPN, GID, IMSI} */
+ kal_uint8 mvno_match_data[100]; /* Match data of corresponding MVNO type */
+ kal_uint8 apn[128]; /* APN Name */
+ kal_uint8 user[128]; /* Username */
+ kal_uint8 password[128]; /* Password */
+} nvram_d2_mcf_apn_cfg_entry_struct;
+
+typedef struct
+{
+ nvram_d2_mcf_apn_cfg_entry_struct apn_cfg[10];
+} nvram_d2_mcf_apn_cfg_struct;
+
+typedef struct
+{
+ kal_uint8 dataretry_info[256];
+} nvram_ddm_mcf_dataretry_info_struct;
+typedef struct
+{
+ nvram_ddm_mcf_dataretry_info_struct dataretry_info;
+} nvram_ddm_mcf_pdn_dataretry_info_struct;
+
+typedef struct
+{
+ kal_uint8 data[15000];
+} nvram_d2_ursp_struct;
+
+typedef struct
+{
+ kal_uint32 ddc_time;
+ kal_uint32 retrytime[32];
+ kal_uint32 retry1stran_time;
+ kal_uint32 fail_noipv6_retrytime;
+} nvram_d2_mcf_normal_ho_cfg_struct;
+
+typedef nvram_d2_mcf_normal_ho_cfg_struct nvram_d2_mcf_test_ho_cfg_struct;
+
+typedef struct
+{
+ kal_uint32 wapn; /* WAPN, could treat it as APN index */
+ kal_uint32 apncl; /* APN Class */
+ kal_uint8 apntype; /* PDP Type */
+ kal_uint8 apnni[128]; /* APN Name */
+ kal_bool apned; /* APN Enable/Disable */
+ kal_uint8 apnb[16]; /* APN Bearer */
+ kal_uint32 apntimer; /* APN Timer */
+ kal_uint32 max_conn; /* Max Conn. */
+ kal_uint32 max_conn_t; /* Max Conn. T */
+ kal_uint32 wait_time; /* Wait Time */
+ kal_uint32 throttle_time; /* Throttle Time */
+} nvram_d2_vzw_apn_cfg_entry_struct;
+
+typedef struct
+{
+ nvram_d2_vzw_apn_cfg_entry_struct apn_cfg[8];
+} nvram_d2_vzw_apn_cfg_struct;
+
+typedef struct
+{
+ kal_uint8 apn[128];
+ kal_uint32 mtu_v4;
+ kal_uint32 mtu_v6;
+} nvram_d2_mcf_mtu_cfg_entry_struct;
+
+typedef struct
+{
+ kal_bool is_valid; /* Whether this config. is valid or not*/
+ kal_bool is_mcf_first; /* Whether this config. is first or network*/
+ kal_bool is_apn_valid; /* Whether this config. need by APN*/
+ nvram_d2_mcf_mtu_cfg_entry_struct mtu_cfg[10]; /* MTU config */
+
+} nvram_d2_mcf_mtu_cfg_struct;
+
+typedef struct
+{
+ kal_bool is_valid; /* Whether this config. is valid or not*/
+ kal_bool enable_keep; /* 0:disable, 1:enable */
+ kal_uint8 rat; /* 0:all rat, 1:2/3G, 2:4G, 3:5G */
+} nvram_d2_mcf_keep_internet_struct;
+
+typedef struct
+{
+ kal_uint8 dns_v4_prim[4];
+ kal_uint8 dns_v4_sec[4];
+ kal_uint8 dns_v6_prim[16];
+ kal_uint8 dns_v6_sec[16];
+} nvram_d2_dns_cfg_struct;
+
+// Size and Total
+#define NVRAM_EF_D2_DATA_SIZE sizeof(nvram_d2_data_struct)
+#define NVRAM_EF_D2_DATA_TOTAL 1
+#define NVRAM_EF_D2_APNINFO_SIZE sizeof(nvram_d2_apninfo_struct)
+#define NVRAM_EF_D2_APNINFO_TOTAL (1*MAX_SIM_NUM)
+#define NVRAM_EF_D2_FOP_SIZE sizeof(nvram_d2_fop_struct)
+#define NVRAM_EF_D2_FOP_TOTAL 1
+#define NVRAM_EF_D2_DEFAULT_PDP_PROFILE_SIZE sizeof(nvram_d2_default_pdp_profile_struct)
+#define NVRAM_EF_D2_DEFAULT_PDP_PROFILE_TOTAL (1*MAX_SIM_NUM)
+#define NVRAM_EF_D2_APNSETTING_SIZE sizeof(nvram_d2_apnsetting_struct)
+#define NVRAM_EF_D2_APNSETTING_TOTAL (8*MAX_SIM_NUM)
+#define NVRAM_EF_D2_CFG_SIZE sizeof(nvram_d2_cfg_struct)
+#define NVRAM_EF_D2_CFG_TOTAL (1*MAX_SIM_NUM)
+#define NVRAM_EF_D2_IMSTEST_SIZE sizeof(nvram_d2_imstest_struct)
+#define NVRAM_EF_D2_IMSTEST_TOTAL (1)
+#define NVRAM_EF_D2_IMSCFG_SIZE sizeof(nvram_d2_imscfg_struct)
+#define NVRAM_EF_D2_IMSCFG_TOTAL (1*MAX_SIM_NUM)
+#define NVRAM_EF_D2_MCF_APN_CFG_SIZE sizeof(nvram_d2_mcf_apn_cfg_struct)
+#define NVRAM_EF_D2_MCF_APN_CFG_TOTAL 1
+#define NVRAM_EF_D2_MCF_DATARETRY_INFO_SIZE sizeof(nvram_ddm_mcf_pdn_dataretry_info_struct)
+#define NVRAM_EF_D2_MCF_DATARETRY_INFO_TOTAL 1 * MAX_SIM_NUM
+#define NVRAM_EF_D2_DDM_QOS_IND_SIZE sizeof(nvram_ddm_qos_enable_struct)
+#define NVRAM_EF_D2_DDM_QOS_IND_TOTAL (1*MAX_SIM_NUM)
+#define NVRAM_EF_D2_URSP_SIZE sizeof(nvram_d2_ursp_struct)
+#define NVRAM_EF_D2_URSP_TOTAL (1*MAX_SIM_NUM)
+#define NVRAM_EF_D2_MCF_NORMAL_HO_CFG_SIZE sizeof(nvram_d2_mcf_normal_ho_cfg_struct)
+#define NVRAM_EF_D2_MCF_NORMAL_HO_CFG_TOTAL (1*MAX_SIM_NUM)
+#define NVRAM_EF_D2_MCF_TEST_HO_CFG_SIZE sizeof(nvram_d2_mcf_test_ho_cfg_struct)
+#define NVRAM_EF_D2_MCF_TEST_HO_CFG_TOTAL (1*MAX_SIM_NUM)
+#define NVRAM_EF_D2_VZW_APN_CFG_SIZE sizeof(nvram_d2_vzw_apn_cfg_struct)
+#define NVRAM_EF_D2_VZW_APN_CFG_TOTAL 1
+#define NVRAM_EF_D2_MCF_MTU_CFG_SIZE sizeof(nvram_d2_mcf_mtu_cfg_struct)
+#define NVRAM_EF_D2_MCF_MTU_CFG_TOTAL 1
+#define NVRAM_EF_D2_MCF_KEEP_INTERNET_SIZE sizeof(nvram_d2_mcf_keep_internet_struct)
+#define NVRAM_EF_D2_MCF_KEEP_INTERNET_TOTAL 1
+#define NVRAM_EF_D2_DNS_CFG_SIZE sizeof(nvram_d2_dns_cfg_struct)
+#define NVRAM_EF_D2_DNS_CFG_TOTAL (1*MAX_SIM_NUM)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __D2_NVRAM_DEF_H__ */