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_