[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/middleware/hif/ufpm_struct.h b/mcu/interface/middleware/hif/ufpm_struct.h
new file mode 100644
index 0000000..59354eb
--- /dev/null
+++ b/mcu/interface/middleware/hif/ufpm_struct.h
@@ -0,0 +1,241 @@
+/*!
+ * @file ufpm_struct.h
+ * @author Bo-Kai Huang <bo-kai.haung@mediatek.com>
+ * @version 1.0
+ * @section LICENSE
+ *
+ * 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).
+ *
+ * @section DESCRIPTION
+ * This file provides main definitions of usbcore
+ */
+
+#ifndef _UFPM_STRUCT_H
+#define _UFPM_STRUCT_H
+
+#include "hif_mw_msgid.h"
+#include "kal_public_api.h"
+#include "ufpm_enum.h"
+#include "ipc_msgsvc_msgid.h"
+#include "ccci_ipc_if.h"
+#include "mw_sap.h"
+#include "ufpm_usb_struct.h"
+
+#define UFPM_USB_MAP_MAX_SIZE 8
+
+/**************************************
+ * UFPM ENUM and Types
+ **************************************/
+typedef union _ufpm_func_activation_info {
+ tethering_activate_meta_info_t tethering_info;
+ logging_activate_meta_info_t logging_info;
+} ufpm_func_activation_info_t;
+
+typedef union _ufpm_func_deactivation_info {
+ tethering_deactivate_meta_info_t tethering_info;
+ logging_deactivate_meta_info_t logging_info;
+} ufpm_func_deactivation_info_t;
+
+typedef struct _ufpm_usb_property {
+ kal_bool isSupport;
+ ufpm_func_state_e state;
+ ufpm_usb_mapping_t mapTable[UFPM_USB_MAP_MAX_SIZE];
+ ufpm_func_activation_info_t activate_meta_info;
+ ufpm_func_deactivation_info_t deactivate_meta_info;
+} ufpm_usb_property_t;
+
+typedef struct _ufpm_mpu_info {
+ kal_uint8 apUsbDomain; // AP USB MPU domain ID
+ kal_uint8 mdCldmaDomain; // MD CLDMA MPU domain ID
+ kal_uint8 reserved[6];
+ kal_uint64 memBank0BaseAddr; // Memory bank0 base address
+ kal_uint64 memBank0Size; // Memory bank0 size
+ kal_uint64 memBank4BaseAddr; // Memory bank4 base address
+ kal_uint64 memBank4Size; // Memory bank4 size
+} ufpm_mpu_info_t;
+
+typedef struct _ufpm_md_fast_path_common_req {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 reserved[3];
+} ufpm_md_fast_path_common_req_t;
+
+typedef struct _ufpm_md_fast_path_common_rsp {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 result; // bool
+ kal_uint8 reserved[2];
+} ufpm_md_fast_path_common_rsp_t;
+
+typedef struct _ufpm_md_fast_path_common_ind {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 reserved[3];
+} ufpm_md_fast_path_common_ind_t;
+
+typedef struct _ufpm_notify_md_bus_event_req {
+ LOCAL_PARA_HDR
+ kal_uint8 state;
+ kal_uint8 reserved[3];
+} ufpm_notify_md_bus_event_req_t;
+
+typedef struct _ufpm_activate_md_func_req {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 address; // USB address
+ kal_uint8 configuration; // USB configuraton number
+ kal_uint8 speed; // USB 2.0/3.0
+ ufpm_usb_mapping_t ap_usb_map[UFPM_USB_MAP_MAX_SIZE]; // AP released IF/EP
+ tethering_activate_meta_info_t tethering_meta_info; // tethering meta data
+ logging_activate_meta_info_t logging_meta_info; // logging meta data
+} ufpm_activate_md_func_req_t;
+
+typedef struct _ufpm_enable_md_func_req {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 version;
+ kal_uint8 reserved[2];
+ ufpm_mpu_info_t mpuInfo;
+} ufpm_enable_md_func_req_t;
+
+typedef struct _ufpm_send_md_ep0_msg {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 reserved[3];
+ kal_uint8 pBuffer[1024]; //hifusb_setup_packet_t packet;
+} ufpm_send_md_ep0_msg_t;
+
+typedef struct _ufpm_enable_md_func_rsp {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 result; // bool
+ kal_uint8 version;
+ kal_uint8 reserved;
+} ufpm_enable_md_func_rsp_t;
+
+typedef struct _ufpm_deactivate_md_func_rsp {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 result; // bool
+ kal_uint8 reserved[2];
+ tethering_deactivate_meta_info_t tethering_meta_info;
+ logging_deactivate_meta_info_t logging_meta_info;
+} ufpm_deactivate_md_func_rsp_t;
+
+typedef struct _ufpm_t {
+ // USB properties
+ ufpm_usb_property_t ufpm_usb_property[UFPM_FUNC_MODE_MAX_NUM];
+
+ // FSM for USB data path
+ ufpm_usb_state_e ufpm_usb_sm;
+
+ // USB bus state
+ ufpm_bus_state_e ufpm_bus_state;
+
+ // MPU information
+ ufpm_mpu_info_t ufpm_mpu_info;
+
+ // USB EP cache table for mapping speed-up. ufpm_ep_mapping_cache_tlb[0][i] for EP IN, ufpm_ep_mapping_cache_tlb[1][i] for EP OUT
+ kal_uint8 ufpm_ep_mapping_cache_tlb[2][UFPM_USB_MAP_MAX_SIZE];
+
+ // L4C MSG flag
+ kal_bool is_l4c_msg;
+
+ // L4C MSG source ID
+ kal_uint8 l4c_src_id;
+
+} ufpm_t;
+
+/**************************************
+ * L4C and UFPM Structure
+ **************************************/
+typedef struct _l4c_ufpm_activate_md_fast_path_req {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 src_id; // l4c source ID
+ kal_uint8 reserved[2];
+} l4c_ufpm_activate_md_fast_path_req_struct;
+
+typedef struct _l4c_ufpm_enable_md_fast_path_req {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 src_id; // l4c source ID
+ kal_uint8 reserved[2];
+} l4c_ufpm_enable_md_fast_path_req_struct;
+
+typedef struct _l4c_ufpm_deactivate_md_fast_path_req {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 src_id; // l4c source ID
+ kal_uint8 reserved[2];
+} l4c_ufpm_deactivate_md_fast_path_req_struct;
+
+typedef struct _l4c_ufpm_disable_md_fast_path_req {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 src_id; // l4c source ID
+ kal_uint8 reserved[2];
+} l4c_ufpm_disable_md_fast_path_req_struct;
+
+typedef struct _l4c_ufpm_deactivate_md_fast_path_cnf{
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 result; // bool
+ kal_uint8 src_id; // l4c source ID
+ kal_uint8 reserved[1];
+} l4c_ufpm_deactivate_md_fast_path_cnf_struct;
+
+typedef struct _l4c_ufpm_activate_md_fast_path_cnf{
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 result; // bool
+ kal_uint8 src_id; // l4c source ID
+ kal_uint8 reserved[1];
+} l4c_ufpm_activate_md_fast_path_cnf_struct;
+
+typedef struct _l4c_ufpm_disable_md_fast_path_cnf{
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 result; // bool
+ kal_uint8 src_id; // l4c source ID
+ kal_uint8 reserved[1];
+} l4c_ufpm_disable_md_fast_path_cnf_struct;
+
+typedef struct _l4c_ufpm_enable_md_fast_path_cnf{
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 result; // bool
+ kal_uint8 src_id; // l4c source ID
+ kal_uint8 reserved[1];
+} l4c_ufpm_enable_md_fast_path_cnf_struct;
+
+#endif // _UFPM_STRUCT_H
+