[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/as_c2k/evdo/slcamp.h b/mcu/interface/protocol/as_c2k/evdo/slcamp.h
new file mode 100644
index 0000000..b9794d5
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/evdo/slcamp.h
@@ -0,0 +1,334 @@
+/*****************************************************************************
+* 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) 2006-2010 VIA Telecom, Inc. All rights reserved.
+*
+*************************************************************/
+#ifndef _SLCAMP_H_
+#define _SLCAMP_H_ 1
+/*****************************************************************************
+*
+* FILE NAME : slcamp.h
+*
+* DESCRIPTION : This file includes the definition of AMP
+*
+* HISTORY :
+* See Log at end of file
+*
+*****************************************************************************/
+#include "do_slcapi.h"
+#include "do_fcpapi.h"
+#include "do_dsaapi.h"
+#include "do_slcapi.h"
+#include "slc_nvram.h"
+
+#define UATIASSIGN_MESSAGEID_LEN 8
+#define UATIASSIGN_MESSAGESEQ_LEN 8
+#define UATIASSIGN_RESERVED1_LEN 7
+#define UATIASSIGN_SUBNETINCLUDED_LEN 1
+#define UATIASSIGN_UATISUBNETMASK_LEN 8
+#define UATIASSIGN_UATI104_LEN 8
+#define UATIASSIGN_UATICOLORCODE_LEN 8
+#define UATIASSIGN_UATI1024_LEN 8
+#define UATIASSIGN_UPPEROLDUATILEN_LEN 4
+#define UATIASSIGN_RESERVED2_LEN 4
+
+#ifdef MTK_CBP
+ /* Max length of UpperOldUATILength in octects
+ *for UATIAssignment and UATIComplete messages. */
+ #define UPPER_OLD_UATI_MAX_LEN 13
+#endif
+
+#define HARDWAREREQ_MESSAGEID_LEN 8
+#define HARDWAREREQ_TRANSID_LEN 8
+
+#define UATIREQ_MESSAGEID_LEN 8
+#define UATIREQ_TRANSID_LEN 8
+
+#define UATICMP_MESSAGEID_LEN 8
+#define UATICMP_TRANSID_LEN 8
+#define UATICMP_RESERVED_LEN 4
+#define UATICMP_UPPEROLDUATI_LEN 4
+
+#define HARDWARERSP_MESSAGEID_LEN 8
+#define HARDWARERSP_TRANSID_LEN 8
+#define HARDWARERSP_IDTYPE_LEN 24
+#define HARDWARERSP_HARDWAREID_LEN 8
+#define HARDWARERSP_ESN 32
+
+#define CONFIGRSP_MESSAGEID_LEN 8
+#define CONFIGRSP_TRANSID_LEN 8
+#define CONFIGRSP_ATTR_LEN 8
+
+#define CONFIGREQ_MESSAGEID_LEN 8
+#define CONFIGREQ_TRANSID_LEN 8
+#define CONFIGREQ_ATTR_LEN 8
+#define DSA_FWD_MESSAGEID_LEN 8
+
+#define ATTRIUPDATE_MESSAGEID_LEN 8
+#define ATTRIUPDATE_TRANSID_LEN 8
+#define ATTRIUPDATE_REC_LEN 8
+#define ATTRIUPDATE_ATTRID_LEN 8
+
+
+
+#define UATIRQ_INTERVAL (120*1000)
+#define ADDR_INTERVAL (180*1000) /*in unit of ms*/
+#define ADDR_INTERVAL_IN_FRAMES (ADDR_INTERVAL*3/80)
+
+#define AMP_DEFAULT_SUBTYPE 0x0000
+
+#define UATI_COMPLETE_RESEND_DURATION 20000 /* 15s based on ALU test */
+#define UATI_RESEND_INTERVAL 9000 /* to avoid multiple of 1X SCI-1 or SCI-2. */
+#define UATI_SEND_DELAY 2500 /* to give time to OMP update after hash or IHO handling */
+#define UATI_SEND_DELAY_FOR_CHANNEL_HASH 5000 /* to give time to OMP update after hash or IHO handling */
+#define UATI_RESEND_INTERVAL_AFTER_HWDIDRSP 1000 /* To reduced lengthened timer if we've already gone this far. */
+
+typedef enum {
+ Amp_InUse,
+ Amp_InConfig,
+ Amp_Instance
+}AmpInstance;
+
+typedef enum {
+ HardwareID_MEID = 0x00ffff,
+ HardwareID_ESN = 0x010000,
+ HardwareID_NA = 0xffffff
+}HardwareIDType;
+
+typedef enum {
+ MaxNoMonitorDistance = 0xff,
+ HardwareSeparableFromSession = 0xfe,
+ SupportGAUPMaxNoMonitorDistance = 0xfd,
+ ReducedSubnetMaskOffset = 0xfc,
+ SupportSecondaryColorCodes = 0xfb,
+}AmpAttributeID;
+
+typedef enum {
+ AMP_UATI_REQ_MSG = 0x00,
+ AMP_UATI_ASSIGN_MSG = 0x01, /*UATI Assignment Msg received from AN*/
+ AMP_UATI_CMP_MSG = 0x02, /*UATI Completion message*/
+ AMP_HARDWARE_REQ_MSG = 0x03, /*HardwareID Request received from AN*/
+ AMP_HARDWARE_RSP_MSG = 0x04, /*HardwareID Rsp message Type*/
+ AMP_CONFIG_REQ_MSG = 0x50,
+ AMP_CONFIG_RSP_MSG = 0x51,
+ AMP_ATTRI_UPDATE_REQ_MSG = 0x52,
+ AMP_ATTRI_UPDATE_ACCEPT_MSG = 0x53,
+ AMP_ATTRI_UPDATE_REJ_MSG = 0x54,
+ ALL_AMP_MSG
+}AmpMessageTypeT;
+
+typedef enum {
+ INACTIVE_ST,
+ SETUP_ST,
+ OPEN_ST
+}AmpStateT;
+
+typedef enum {
+ AMP_UATIREQ_TRANS_ID = 0x10,
+ AMP_ATTRIUPDATE_ACCEPTREJ_TRANS_ID,
+ AMP_UATICOMPLETE_TRANS_ID,
+ AMP_HWIDRESPONSE_TRANS_ID,
+ AMP_TRANS_ID
+}AmpDsaTransIDT;
+
+typedef struct {
+ kal_uint8 MessageID;
+ kal_uint8 MessageSeq;
+ kal_bool SubnetIncluded;
+ kal_uint8 UATISubnetMask;
+ kal_uint8 UATI104[13];
+ kal_uint8 UATIColorCode;
+ kal_uint8 UATI024[3];
+ kal_uint8 UpperOldUATILen;
+}AmpUATIAssignMsgT;
+
+typedef struct {
+ kal_uint8 UATIAssignMessageSeq;
+ kal_uint8 UATIColorCode;
+ kal_uint8 UATISubnetMask;
+ kal_uint8 UpperOldUATILen;
+ kal_uint8 UATI[16];
+ kal_uint8 ReducedSubnetMask[16];
+ kal_uint8 UATIAvailable;
+
+ kal_uint8 OldUATIAssignMessageSeq;
+ kal_uint8 OldUATIColorCode;
+ kal_uint8 OldUATISubnetMask;
+ kal_uint8 OldUpperOldUATILen;
+ kal_uint8 OldUATI[16];
+ kal_uint8 OldReducedSubnetMask[16];
+ kal_uint8 OldUATIAvailable;
+
+ kal_uint8 UATIReqTransID;
+ kal_uint8 AttriTransId;
+ kal_uint8 InuseSubtype;
+ kal_uint32 SessionSeed;
+ kal_uint32 X0;
+ kal_uint32 Y0;
+
+ /***********above entries will be saved into session file ***********/
+
+ AmpOmpSectorParamsT OmpSectorParam;
+ kal_uint8 InconfigSubtype;
+ AmpStateT AmpState;
+ kal_bool bNetworkAcq;
+ kal_uint8 bConnCloseOrIdleHo; /* 0: no event. 1:closeConnection. 2:IHO */
+ kal_bool bUATIReqSent;
+ kal_uint8 UATIReqSendCnt;
+ kal_uint8 UATIReqResendCnt;
+ kal_uint8 UATICompleteSendCnt;
+}AmpParamT;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+
+typedef struct {
+ AmpAttributeID AttrID;
+ union {
+ kal_uint8 AttrValue1;
+ kal_uint32 AttrValue2;
+ }AttrValue;
+}AmpAttributeRecord;
+
+typedef struct {
+ kal_uint8 MessageID;
+ kal_uint8 TransactionID;
+ AmpAttributeRecord AttrRecord[5];
+}AmpConfigurationRspMsgT;
+
+typedef struct {
+ AmpStateT AmpState;
+ kal_uint8 UATIColorCode;
+ kal_uint8 UATISubnetMask;
+ kal_uint8 UATI[16];
+ kal_uint8 OldUATI[16];
+ kal_uint8 ReducedSubnetMask[16];
+ kal_uint8 UpperOldUATILen;
+ kal_uint32 X0;
+ kal_uint32 Y0;
+} AmpSpyStatesT;
+
+typedef struct {
+ kal_uint8 NumRecvATIList;
+ ATITypeT RcvATIList[MAX_TRANS_ATI_NUMBER];
+ ATITypeT TransATI;
+} AmpSpyATIT;
+
+typedef enum {
+ REQ_SENT,
+ REQ_ACKED,
+ UATI_COMPLETE,
+ AMP_FAILING,
+ NO_ACT
+}AmpSetupPhaseT;
+
+typedef enum {
+ RESET_FAIL,
+ SUBNET_CHANGE,
+ SYS_LOST,
+ ABORT_SETUP,
+ OTHER_REASON
+}AmpFailureT;
+
+typedef struct {
+ AmpFailureT failReason;
+}SmpAmpFailureMsgT;
+
+void AmpInit(void);
+void RunAmpStateMachine(kal_uint32 MsgId, void *MsgDataP);
+void ProcessAmpDsaFwdMsg(DsaFwdMsgT *MsgDataP);
+void ProcessAmpWaitUATIRspTimeout(void);
+void ProcessAmpAddrTimeout(void);
+void AmpGetSessionData(AmpSessionDataT *sessionData);
+void AmpRestoreSessionData(AmpSessionDataT *sessionData);
+kal_bool AmpSubnetChanged(void);
+void ProcessAmpUATICompleteTimeout(void);
+void ProcessAmpReSendUATIReqTimeOut(void);
+void AmpResetUATIAcquisition(void);
+void AmpSendIdpATIMsg(void);
+void AmpSessionNegoDoneInd(void);
+void AmpStopSessionUpdate(void);
+void AmpSaveRestorePriorSessionSeed(kal_uint8 op);
+void AmpSendDsaUATIReqMsg(void);
+#ifdef MTK_CBP
+void AmpSendDsarResetMsg(kal_bool emptyConfigReqsOnly);
+#else
+void AmpSendDsarResetMsg(void);
+#endif
+AmpStateT AmpGetState(void);
+void AmpDelDsarUatiReqWhenNewSession(void);
+
+/*****************************************************************************
+* $Log: slcamp.h $
+*****************************************************************************/
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif /*_SLCAMP_H_*/
+
+