252 lines
9.4 KiBLFS
ObjectPascal
252 lines
9.4 KiBLFS
ObjectPascal
//PPC Version : V2.1.9.30
|
|
//PPL Source File Name : X:\tavor\Arbel\obj_PMD2NONE\prepass_results\pm.ppp
|
|
//PPL Source File Name : X:\\hop\\pm\\src\\pm.c
|
|
typedef unsigned char BOOL ;
|
|
typedef unsigned char UINT8 ;
|
|
typedef unsigned short UINT16 ;
|
|
typedef unsigned long UINT32 ;
|
|
typedef char CHAR ;
|
|
typedef signed char INT8 ;
|
|
typedef signed short INT16 ;
|
|
typedef signed long INT32 ;
|
|
typedef unsigned char Bool ;
|
|
typedef UINT8 BYTE ;
|
|
typedef UINT8 UBYTE ;
|
|
typedef UINT16 UWORD ;
|
|
typedef UINT16 WORD ;
|
|
typedef INT16 SWORD ;
|
|
typedef UINT32 DWORD ;
|
|
typedef unsigned long long UINT64 ;
|
|
typedef void* VOID_PTR ;
|
|
typedef volatile UINT8 *V_UINT8_PTR ;
|
|
typedef volatile UINT16 *V_UINT16_PTR ;
|
|
typedef volatile UINT32 *V_UINT32_PTR ;
|
|
typedef unsigned int U32Bits ;
|
|
typedef BOOL BOOLEAN ;
|
|
typedef const char * SwVersion ;
|
|
//ICAT EXPORTED ENUM
|
|
typedef enum
|
|
{
|
|
PM_RC_OK = 0 ,
|
|
PM_RC_FAIL , // General Failure
|
|
PM_RC_ALREADY_EXISTS // Exit function since required target alrteady exists
|
|
} PM_ReturnCodeE;
|
|
|
|
typedef void ( *PM_CallbackFuncDDRstateT ) ( BOOL b_DDR_ready ) ;
|
|
//ICAT EXPORTED ENUM
|
|
typedef enum {
|
|
COMMPM_PP_NOTSET ,
|
|
COMMPM_PP_1 ,
|
|
COMMPM_PP_2 ,
|
|
COMMPM_PP_3 ,
|
|
COMMPM_PP_4 ,
|
|
COMMPM_NUMBER_OF_PP = 4
|
|
} CommPM_PPE;
|
|
|
|
typedef void ( *COMMPM_DDRAckNotificationT ) ( CommPM_DDRAckE ackType ) ;
|
|
typedef void ( *COMMPM_DDRDVFMNotificationT ) ( CommPM_PPE PPType ) ;
|
|
//ICAT EXPORTED ENUM
|
|
typedef enum
|
|
{
|
|
Service_UART = 0x01 ,
|
|
Enable_TCU_clock= 0x02 ,
|
|
Service_HSPDA = 0x04 ,
|
|
Service_ICAT = 0x08 ,
|
|
Service_client5 = 0x10 ,
|
|
Service_client6 = 0x20 ,
|
|
Service_client7 = 0x40 ,
|
|
Service_client8 = 0x80
|
|
|
|
} CommPM_servicesD1E;
|
|
|
|
//ICAT EXPORTED ENUM
|
|
typedef enum {
|
|
COMMPM_MODEM_ENABLE = 0 ,
|
|
COMMPM_MODEM_DISABLE ,
|
|
COMMPM_INVALID_STATE
|
|
|
|
} PM_Modem_StateE;
|
|
|
|
//ICAT EXPORTED STRUCT
|
|
typedef struct
|
|
{
|
|
UINT32 D2mode ; // 0 - no D2 , 1 - D2 alike , 2 - full D2
|
|
UINT32 D2Variation ; // 0 Stay in D0 , 1 , go to C1 , 2 Full D2
|
|
UINT32 LPTsleepTicks ; // how many ticks the LPT should sleep
|
|
// temp solution for L1 Standalone.
|
|
UINT32 LPTdebugBusyWait ; // to enable time to enter commands when
|
|
// waking up ( since currently ( Sep 6 ) at C1 / D2
|
|
// we can not submit commands )
|
|
UINT32 DDRFunctionalityIsOn ; // 0 -regular work without DDR / 1 -DDR functionality is open for debug / 2 -DDR full functionality
|
|
UINT32 endlessLoopAfterD2nExit ;
|
|
UINT32 endlessLoopAfterDDRgrantnTimes ;
|
|
UINT32 kickWDTonD2Exit ;
|
|
UINT16 ServiceD1control ; // word that indicates service controlling D1 , if bit is set , D1 should be prevented
|
|
// ( the bit position is set by the enum CommPM_servicesD1E )
|
|
UINT8 AppsCommSyncActivated ;
|
|
BOOL allowC1 ; // when set real C1 from HW ( if D2 set , also C1 ? )
|
|
BOOL notifyMSA ; // if set - we work with L1 , and should notify them
|
|
// otherwise we are in ' D2 standalone ' - only us
|
|
BOOL LPTidle ; // LPT does nothing
|
|
BOOL LPTdecisionOnly ; // do only decision no setting to HW , no prepare
|
|
// ( means no real D2 , no C1 ) ( not relevant in LPTidle )
|
|
// if not set - we have full LPT functionality
|
|
BOOL L1isRegister ; // to synchronize D2 decisions on L1 registration
|
|
BOOL PmDebugTaskEnalbe ; // to enable / disable comm pm debug task
|
|
} CommPM_workModeS;
|
|
|
|
//ICAT EXPORTED STRUCT
|
|
typedef struct
|
|
{
|
|
UINT32 DdrHfRequestTS ; // current client request TS ( maybe DDR in HF already )
|
|
UINT32 DdrHfRequestFirstClientTS ; // signifies the first client request ( the one we wait for its ack )
|
|
UINT32 DdrRegRequestTS ;
|
|
UINT32 DdrRegMaxResponseTime ;
|
|
UINT32 DdrHfClientTabResponseTime [ 30 ] ;
|
|
UINT32 DdrRegClientTabResponseTime [ 30 ] ;
|
|
UINT32 DdrHfMaxResponseTime ;
|
|
} CommPM_DDRtimingS;
|
|
|
|
//ICAT EXPORTED ENUM
|
|
typedef enum {
|
|
CommPM_Active ,
|
|
CommPM_Idle ,
|
|
COMMPM_NUMBER_OF_CPU_STATES ,
|
|
} CommPM_CPUStateE;
|
|
|
|
typedef int ( *MMIC1PrepareFunc ) ( void ) ;
|
|
typedef int ( *MMIC1RecoverFunc ) ( void ) ;
|
|
typedef int ( *MMID2PrepareFunc ) ( void ) ;
|
|
typedef int ( *MMID2RecoverFunc ) ( BOOL ExitFromD2 ) ;
|
|
typedef int ( *MMIStatusFunc ) ( void ) ;
|
|
typedef UINT32 PM_TimeIn32KHzUnitsT ;
|
|
//ICAT EXPORTED ENUM
|
|
typedef enum {
|
|
PM_EXT_DBG_EVENT_EMPTY = 0 ,
|
|
PM_EXT_DBG_EVENT_GENERAL_PURPOSE = 99 , // for debug purposes , general event to
|
|
// track something while debug ( not to be left in code permanently ) !
|
|
PM_EXT_DBG_EVENT_D2_EXIT =100 , // 100
|
|
PM_EXT_DBG_EVENT_C1_EXIT , // 101
|
|
PM_EXT_DBG_EVENT_C1_GATED_EXIT , // 102
|
|
PM_EXT_DBG_EVENT_TM_GET_NEAREST , // 103
|
|
PM_EXT_DBG_EVENT_TM_SUSPEND , // 104
|
|
PM_EXT_DBG_EVENT_TM_SYNCH_AFTER , // 105
|
|
PM_EXT_DBG_EVENT_TM_NU_TICK , // 106
|
|
PM_EXT_DBG_EVENT_TM_EXT_TICK , // 107
|
|
PM_EXT_DBG_EVENT_TM_SKIP_OS_TICK , // 108
|
|
PM_EXT_DBG_EVENT_TM_SUSPEND_ENABLE , // 109
|
|
PM_EXT_DBG_EVENT_TM_SUSPEND_DISABLE , // 110
|
|
PM_EXT_DBG_EVENT_TM_TRIGGER_ERROR , // 111
|
|
PM_EXT_DBG_EVENT_TICK_FROM_SYNCH , // 112
|
|
PM_EXT_DBG_EVENT_TICK_FROM_TRIGGER , // 113
|
|
PM_EXT_DBG_EVENT_TM_HW_TIMER_SET , // 114
|
|
PM_EXT_DBG_EVENT_OS_TIMER_EXPIRE , // 115
|
|
PM_EXT_DBG_EVENT_TM_TICK_SUSPENDED , // 116
|
|
PM_EXT_DBG_EVENT_ACTIVATE_NU_HISR , // 117
|
|
PM_EXT_DBG_EVENT_ACTIVATE_GKI_HISR , // 118
|
|
PM_EXT_DBG_EVENT_TIMER_DEACTIVATE , // 119
|
|
PM_EXT_DBG_EVENT_TIMER_CONFIGURE , // 120
|
|
PM_EXT_DBG_EVENT_TIMER_ACTIVATE , // 121
|
|
PM_EXT_DBG_EVENT_TIMER_STATUS_CLEAR , // 122
|
|
PM_EXT_DBG_EVENT_TIMER_TCMR_SET , // 123
|
|
PM_EXT_DBG_EVENT_TIMER_STATUS_READ , // 124
|
|
PM_EXT_DBG_EVENT_TIMER_TIER_CLEAR , // 125
|
|
PM_EXT_DBG_EVENT_TIMER_TMR_SET , // 126
|
|
PM_EXT_DBG_EVENT_TIMER_TCCR_SET , // 127
|
|
PM_EXT_DBG_EVENT_TIMER_TIER_SET , // 128
|
|
PM_EXT_DBG_EVENT_RM_PREVENT_D2 , // 129
|
|
PM_EXT_DBG_EVENT_AAM_PREVENT_D2 , // 130
|
|
PM_EXT_DBG_EVENT_GP_FLAG_1 , // 131
|
|
PM_EXT_DBG_EVENT_AAM_D2_TIMER_WAKEUP , // 132
|
|
PM_EXT_DBG_EVENT_AAM_D2_OWN_WAKEUP , // 133
|
|
PM_EXT_DBG_EVENT_AAM_MANAGE_BUSY , // 134
|
|
PM_EXT_DBG_EVENT_AAM_MANAGE_FREE , // 135
|
|
PM_EXT_DBG_EVENT_AAM_ALLOW_D2 , // 136
|
|
PM_EXT_DBG_EVENT_AAM_AA_FORBID_D2 , // 137
|
|
PM_EXT_DBG_EVENT_AAM_TM_FORBID_D2 , // 138
|
|
PM_EXT_DBG_EVENT_AAM_APP_TM_D2 , // 139
|
|
PM_EXT_DBG_EVENT_AAM_OST_TM_D2 , // 140
|
|
PM_EXT_DBG_EVENT_RM_TCU_ALLOC , // 141
|
|
PM_EXT_DBG_EVENT_RM_TCU_FREE , // 142
|
|
PM_EXT_DBG_EVENT_RM_SCK_ALLOC , // 143
|
|
PM_EXT_DBG_EVENT_RM_SCK_FREE , // 144
|
|
PM_EXT_DBG_EVENT_RM_ALLOW_D2 , // 145
|
|
PM_EXT_DBG_EVENT_RM_FORBID_D2 , // 146
|
|
PM_EXT_DBG_EVENT_RM_ALLOW_C1_GATED , // 147
|
|
PM_EXT_DBG_EVENT_TCU_D2_PREPARE , // 148
|
|
PM_EXT_DBG_EVENT_TCU_D2_RECOVER , // 149
|
|
PM_EXT_DBG_EVENT_CPA_D2_PREPARE , // 150
|
|
PM_EXT_DBG_EVENT_CPA_D2_RECOVER , // 151
|
|
PM_EXT_DBG_EVENT_CPA_D2_WAKEUP , // 152
|
|
PM_EXT_DBG_EVENT_D2_WAKEUP_TIMER , // 153
|
|
PM_EXT_DBG_EVENT_GSM_WAKEUP_SWI , // 154
|
|
PM_EXT_DBG_EVENT_GSM_SLEEP_SWI , // 155
|
|
////////////////////////////////////////////// DDR
|
|
PM_EXT_DBG_EVENT_CHANGED_TO_WAIT_FOR_DDR_HIGH_FREQ_ACK_WHILE_RELINQUISH_HIGH_IS_PENDING ,
|
|
PM_EXT_DBG_EVENT_CHANGED_TO_WAIT_FOR_DDR_REQUEST_ACK ,
|
|
PM_EXT_DBG_EVENT_CHANGED_TO_SYSTEM_IN_REG_RUNNING_MODE_AND_SEND_REQ ,
|
|
PM_EXT_DBG_EVENT_CHANGED_TO_WAIT_FOR_DDR_REQUEST_ACK_WHILE_HIGH_IS_PENDING ,
|
|
PM_EXT_DBG_EVENT_CHANGED_TO_WAIT_FOR_DDR_HIGH_FREQ_ACK ,
|
|
PM_EXT_DBG_EVENT_CHANGED_TO_WAIT_FOR_DDR_HIGH_FREQ_ACK_AND_SEND_REQ ,
|
|
PM_EXT_DBG_EVENT_CHANGED_TO_SYSTEM_IN_REG_RUNNING_MODE ,
|
|
PM_EXT_DBG_EVENT_AC_IPC_INTERRUPT_HANDLER ,
|
|
PM_EXT_DBG_EVENT_260_REL_ACK ,
|
|
PM_EXT_DBG_EVENT_CHANGED_SYSTEM_IN_HIGH_FREQ_MODE ,
|
|
PM_EXT_DBG_EVENT_DDR_REG_REQ ,
|
|
PM_EXT_DBG_EVENT_DDR_REG_RELINQUISH ,
|
|
PM_EXT_DBG_EVENT_DDR_REG_REQ_AND_RELINQUISH ,
|
|
PM_EXT_DBG_EVENT_DDR_HF_REQ ,
|
|
PM_EXT_DBG_EVENT_DDR_HF_RELINQUISH ,
|
|
PM_EXT_DBG_EVENT_DDR_HF_REQ_AND_RELINQUISH ,
|
|
|
|
PM_EXT_DBG_EVENT_DDR_STATUS_FORBID_D2 ,
|
|
////////////////////////////////////////////// DDR
|
|
|
|
PM_EXT_DBG_EVENT_RM_ALLOC ,
|
|
PM_EXT_DBG_EVENT_RM_FREE ,
|
|
|
|
PM_EXT_DBG_EVENT_D2_ENTRY ,
|
|
PM_EXT_DBG_EVENT_C1_ENTRY ,
|
|
PM_EXT_DBG_EVENT_C1_GATED_ENTRY ,
|
|
PM_EXT_DBG_EVENT_D0CS_ENTRY ,
|
|
PM_EXT_DBG_EVENT_D0CS_EXIT ,
|
|
// BRN
|
|
PM_EXT_DBG_EVENT_VCTCXO_RELINQUISH ,
|
|
PM_EXT_DBG_EVENT_VCTCXO_REQUEST ,
|
|
PM_EXT_DBG_EVENT_DDR_LPM_DONE ,
|
|
PM_EXT_DBG_EVENT_POUT_DISABLE ,
|
|
PM_EXT_DBG_EVENT_POUT_ENABLE ,
|
|
PM_EXT_DBG_EVENT_FREQ_CHANGE_HIGH ,
|
|
PM_EXT_DBG_EVENT_FREQ_CHANGE_LOW ,
|
|
PM_EXT_DBG_EVENT_FREQ_CHANGE_USER ,
|
|
PM_EXT_DBG_EVENT_FREQ_CHANGE_START ,
|
|
PM_EXT_DBG_EVENT_FREQ_CHANGE_DONE ,
|
|
PM_EXT_DBG_EVENT_FREQ_CHANGE_GET_FREQ ,
|
|
PM_EXT_DBG_EVENT_DVFM_TABLE_UPDATE ,
|
|
PM_EXT_DBG_EVENT_LPM_DECISION ,
|
|
PM_EXT_DBG_EVENT_SRAM_MEMORY_ERRORS_COUNT ,
|
|
PM_EXT_DBG_WAKEUP_SRC ,
|
|
PM_EXT_DBG_WAKEUP_SRC_NOTREGISTER ,
|
|
PM_EXT_DBG_EVENT_NO_DATA = 1500 , /* indicates that no data is send with the event
|
|
( and forces the enum to be treated as UINT32 ) */
|
|
PM_EXT_DBG_DATA_FAKE_D2 =0x2000000 , //
|
|
PM_EXT_DBG_DATA_REAL_D2 =0x4000000 // we add to this bit hte wakeup event register
|
|
// - relevant bits are 0 -19
|
|
} PM_EventTypeE;
|
|
|
|
//ICAT EXPORTED STRUCT
|
|
typedef struct {
|
|
PM_TimeIn32KHzUnitsT timeStamp ;
|
|
PM_EventTypeE event ;
|
|
UINT32 data ;
|
|
} PM_TimeStampLogEnteryS;
|
|
|
|
//ICAT EXPORTED STRUCT
|
|
typedef struct {
|
|
UINT32 nextEntryIndex ;
|
|
PM_TimeStampLogEnteryS eventLog [ 256 ] ;
|
|
BOOL logEnabled ;
|
|
BOOL cyclic ;
|
|
} PM_EventLogS;
|
|
|