FreeCalypso > hg > freecalypso-sw
diff gsm-fw/services/etm/etm.h @ 164:d78219c43fbf
gsm-fw/services/etm: initial import from the Leonardo semi-src
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Mon, 18 Nov 2013 06:39:44 +0000 |
parents | |
children | 9dbf3248a197 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gsm-fw/services/etm/etm.h Mon Nov 18 06:39:44 2013 +0000 @@ -0,0 +1,257 @@ +/****************************************************************************** + * 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_