[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/l2_c2k/evdo/ftapf.h b/mcu/interface/protocol/l2_c2k/evdo/ftapf.h
new file mode 100644
index 0000000..ec09637
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/evdo/ftapf.h
@@ -0,0 +1,247 @@
+/*****************************************************************************
+*  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 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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.  
+* 
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+* 
+* Copyright (c) 2002-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*****************************************************************************
+* 
+* FILE NAME   : FTAPF.h
+*
+* DESCRIPTION : Varaibles and API definition for FTAP module.
+*
+* HISTORY     :
+*****************************************************************************/
+#ifndef _FTAPF_H_
+#define _FTAPF_H_
+
+#include "do_dsaapi.h"
+#include "do_fcpapi.h"
+#include "fcpdefs.h"
+
+#define FTAP_OTA_MESSAGEID_LEN            8
+#define FTAP_OTA_TRANSID_LEN              8
+#define FETAP_PARAASSIGNMSG_RECORD_NUM    5
+#define FTAP_PARAASSIGNMSG_RECORD_NUM     4
+#define FTAP_PARAM_ASSIGN_ATTR_LEN        8
+#define FTAP_PARAM_ASSIGN_ATTR_ID_LEN     8
+#define FTAP_PARAM_ASSIGN_ATTR_VAL_LEN    8
+#define FTAP_STATISTICREQ_RECORD_NUM      3
+#define FTAP_STATUS_ATTR_LEN              8
+#define FTAP_STATUS_ATTR_ID_LEN               8
+#define FTAP_STATUS_ATTR_PARAM1_OVERFLOW_LEN  1
+#define FTAP_STATUS_ATTR_PARAM1_VALUE_LEN     15
+#define FTAP_STATUS_ATTR_PARAM2_OVERFLOW_LEN  1
+#define FTAP_STATUS_ATTR_PARAM2_VALUE1_LEN    23
+#define FTAP_STATUS_ATTR_PARAM2_VALUE2_LEN    15  /*Only for CCTime*/
+#define FTAP_LOOPBACK_PRO_LEN                 2
+#define FTAP_LOOPBACK_PKTTYPE_LEN             4
+#define FTAP_LOOPBACK_SEQ_LEN                 14
+#define FTAP_LOOPBACK_RES_LEN                 2
+
+#define PENDING_TRAFFICCMP     0x01
+#define PENDING_STATUSGETRSP   0x02
+#define PENDING_STATUSCLRRSP   0x04
+
+#define CONFIGTIMER_INTERVAL   4000
+#define CONFIGSTAT_INTERVAL    2000
+
+typedef enum
+{
+    FCP_FTAP_INIT_SUBTYPE_ERR,
+    FCP_FTAP_STATE_ERR,
+    FCP_FTAP_OTA_PARAMASSIGN_MSG_ID_ERR,
+    FCP_FTAP_DECODE_OTA_PARAMASSIGN_MSG_ID_ERR,
+    FCP_FTAP_OTA_PARAMASSIGN_ERR,
+    FCP_FTAP_OTA_STATUS_CLR_GET_MSG_ID_ERR,
+    FCP_FTAP_OTA_STATUS_GET_MSG_ID_ERR,
+    FCP_FTAP_OTA_STATUS_GET_MSG_ERR,
+    FCP_FTAP_MSG_ID_ERR,
+    FCP_FTAP_INIT_ERR,
+    FCP_FTAP_TIME_EXP_ERR,
+    FCP_FTAP_FORWARD_LINK_ERR,
+    FCP_FTAP_DSAR_TX_STATUS_ERR,
+}FtapfErrT;
+
+/*keep order with ALMP*/
+typedef enum
+{
+    FTAP_INIT_STATE,
+    FTAP_IDLE_STATE, 
+    FTAP_CONN_SETUP_STATE,
+    FTAP_CONNECTED_STATE
+} FtapStateT;
+
+typedef enum
+{
+    FTAP_PARAM_ASSIGN_MESSAGE       = 0x00,
+    FTAP_PARAM_ASSIGN_CMP_MESSAGE   = 0x01,
+    FTAP_STATS_CLR_REQ_MESSAGE      = 0x02,
+    FTAP_STATS_CLR_RSP_MESSAGE      = 0x03,
+    FTAP_STATS_GET_REQ_MESSAGE      = 0x04,
+    FTAP_STATS_GET_RSP_MESSAGE      = 0x05,
+    NUM_MSG
+}FtapMsgTypeT;
+
+typedef  enum
+{
+    DRCValueFixedModeAttrID     = 0x00,
+    DRCCoverFixedModeAttrID     = 0x01,
+    ACKChanBitFixedModeAttrID   = 0x02,
+    LoopBackModeAttrID          = 0x03,
+    AckChannelModulationType    = 0x04,
+    NUM_TYPE
+}FtapParamRecAttriIDType;
+
+typedef enum
+{
+    FTAP_CONFIG_ID,
+    FTAP_STAT_GET_ID,
+    FTAP_STAT_CLR_ID,
+    NUM_MSG_ID
+}FtapTimerIdType;
+
+typedef enum
+{
+    FTAP_PARAM_ASSIGN_CMP_MSG_TRANSID = 0x10,
+    FTAP_STAT_GET_RSP_TRANSID,
+    FTAP_STAT_CLR_RSP_TRANSID,
+    NUM_TRANSID
+} FtapTransIdType;
+
+typedef  enum
+{
+    IdleASPStatesAttrID         = 0x04,
+    ConnectedSSStatesAttrID     = 0x05,
+    FirstSyncCCPktStatesAttrID  = 0x06
+}FtapStatisticsRecAttriIDType;
+
+typedef struct
+{
+    kal_uint16 ConnectionSSChange;
+    kal_uint32 ConnectedTime;
+    kal_uint32 ConnectedTimeStarted;
+    kal_uint16 FirstSyncCCPkt;
+    kal_uint16 CCTime;     
+    kal_uint32 CCTimeStarted;
+    kal_uint32 IdleASPChange;
+    kal_uint32 IdleTime;
+    kal_uint32 IdleTimeStarted;
+}FtapStatisticsT;
+
+typedef struct
+{
+    kal_timerid TimerId;
+    kal_bool        bTimeCreated;
+}FtapTimeT;
+
+typedef struct
+{
+    kal_bool  bAckChannelBitFixedMode;
+    kal_uint8 AckChannelBit;
+    kal_bool  bDRCCoverFixedMode;
+    kal_uint8 DRCCover;
+    kal_bool  bDRCValueFixedMode;
+    kal_uint8 DRCValue;
+    kal_bool  bAckChannelModulationMode;
+    kal_uint8 ACKChannelModulationType;
+    kal_bool  bLoopBackEnable;
+    kal_uint8 LoopBackPersistence;
+    FtapTimeT timer[NUM_MSG_ID];
+    kal_uint8 MsgTransId[NUM_MSG_ID];
+    kal_uint8 TCAMsgSeq;
+    FtapStateT state;
+    kal_bool   bInit;
+    kal_uint16 SubApp;
+    kal_uint8  ProtocolType;
+}FtapMode;
+
+typedef struct
+{
+    kal_uint8 len;
+    kal_uint8 AttrID;
+    kal_uint8 RecValue;
+}FtapAttriRecT;
+
+typedef struct
+{
+    kal_uint8 TransId;
+    kal_uint8 AttriNum;
+    FtapAttriRecT AttriRec[FETAP_PARAASSIGNMSG_RECORD_NUM];
+}FtapParaAssignMsgT;
+
+typedef struct
+{
+    kal_uint8 TransId;
+    kal_uint8 AttrNum;
+    FtapStatisticsRecAttriIDType AttrId[FTAP_STATISTICREQ_RECORD_NUM];
+}FtapStatsReqMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint8 IdleASPStats;
+    kal_uint8 ConnectedSSStats;
+    kal_uint8 FirstSyncCCPktStats;
+} PACKED_POSTFIX FtapEtsStatClrGetReqMsgT;
+
+typedef struct
+{
+    kal_uint8 FtapClrReqTransId;
+    kal_uint8 FtapGetReqTransId;
+}FtapEtsClrGetReqMsgInfoT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint32 IdleASPChange;
+    kal_uint32 IdleTime;
+    kal_uint32 ConnectedSSChange;
+    kal_uint32 ConnectedTime;
+    kal_uint32 FirstSyncCCPkt;
+    kal_uint32 CCTime;
+} PACKED_POSTFIX FtapStatSpyT;
+
+void RunFtapfStateMachine(ilm_struct *current_ilm);
+void ProcessFtapDsaFwdMsg(DsaFwdMsgT *MsgDataP);
+kal_bool FtapProcessDsarTxStatusMsg(DsarTxStatusMsgT *StatusMsgP);
+
+extern FtapMode _ftapMode;
+
+#endif
+