FreeCalypso > hg > fc-magnetite
view src/g23m-aci/aci/aci_em.h @ 639:026c98f757a6
tpudrv12.h & targets/gtm900.h: our current support is for MGC2GSMT version only
As it turns out, there exist two different Huawei-made hw platforms both
bearing the marketing name GTM900-B: one is MG01GSMT, the other is MGC2GSMT.
The two are NOT fw-compatible: aside from flash chip differences which
should be handled by autodetection, the two hw platforms are already known
to have different RFFEs with different control signals, and there may be
other differences not yet known. Our current gtm900 build target is for
MGC2GSMT only; we do not yet have a specimen of MG01GSMT on hand, hence
no support for that version will be possible until and unless someone
provides one.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 30 Jan 2020 18:19:01 +0000 |
parents | 53929b40109c |
children |
line wrap: on
line source
/* +----------------------------------------------------------------------------- | Project : | Modul : +----------------------------------------------------------------------------- | Copyright 2002 Texas Instruments Berlin, AG | All rights reserved. | | This file is confidential and a trade secret of Texas | Instruments Berlin, AG | The receipt of or possession of this file does not convey | any rights to reproduce or disclose its contents or to | manufacture, use, or sell anything it may describe, in | whole, or in part, without the specific written consent of | Texas Instruments Berlin, AG. +----------------------------------------------------------------------------- | Purpose : Handles all instances for the Engineering mode (EM). +----------------------------------------------------------------------------- */ #ifndef ACI_EM_H #define ACI_EM_H /* * Return Values */ #define EM_INVALID_CLASS 10 #define EM_INVALID_SUBCLASS 11 #define EM_INVALID_TYPE 12 #define EM_INVALID_ACCESS 13 #define EM_NO_MORE_DATA 14 #define EM_DATA_NOT_AVAIL 15 #define MAX_EM_LENGTH 80 /* * EM classes */ #define EM_CLASS_EVENT_TRACING 1 #define EM_CLASS_INFRA_DATA 3 #define EM_CLASS_MOBILE_DATA 4 /* * EM Subclasses Event Tracing / Counter */ #define EM_SUBCLASS_LAYER_1 1 #define EM_SUBCLASS_DL 2 #define EM_SUBCLASS_RR 3 #define EM_SUBCLASS_MM 4 #define EM_SUBCLASS_CC 5 #define EM_SUBCLASS_SS 6 #define EM_SUBCLASS_SMS 7 #define EM_SUBCLASS_SIM 8 /* * EM Subclasses Infrastructure data */ #define EM_SUBCLASS_SC 9 #define EM_SUBCLASS_SC_GPRS 10 #define EM_SUBCLASS_NC 11 #define EM_SUBCLASS_LOC_PAG 12 #define EM_SUBCLASS_PLMN 13 #define EM_SUBCLASS_CIPH_HOP_DTX 14 #define EM_SUBCLASS_GMM 15 #define EM_SUBCLASS_GRLC 16 #define EM_SUBCLASS_AMR 20 #define EM_SUBCLASS_PDP 21 /* * EM Subclasses Mobile Data */ #define EM_SUBCLASS_POWER 17 #define EM_SUBCLASS_ID 18 #define EM_SUBCLASS_SW_VERSION 19 /* * EM bitmask check */ #define EM_BITMASK_L1_H 0x007F /* 39 events */ #define EM_BITMASK_L1_L 0xFFFFFFFFL #define EM_BITMASK_DL 0x001F /* 5 events */ #define EM_BITMASK_RR_H 0x001F /* 37 events */ #define EM_BITMASK_RR_L 0xFFFFFFFFL #define EM_BITMASK_MM 0x0003FFFFL /* 18 events */ #define EM_BITMASK_CC_H 0x0001FFFFL /* 49 events */ #define EM_BITMASK_CC_L 0xFFFFFFFFL #define EM_BITMASK_SS 0x03FF /* 10 events */ #define EM_BITMASK_SMS_H 0x00000001L /* 33 events */ #define EM_BITMASK_SMS_L 0xFFFFFFFFL #define EM_BITMASK_SIM 0x01FFFFFFL /* 25 events */ /* #define EM_STARTED 1 #define EM_ESTABLISHED 2 #define EM_FAILED 3 #define EM_SEND 4 #define EM_RECEIVED 5 #define EM_ABORTED 6 #define EM_RELEASED 7 */ #define EM_DATA_IND_OPC 32267 #define EM_MM_BUFFER_SIZE 168 #define EM_CC_BUFFER_SIZE 185 #define EM_SS_BUFFER_SIZE 31 #define EM_SMS_BUFFER_SIZE 110 #define EM_SIM_BUFFER_SIZE 67 #define EM_MAX_MA_CHANNELS 64 #define MAX_VER 50 #ifdef TRACE_PRIM #define TRACE_PRIM_FROM(s) vsi_o_ttrace(VSI_CALLER TC_PRIM, "Pdir: " s) #define TRACE_PRIM_TO(s) vsi_o_ttrace(VSI_CALLER TC_PRIM, "Pdir: " s) #else #define TRACE_PRIM_FROM(s) #define TRACE_PRIM_TO(s) #endif #define TRACE_EVENT_EM_P1(s,a1) TRACE_USER_CLASS_P1(TC_USER8,s,a1) #define TRACE_EVENT_EM_P4(s,a1,a2,a3,a4) TRACE_USER_CLASS_P4(TC_USER8,s,a1,a2,a3,a4) /* / ************************************************************************************* * * Structures according to EM Functional interface description (8443.601.01.002) * ************************************************************************************* */ /* * Unit ID */ typedef enum { EM_UNIT_INVALID = -1, EM_UNIT_L1 = 1, EM_UNIT_DL, EM_UNIT_RR, EM_UNIT_MM, EM_UNIT_CC, EM_UNIT_SS, EM_UNIT_SMS, EM_UNIT_SIM } T_EM_UNIT_ID; typedef struct { UBYTE index; UBYTE length; } T_EVENT_PTR; typedef struct { T_EVENT_PTR alr; T_EVENT_PTR dl; T_EVENT_PTR rr; T_EVENT_PTR mm; T_EVENT_PTR cc; T_EVENT_PTR ss; T_EVENT_PTR sms; T_EVENT_PTR sim; } T_EM_EVENT_BUF; typedef struct { CHAR alr[MAX_VER]; CHAR dl[MAX_VER]; CHAR rr[MAX_VER]; CHAR mm[MAX_VER]; CHAR cc[MAX_VER]; CHAR ss[MAX_VER]; CHAR sms[MAX_VER]; CHAR sim[MAX_VER]; } T_EM_SW_VER; /*------------------------------------------------------------------------ drv_SignalID_Type - driver signal identification The type defines the signal information data used to identify a signal. This data type is used to define and to report a signal. A signal is defined by a process calling the driver function drv_SetSignal. An event is signalled by driver by calling the pre-defined signal call- back function. -------------------------------------------------------------------------*/ typedef struct { UBYTE SignalType; USHORT DataLength; union { T_EM_SC_INFO_CNF sc; T_EM_SC_GPRS_INFO_CNF sc_gprs; T_EM_NC_INFO_CNF nc; T_EM_LOC_PAG_INFO_CNF log_pag; T_EM_PLMN_INFO_CNF plmn; T_EM_CIP_HOP_DTX_INFO_CNF cip; T_EM_POWER_INFO_CNF power; T_EM_IDENTITY_INFO_CNF id; T_EM_SW_VER version; T_EM_GMM_INFO_CNF gmm; T_EM_GRLC_INFO_CNF grlc; T_EM_AMR_INFO_CNF amr; UBYTE defaulT; } UserData; } T_DRV_SIGNAL_EM; typedef struct { UBYTE * Pointer; USHORT DataLength; T_EM_EVENT_BUF Data; } T_DRV_SIGNAL_EM_EVENT; /*------------------------------------------------------------------------ drv_SignalCB_Type - driver signal device control block This type defines a call-back function used to signal driver events, e.g. driver is ready to accept data. The driver calls the signal call-back function when a specific event occurs and the driver has been instructed to signal the event to a specific process. A process can set or reset event signalling by calling one of the driver functions drv_SetSignal or drv_ResetSignal. Event signalling can only be performed when a call-back function has been installed at driver initialization. -------------------------------------------------------------------------*/ typedef void (*T_DRV_CB_FUNC_EM ) (T_DRV_SIGNAL_EM * Signal); typedef void (*T_DRV_CB_FUNC_EM_EVENT) (T_DRV_SIGNAL_EM_EVENT * Event); /* * callback functionality for em_Read_Data_Parameter */ #define drv_SignalCB_Type_EM T_DRV_CB_FUNC_EM #define drv_SignalID_Type_EM T_DRV_SIGNAL_EM /* * callback functionality for em_Read_Event_Parameter */ #define drv_SignalCB_Type_EM_EVENT T_DRV_CB_FUNC_EM_EVENT #define drv_SignalID_Type_EM_EVENT T_DRV_SIGNAL_EM_EVENT #define T_VSI_THANDLE USHORT /* * Prototypes */ EXTERN UBYTE em_Read_Data_Parameter (UBYTE em_class, UBYTE em_subclass, UBYTE em_type, void (*cbfunc)(T_DRV_SIGNAL_EM * Signal)); EXTERN UBYTE em_Read_Event_Parameter (UBYTE entity, void (*cbfunc)(T_DRV_SIGNAL_EM_EVENT * Signal)); EXTERN void em_Received_Data (void *data, UBYTE subclass); EXTERN UBYTE em_Set_EventTrace (UBYTE em_subclass, ULONG bitmask_h, ULONG bitmask_l); EXTERN UBYTE em_Init (drv_SignalCB_Type_EM in_SignalCBPtr, drv_SignalCB_Type_EM_EVENT in_SignalEventCBPtr); EXTERN void em_Exit (void); EXTERN void em_aci_sem_clear (void); EXTERN void em_aci_sem_init (void); EXTERN void em_aci_sem_exit (void); EXTERN UBYTE em_subclass_pco_bitmap (U32 em_pco_bitmap); /* en- or disable PCO-trace*/ /* EXTERN UBYTE em_SetSignal (drv_SignalID_Type * in_SignalIDPtr); EXTERN UBYTE em_ResetSignal (drv_SignalID_Type * in_SignalIDPtr); EXTERN UBYTE em_SetConfig (pwr_DCB_Type * in_DCBPtr); EXTERN UBYTE em_GetConfig (pwr_DCB_Type * out_DCBPtr); EXTERN UBYTE em_GetStatus (pwr_Status_Type * out_StatusPtr); */ #endif /* ACI_EM_H */ /*+++++++++++++++++++++++++++++++++++++++++ E O F +++++++++++++++++++++++++++++++++++++++++*/