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_