FreeCalypso > hg > freecalypso-sw
view gsm-fw/services/etm/etm.h @ 192:707aa640b2dc
fc-tmsh: w8/w16/w32 implemented
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Mon, 25 Nov 2013 05:37:46 +0000 |
parents | 9dbf3248a197 |
children |
line wrap: on
line source
/****************************************************************************** * Enhanced TestMode (ETM) * @file etm.h * * Design and coding Mads Meisner-Jensen, (mmj@ti.com) * Kim T. Petersn, (ktp@ti.com) * * ******************************************************************************/ #ifndef _ETM_H_ #define _ETM_H_ /****************************************************************************** * Prototypes and Globals ******************************************************************************/ // Max size of downlink packet payload #define ETM_PAYLOAD_MAX 256 // End Terminator for Tables #define TABLE_END -1 struct ioformat_s { const short index; // index for identifier const char *name; // parameter const char *format; // parameter data format }; /****************************************************************************** * Global Definitions ******************************************************************************/ // Enhanced TestMode Module IDentifiers enum { ETM_TM3 = 0x00, // Use of old TM3 protocol ETM_CORE = 0x01, ETM_TMT = 0x02, // Pseudo module ETM_SH = 0x03, // Pseudo module ETM_TM3_MISC = 0x04, // Pseudo module - Target side ETM_RF = 0x05, ETM_IMEI = 0x06, ETM_FFS2 = 0x07, ETM_AUDIO = 0x08, ETM_TPU = 0x09, // Not official part ETM ETM_PWR = 0x0A, ETM_BT = 0x0B, ETM_L23 = 0x0C, ETM_RESERVED10 = 0x0D, ETM_RESERVED11 = 0x0E, ETM_RESERVED12 = 0x0F, ETM_CUST = 0xC0, // Customize id ETM_CUST1 = 0xC1, // Customize id ETM_CUST2 = 0xC2, // Customize id ETM_CUST3 = 0xC3, // Customize id ETM_CUST4 = 0xC4, // Customize id ETM_CUST5 = 0xC5, // Customize id ETM_CUST6 = 0xC6, // Customize id ETM_CUST7 = 0xC7, // Customize id ETM_CUST8 = 0xC8, // Customize id ETM_TEST = 0xAA, // used for test of dll's ETM_TASK = 0xEE, // ETM TASK in Target ETM_FFS1 = 0x70 }; enum { // ETM_ERROR_MUL = 100, ETM_CORE_ERROR = -100 * ETM_CORE, ETM_TMT_ERROR = -100 * ETM_TMT, ETM_SH_ERROR = -100 * ETM_SH, ETM_RF_ERROR = -100 * ETM_RF, ETM_FFS2_ERROR = -100 * ETM_FFS2, ETM_AUDIO_ERROR = -100 * ETM_AUDIO, ETM_TPU_ERROR = -100 * ETM_TPU, ETM_IMEI_ERROR = -100 * ETM_IMEI, ETM_PWR_ERROR = -100 * ETM_PWR, ETM_BT_ERROR = -100 * ETM_BT, ETM_FFS_ERROR = -100 * ETM_FFS2, ETM_TEST_ERROR = -100 * ETM_TEST, // used for test of dll's ETM_OS_ERROR = -100 * 1000 // OS Error (specially handled!) }; // Module private (normally target-side) errors are in the range: [ -2..-47] // Common (normally target-side) errors are in the range: [-48..-63] // Common (normally PC-side) errors are in the range: [-64..-89] // Module private (normally PC-side) errors are in the range: [-90..-99] enum ETMCommonTargetErrors { ETM_OK = 0, // Ok ETM_FINISHED = -1, // Previously started operation has finished. // Errors that are related to the Riv env. ETM_RV_FATAL = -48, // Fatal error in RIV environment eg. memory error ETM_RV_NOT_SUPPORTED = -49, // Funtionality not supported by RIV // Error codes related to L1 Test mode ETM_L1TESTMODE = -50, // Layer 1 is not in test mode ETM_NOT_USED1 = -51, // ETM_NOT_USED2 = -52, // ETM_NOT_USED3 = -53, // ETM_NOT_USED4 = -54, // // ETM Common Target Errors ETM_MESSAGE = -55, // Received unknown message ETM_NOMEM = -56, // Out of memory ETM_AGAIN = -57, // Not ready, try again later ETM_BADOP = -58, // Operation not possible in current context ETM_INVAL = -59, // Invalid parameter/argument ETM_NOSYS = -60, // Module or function not present ETM_FATAL = -61, // System fatal error ETM_PACKET = -62, // Packet error (checksum or other) ETM_OK_MORE = -63 // Ok, more data coming }; // ETM Common PC-side Errors. The error codes from this section are not to // be used directly but should be used like 'ETM_XXX_ERROR + ETM_INVALID', // where XXX is the module's name enum ETMCommonPCErrors { ETM_INTERNAL = -64, // Fatal (internal) unrecoverable error ETM_TOOFEWARGS = -65, // Too few arguments ETM_USE = -67, // Failed to load module ETM_USEAGAIN = -68, // Module already loaded ETM_USEVERSION = -69, // Module version incompatible ETM_INVALID = -70, // Invalid parameter/argument ETM_MEMORY = -71, // Out of memory ETM_BUFFER = -72, // Buffer too small (maybe internal buffer) ETM_BADDATA = -73, // Bad/unexpected data in uplink packet ETM_NOSUPPORT = -74, // Not supported ETM_BADVALUE = -75, // Bad argument/parameter value ETM_FILE_IO = -76, // File I/O error (file not found?) ETM_HOST_FIO = -78 // Host system file I/O error }; enum ETMTgTraceMask { TgTrTest = 0x00000001, TgTrEtmLow = 0x00000002, TgTrEtmMed = 0x00000004, TgTrEtmHigh = 0x00000008, TgTrCore = 0x00000100, TgTrAudio = 0x00000200, TgTrFfs = 0x00000400, TgTrRf = 0x00000800, TgTrFatal = 0x80000000, TgTrAll = 0xFFFFFFFF }; /****************************************************************************** * Macros ******************************************************************************/ #define if_error_return(myerror) if (myerror < 0) return myerror // Keyword to use for exporting a DLL function #define FEXPORT __stdcall // Keyword to use for defining a DLL variable as private #define PRIVATE // Keyword to use for defining a DLL variable as private #define PUBLIC /****************************************************************************** * Tracing ******************************************************************************/ // Trace module IDs enum { TrSH = 1 << 24, TrTMT = 2 << 24, TrCore = 3 << 24, TrAUDIO = 4 << 24, TrFFS = 5 << 24, TrPWR = 6 << 24, TrCust = 9 << 24, TrRF = 10 << 24, TrIMEI = 11 << 24, TrBT = 12 << 24, TrETM = 14 << 24, TrTPU = 15 << 24, TrTEST = 19 << 24 }; /****************************************************************************** * Supported hardware and software version - read out from Target *****************************************************************************/ enum HW_SW_revisions_fids { SW_REV_ETM_TASK = 0x01, SW_REV_ETM_API = 0x02, SW_REV_ETM_CORE = 0x10, SW_REV_ETM_AUDIO = 0x11, SW_REV_ETM_RF = 0x12, SW_REV_ETM_FFS = 0x13, SW_REV_ETM_PWR = 0x14, SW_REV_ETM_BT = 0x15, SW_REV_xx1 = 0x16, // Not in use SW_REV_xx2 = 0x18, // Not in use SW_REV_xx3 = 0x19, // Not in use SW_MCU_TCS_PROGRAM_RELEASE = 0xC0, SW_MCU_TCS_OFFICIAL = 0xC1, SW_MCU_TCS_INTERNAL = 0xC2, SW_MCU_TM_VERSION = 0xC3, SW_DSP_CODE_VERSION = 0xD0, SW_DSP_PATCH_VERSION = 0xD1, HW_REV_1, HW_REV_2, HW_REV_3, HW_REV_4, HW_REV_5, HW_REV_6, HW_REV_7, HW_REV_8 }; /****************************************************************************** * Types ******************************************************************************/ #ifndef BASIC_TYPES #define BASIC_TYPES typedef signed char int8_t; typedef unsigned char uint8_t; typedef signed short int16_t; typedef unsigned short uint16_t; typedef signed int int32_t; typedef unsigned int uint32_t; typedef signed char int8; typedef unsigned char uint8; typedef signed short int16; typedef unsigned short uint16; typedef signed int int32; typedef unsigned int uint32; #endif /****************************************************************************** * Trash/Hacks ******************************************************************************/ #endif // _ETM_H_