diff --git a/mcu/service/sst/include/SST_Concurrent_utility.h b/mcu/service/sst/include/SST_Concurrent_utility.h
new file mode 100644
index 0000000..48f7353
--- /dev/null
+++ b/mcu/service/sst/include/SST_Concurrent_utility.h
@@ -0,0 +1,328 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   SST_concurrent_utility.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This Module defines the necessary API needed by concurrent ulitity.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef _SST_CONCURRENT_UTILITY_
+#define _SST_CONCURRENT_UTILITY_
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "kal_general_types.h"
+
+/*************************************************************************
+ * Platform Capabilities Definition   
+ *************************************************************************/
+
+/*************************************************************************
+ * Constant Definition : Option from NVRAM setting
+ *************************************************************************/
+#define SWLA_ADDON_EBM_R_LAT 0x10
+#define SWLA_ADDON_EBM_W_LAT 0x20
+
+/*************************************************************************
+ * Constant Definition : Sync with ELT Addon DLL
+ *************************************************************************/
+#define USAGE_TYPE_ELM       (1UL <<  0)
+#define USAGE_TYPE_EBM       (1UL <<  1)
+#define USAGE_TYPE_UR        (1UL <<  2)
+#define USAGE_TYPE_EBM_RLAT  (1UL <<  3)
+#define USAGE_TYPE_EBM_WLAT  (1UL <<  4)
+#define USAGE_TYPE_BMON      (1UL <<  5)
+
+
+/*************************************************************************
+ * ENUM Definition : Sync with Catcher 
+ *************************************************************************/
+typedef enum
+{
+   HEADER_ID_MAIN_TQCNT           = 0x00000001,
+   HEADER_ID_MAIN_USEC            = 0x00000002,
+   HEADER_ID_RTOS_V1              = 0x00000000,
+   HEADER_ID_RTOS_V2              = 0x00000010,
+   HEADER_ID_TIME_STAMP_BASE      = 0x00000100,
+   HEADER_ID_EXTRA_INFO           = 0x00000103,
+   HEADER_ID_TWO_RATIOS           = 0x00000104,
+   HEADER_ID_OVERHEAD             = 0x00000105,
+   HEADER_ID_CUST_OVERHEAD        = 0x00000106,
+   HEADER_ID_EXTERNAL_BN          = 0x00010005,
+   HEADER_ID_EXTERNAL_EMI_GERNAL  = 0x00010006,
+   HEADER_ID_EXTERNAL_EMI_PRO     = 0x00010007,
+   HEADER_ID_EXTERNAL_TST         = 0x00010008,
+   HEADER_ID_EXTERNAL_INST_COUNT  = 0x0001000A,
+   HEADER_ID_EXTERNAL_CONCURRENCY = 0x0001000B,
+   HEADER_ID_EXTERNAL_MAX         = 0x00010010,
+   
+   /* The following is for MALMO ASM SWLA*/
+   HEADER_ID_MALMO_ASM_BASE = 0x10000000,
+   HEADER_ID_MALMO_ASM_FRAMENO,
+   HEADER_ID_MALMO_ASM_MCU_PC, 
+   HEADER_ID_MALMO_ASM_CONTEXT_ID, 
+   HEADER_ID_MALMO_ASM_PMC0,
+   HEADER_ID_MALMO_ASM_PMC1, 
+   HEADER_ID_MALMO_ASM_PMC2,
+   HEADER_ID_MALMO_ASM_CYCLE_CNT, 
+   HEADER_ID_MALMO_ASM_EMI_BCNT, 
+   HEADER_ID_MALMO_ASM_EMI_BACT, 
+   HEADER_ID_MALMO_ASM_EMI_BSCT, 
+   HEADER_ID_MALMO_ASM_EMI_BSCT2, 
+   HEADER_ID_MALMO_ASM_EMI_BSCT3, 
+   HEADER_ID_MALMO_ASM_TIMESTAMP,
+   /* There might be more MALMO ASM entries in the future */
+ 
+   HEADER_ID_MALMO_ASM_EXTRA_BASE = 0x10001000,
+   HEADER_ID_MALMO_ASM_EXTRA0,
+   HEADER_ID_MALMO_ASM_EXTRA1, 
+   HEADER_ID_MALMO_ASM_EXTRA2, 
+   HEADER_ID_MALMO_ASM_EXTRA3
+
+} SA_HEADER_ID_T;
+
+/*************************************************************************
+ * Structure Definition : Basic and Professional EMI Monitor Logging Node
+ *************************************************************************/
+
+typedef struct SA_EBMAddonCounter_T
+{
+    kal_uint32 emi_md_r_wcnt;
+    kal_uint32 emi_md_w_wcnt;
+} SA_EBMAddonCounter;
+
+
+
+typedef struct SA_ELMAddonCounter_T
+{
+    kal_uint32 elm_r_tcnt; //mode 0 read trans count    
+    kal_uint32 elm_w_tcnt; //mode 0 wrtie trans count
+    kal_uint32 elm_r_lat;  //mode 0 read latency count    
+    kal_uint32 elm_w_lat;  //mode 0 write latency count
+#if defined(__MD95__)
+    kal_uint32 elm_r_wc;   //mode 0 read word count
+    kal_uint32 elm_w_wc;   //mode 0 write word count
+#endif
+} SA_ELMAddonCounter;
+
+//#define __SWLA_ADDON_SMIM__
+typedef struct BM_LOG_T
+{
+    // MD ELM
+    #if defined(__SWLA_ADDON_ELM__)	
+    kal_uint32 elm_r_tcnt; //mode 1 read trans count    
+    kal_uint32 elm_w_tcnt; //mode 1 read word count
+    kal_uint32 elm_r_lat;  //mode 1 read latency count    
+    kal_uint32 elm_w_lat;  //mode 1 write word count
+    #endif
+
+    #if defined(__SWLA_ADDON_EBM__)
+	kal_uint32 emi_md_r_wcnt;
+    kal_uint32 emi_md_w_wcnt;
+    #endif /* __SWLA_ADDON_EBM__ */
+
+    #if defined(__SWLA_ADDON_PMU__)
+    #if defined(__PROFILE_PMU_START_END_CYC__)
+    kal_uint32 cr4_pmu_cycle_start;
+    kal_uint32 cr4_pmu_cycle_end;
+    #else
+    kal_uint32 cr4_pmu_dur;
+    #endif /* __PROFILE_PMU_START_END_CYC__ */
+    kal_uint32 cr4_pmu_event[3];
+    #endif /* __SWLA_ADDON_PMU__ */
+
+    #if defined(__SWLA_ADDON_EBM_LAT__)
+    kal_uint32 emi_md_r_tcnt;
+    kal_uint32 emi_md_w_tcnt;
+	kal_uint32 emi_md_r_lat_cnt;
+    kal_uint32 emi_md_w_lat_cnt;
+    #endif /* __SWLA_ADDON_EBM_LAT__ */
+
+    #if defined(__SWLA_ADDON_BMON__)
+    kal_uint32 busmon_mcu_tot_cyc;
+    /* index 0 for IP0, index 1 for IP1 */
+//  kal_uint32 busmon_mcu_tot_nw_cycle[2]; // non weighted transaction cycles
+    kal_uint32 busmon_mcu_max_lat[2];      // maximal latency
+    kal_uint32 busmon_infra_max_lat[2];    // maximal latency
+    #endif /* __SWLA_ADDON_BMON__ */
+
+	#if defined(__SWLA_ADDON_SMIM__)
+    kal_uint32 smi_actCnt;
+    kal_uint32 smi_tCnt;
+    kal_uint32 smi_byteCnt;
+	#endif
+
+    #if !defined(__SWLA_ADDON_ELM__) && !defined(__SWLA_ADDON_EBM__) && !defined(__SWLA_ADDON_EBM_LAT__) && !defined(__SWLA_ADDON_PMU__)
+    kal_uint32 dummy;
+    #endif
+
+} BM_Log;
+
+/*************************************************************************
+ * Structure Definition : Auxiliary Structures
+ *************************************************************************/
+typedef struct EMI_Setting_T
+{
+    kal_uint32 usage_type;
+    kal_uint32 word_cnt;
+}EMI_Setting;
+
+/*************************************************************************
+ * Structure Definition : Basic and Professional EMI Monitor Init Reference
+ *************************************************************************/
+typedef struct BM_REF_T
+{
+    SA_HEADER_ID_T   id;
+    kal_uint32       szRef;
+    EMI_Setting      emi_settings;
+}BM_Ref;
+
+
+/*************************************************************************
+ * Exported APIs for Software LA
+ *************************************************************************/
+
+extern void Setup_AddOn_RefData(SA_HEADER_ID_T id,  kal_uint8 **ARef, kal_uint32 *szARef);
+extern void Get_BM_Log( BM_Log* pLog );
+extern void Enable_Normal_EMI_Monitor(void);
+
+extern void SWLA_EBM_Setup_DLLInfo(kal_uint8 **ARef, kal_uint32 *szARef);
+
+extern void SA_ELM_AddonLogging(kal_uint32 * buff);
+extern void SA_EBM_AddonInit();
+extern kal_uint8* SA_EBM_AddonLogging_HWmode();
+extern void SA_EBM_AddonLogging_SWmode(kal_uint32 * buff);
+
+
+
+#ifdef __cplusplus       
+}
+#endif
+
+#endif /* _SST_CONCURRENT_UTILITY_ */
diff --git a/mcu/service/sst/include/SST_fue_encrypt.h b/mcu/service/sst/include/SST_fue_encrypt.h
new file mode 100644
index 0000000..d61732a
--- /dev/null
+++ b/mcu/service/sst/include/SST_fue_encrypt.h
@@ -0,0 +1,99 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2006
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   SST_fue_encrypt.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This is SST encryption header
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+ 
+#ifndef __SST_FUE_ENCRYPT_H__
+#define __SST_FUE_ENCRYPT_H__
+
+#include "kal_public_api.h"
+
+typedef enum {
+	 SB_STOP = 0
+	,SB_DISABLE
+	,SB_BBCHIP_UNSUPPORT
+	,SB_HEADER_NOT_FOUND
+	,SB_FIND_HEADER
+	,SB_FIND_ENCODING_AREA
+	,SB_FIND_SEED
+	,SB_ENCODING
+	,SB_FINISH
+} SB_ProcessState_E;
+
+// UID struct information 
+extern SB_ProcessState_E	g_SB_State;
+
+
+extern void EncryptBuffer(void* BufferAddr, const kal_uint32 packet_length);
+extern void EncryptInit(void); 
+
+#endif /*__SST_FUE_ENCRYPT_H__*/
diff --git a/mcu/service/sst/include/SST_init.h b/mcu/service/sst/include/SST_init.h
new file mode 100644
index 0000000..0cfdb4c
--- /dev/null
+++ b/mcu/service/sst/include/SST_init.h
@@ -0,0 +1,96 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   SST_init.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This file contains definitions for SW minor version.
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ 
+ ****************************************************************************/
+  
+#ifndef _SST_INIT_H
+#define _SST_INIT_H
+
+#if (defined(MT6752) && defined(__MD1__))
+#define SW_MINOR_VER	0x1
+#elif defined(MT6280_S01)
+#define SW_MINOR_VER	0x1
+#else
+#define SW_MINOR_VER	0x0
+#endif
+
+#endif	/* _SST_TRC_H */
diff --git a/mcu/service/sst/include/SST_intrCtrl.h b/mcu/service/sst/include/SST_intrCtrl.h
new file mode 100644
index 0000000..14e121f
--- /dev/null
+++ b/mcu/service/sst/include/SST_intrCtrl.h
@@ -0,0 +1,541 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   SST_intrCtrl.h 
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   Header file for non-release version of interrupt control.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef __SST_INTRCTRL_H__
+#define __SST_INTRCTRL_H__
+
+#include "us_timer.h"
+#include "reg_base.h"
+
+#if defined(__MD93__)
+    #if !defined(__FPGA__)
+    #define __QBIT_TIME_CHECK__ // use Qbit for timing check, else use microsecond
+    #define __HARD_REAL_TIME_CHECK__   //SW timing check
+    //#define __MDCIRQ_TIMING_CHECK_EN__ //HW timing check
+    //#define __DEADLOCK_DETECTION__
+    //#define __HARD_REAL_TIME_CHECK_LOG_LEVEL__
+    #else /* else of !defined(__FPGA__)*/
+    #define __QBIT_TIME_CHECK__ // use Qbit for timing check, else use microsecond
+    //#define __HARD_REAL_TIME_CHECK__   //SW timing check
+    //#define __MDCIRQ_TIMING_CHECK_EN__ //HW timing check
+    //#define __DEADLOCK_DETECTION__
+    #endif
+#elif defined(__MD95__) /* else if of defined(__MD93__)*/
+    #if !defined(__FPGA__)
+    #define __HARD_REAL_TIME_CHECK__   //SW timing check
+    //#define __MDCIRQ_TIMING_CHECK_EN__ //HW timing check
+    //#define __DEADLOCK_DETECTION__
+    //#define __HARD_REAL_TIME_CHECK_LOG_LEVEL__
+    #else /* else of !defined(__FPGA__)*/
+    //#define __HARD_REAL_TIME_CHECK__   //SW timing check
+    //#define __MDCIRQ_TIMING_CHECK_EN__ //HW timing check
+    //#define __DEADLOCK_DETECTION__
+    #endif
+#elif defined(__MD97__) /* else if of defined(__MD95__)*/
+    #if !defined(__FPGA__)
+    #define __HARD_REAL_TIME_CHECK__   //SW timing check
+    //#define __MDCIRQ_TIMING_CHECK_EN__ //HW timing check
+    //#define __DEADLOCK_DETECTION__
+    //#define __HARD_REAL_TIME_CHECK_LOG_LEVEL__
+    #else /* else of !defined(__FPGA__)*/
+    //#define __HARD_REAL_TIME_CHECK__   //SW timing check
+    //#define __MDCIRQ_TIMING_CHECK_EN__ //HW timing check
+    //#define __DEADLOCK_DETECTION__
+    #endif
+#elif defined(__MD97P__) /* else if of defined(__MD97__)*/
+    #if !defined(__FPGA__)
+    #define __HARD_REAL_TIME_CHECK__   //SW timing check
+    //#define __MDCIRQ_TIMING_CHECK_EN__ //HW timing check
+    //#define __DEADLOCK_DETECTION__
+    //#define __HARD_REAL_TIME_CHECK_LOG_LEVEL__
+    #else /* else of !defined(__FPGA__)*/
+    #define __HARD_REAL_TIME_CHECK__   //SW timing check
+    //#define __MDCIRQ_TIMING_CHECK_EN__ //HW timing check
+    //#define __DEADLOCK_DETECTION__
+    #endif
+#else  /* else of defined(__MD93__)*/
+    #error "no chip definition match"
+#endif
+
+#if defined(__DEADLOCK_DETECTION__) && defined(__MDCIRQ_TIMING_CHECK_EN__)
+#error "deadlock detection and HW timing check cannot use together"
+#endif
+#if defined(__MDCIRQ_TIMING_CHECK_EN__) && !defined(__HARD_REAL_TIME_CHECK__)
+#error "We also need SW timing check for normal domain calling ITC APIs although HW timing check is enable"
+#endif
+
+
+#if defined(__HARD_REAL_TIME_CHECK_LOG_LEVEL__) && !defined(__HARD_REAL_TIME_CHECK__)
+#error "Qbits check is not enable!! Qbits check fail logging cannot enable standalone!!"
+#endif
+
+
+#if defined(__MD93__)
+    #define SST_HR_DUR_HRT (45)
+    #define SST_HR_DUR_NON_HRT (1000)
+    #if defined(__HARD_REAL_TIME_CHECK_LOG_LEVEL__)
+    #define SST_HR_DUR_HRT_LOG (55)
+    #endif
+#elif defined(__MD95__) /* else if of defined(__MD93__)*/
+#if defined (__KTEST__)
+    #define SST_HR_DUR_HRT (20000000)
+    #define SST_HR_DUR_NON_HRT (20000000)
+    #if defined(__HARD_REAL_TIME_CHECK_LOG_LEVEL__)
+    #define SST_HR_DUR_HRT_LOG (20000000)
+    #endif
+#else
+    #define SST_HR_DUR_HRT (50)
+    #define SST_HR_DUR_NON_HRT (1000)
+    #if defined(__HARD_REAL_TIME_CHECK_LOG_LEVEL__)
+    #define SST_HR_DUR_HRT_LOG (50)
+    #endif
+#endif // #if defined (__KTEST__)
+#elif defined(__MD97__) /* else if of defined(__MD95__)*/
+#if defined (__KTEST__)
+    #define SST_HR_DUR_HRT (200000000)
+    #define SST_HR_DUR_NON_HRT (200000000)
+    #if defined(__HARD_REAL_TIME_CHECK_LOG_LEVEL__)
+    #define SST_HR_DUR_HRT_LOG (200000000)
+    #endif
+#else
+    #define SST_HR_DUR_HRT (80)
+    #define SST_HR_DUR_NON_HRT (1000)
+    #if defined(__HARD_REAL_TIME_CHECK_LOG_LEVEL__)
+    #define SST_HR_DUR_HRT_LOG (80)
+    #endif
+#endif // #if defined (__KTEST__)
+#elif defined(__MD97P__) /* else if of defined(__MD97__)*/
+#if defined (__KTEST__)
+    #define SST_HR_DUR_HRT (200000000)
+    #define SST_HR_DUR_NON_HRT (200000000)
+    #if defined(__HARD_REAL_TIME_CHECK_LOG_LEVEL__)
+    #define SST_HR_DUR_HRT_LOG (200000000)
+    #endif
+#else
+    #define SST_HR_DUR_HRT (60)
+    #define SST_HR_DUR_NON_HRT (1000)
+    #if defined(__HARD_REAL_TIME_CHECK_LOG_LEVEL__)
+    #define SST_HR_DUR_HRT_LOG (200)
+    #endif
+#endif // #if defined (__KTEST__)
+#else  /* else of defined(__MD93__)*/
+    #error "no chip definition match"
+#endif
+
+#if defined(__FPGA__)
+#define SST_HR_DUR_HRT_WD (2000*1000)
+#define SST_HR_DUR_NON_HRT_WD (2000*1000)
+#else
+#define SST_HR_DUR_HRT_WD (2000)
+#define SST_HR_DUR_NON_HRT_WD (2000)
+
+#endif 
+
+#define SST_IRQ_MASK (0x00000001)
+
+#if defined(__HW_US_TIMER_SUPPORT__) /* !__CR4__ */
+
+#define GET_AND_SAVED_TIME(v, vpe_num) do{\
+                                IRQMaskCounter[vpe_num] = ust_get_current_time();\
+                                IRQMaskValue[vpe_num] = v;\
+                              }while(0)
+
+#define GET_AND_SAVED_TIME_HRT(vpe_num) do{\
+                                HRTQbitCounter[vpe_num] = ust_get_current_time();\
+                              }while(0)
+
+#define GET_CURRENT_TIME(v) do{\
+                                v = ust_get_current_time();\
+                             }while(0)
+
+#define GET_SAVED_TIME(v,vpe_num)  do{\
+                                v = IRQMaskCounter[vpe_num];\
+                             }while(0)
+
+#define GET_SAVED_TIME_HRT(v,vpe_num)  do{\
+                                v = HRTQbitCounter[vpe_num];\
+                             }while(0)
+
+#define GET_DURATION(d,t1,t2) do{\
+                                 d = ((t2) >= (t1)) ? ((t2) - (t1)) : (USCNT_WRAP - (t1) + (t2) + 1);\
+                              }while(0)
+
+#define TRANS_TO_QBIT(d,s) do{\
+                              d = (((s)*13)/12);\
+                              }while(0)
+
+#if defined(__FPGA__) && !defined(__KTEST__)
+    /* Check us directly instead of qbits in gen95/gen97 */
+    #if !defined(__QBIT_TIME_CHECK__)
+    #define IRQ_DISABLE_MAX_DURATION_HRT    (SST_HR_DUR_HRT*1000)
+    #define IRQ_DISABLE_MAX_DURATION_NON_HRT    (SST_HR_DUR_NON_HRT*1000)
+    #else
+    #define IRQ_DISABLE_MAX_DURATION_HRT    ((SST_HR_DUR_HRT*12)/13*1000)
+    #define IRQ_DISABLE_MAX_DURATION_NON_HRT    ((SST_HR_DUR_NON_HRT*12)/13*1000)
+	#endif
+#else
+    /* Check us directly instead of qbits in gen95/gen97 */
+    #if !defined(__QBIT_TIME_CHECK__)
+    #define IRQ_DISABLE_MAX_DURATION_HRT    (SST_HR_DUR_HRT)
+    #define IRQ_DISABLE_MAX_DURATION_NON_HRT    (SST_HR_DUR_NON_HRT)
+    #else
+    #define IRQ_DISABLE_MAX_DURATION_HRT    ((SST_HR_DUR_HRT*12)/13)
+    #define IRQ_DISABLE_MAX_DURATION_NON_HRT    ((SST_HR_DUR_NON_HRT*12)/13)
+    #endif
+#endif 
+
+#if defined(__HARD_REAL_TIME_CHECK_LOG_LEVEL__)
+    /* Check us directly instead of qbits in gen95/gen97 */
+    #if !defined(__QBIT_TIME_CHECK__)
+    #define IRQ_DISABLE_MAX_DURATION_HRT_LOG    (SST_HR_DUR_HRT_LOG)
+    #else
+    #define IRQ_DISABLE_MAX_DURATION_HRT_LOG    ((SST_HR_DUR_HRT_LOG*12)/13)
+    #endif
+#endif
+
+#if defined(__HARD_REAL_TIME_CHECK_LOG_LEVEL__)
+typedef struct{
+    kal_uint32 violationAddress;
+    kal_uint32 violationDuration;
+} HRTQbitFailLogStruct;
+#define HRTQbitFailLogSize 32
+#endif
+
+#else /* !__HW_US_TIMER_SUPPORT__ */
+
+#error "No timing check counter support!"
+
+#endif /* __HW_US_TIMER_SUPPORT__ */
+
+kal_uint32 query_Qbits_criteria_nonHRT(void);
+kal_uint32 query_Qbits_criteria_nonHRT_us(void);
+kal_uint32 query_Qbits_criteria_HRT(void);
+kal_uint32 query_Qbits_criteria_HRT_us(void);
+
+#endif /* __SST_INTRCTRL_H__ */
diff --git a/mcu/service/sst/include/SST_mem_utility.h b/mcu/service/sst/include/SST_mem_utility.h
new file mode 100644
index 0000000..882861f
--- /dev/null
+++ b/mcu/service/sst/include/SST_mem_utility.h
@@ -0,0 +1,106 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2015
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   SST_mem_utility.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _SST_MEM_UTILITY_H
+#define _SST_MEM_UTILITY_H
+
+/*******************************************************************************
+ * Included header files
+ *******************************************************************************/
+#include "kal_general_types.h"
+/*******************************************************************************
+ * Constant Definition
+ *******************************************************************************/
+
+/*******************************************************************************
+ * Macro definition
+ *******************************************************************************/
+
+
+
+#define L1_NBR_OF_WORDS_IN_LINE 8
+struct l1_icache_line {
+    kal_uint32 address;
+    kal_uint32 line[L1_NBR_OF_WORDS_IN_LINE];
+};
+
+#define L2_NBR_OF_WORDS_IN_LINE 16
+struct l2_cache_line {
+    kal_uint32 address;
+    kal_uint32 line[L2_NBR_OF_WORDS_IN_LINE];
+};
+
+extern kal_uint32 get_program_counter(void);
+extern kal_bool read_instruction(kal_uint32 addr, kal_uint32 *instruction);
+
+extern void SST_GetSysStackInfo(kal_uint32 * const base, kal_uint32 * const end,
+                         kal_uint32 core, kal_uint32 tc);
+
+extern void SST_GetCurrentSysStackInfo(kal_uint32 * const base, kal_uint32 * const end);
+extern void SST_GetTaskStackInfo(kal_uint32 task_index, kal_uint32 * const base, kal_uint32 * const end);
+extern void SST_GetTaskStackPointer(kal_uint32 task_index, kal_uint32 * const pointer);
+extern void SST_GetHisrStackInfo(kal_uint32 hisr_index, kal_uint32 * const base, kal_uint32 * const end);
+extern void SST_GetCurrentStackInfo(kal_uint32 * const base, kal_uint32 * const end);
+extern kal_bool SST_CheckIfSP(kal_uint32 mem_ptr);
+
+#endif /* _SST_MEM_UTILITY_H */
diff --git a/mcu/service/sst/include/SST_nvram_record.h b/mcu/service/sst/include/SST_nvram_record.h
new file mode 100644
index 0000000..be460f8
--- /dev/null
+++ b/mcu/service/sst/include/SST_nvram_record.h
@@ -0,0 +1,71 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   SST_nvram_record.h
+ *
+ * Project:
+ * --------
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef SST_NVRAM_RECORD_H
+#define SST_NVRAM_RECORD_H
+
+void SST_WriteNVRAMRecord_SystemStatistics(void);
+
+#endif   /* SST_NVRAM_RECORD_H */
+
diff --git a/mcu/service/sst/include/SST_secure.h b/mcu/service/sst/include/SST_secure.h
new file mode 100644
index 0000000..4d3ba1b
--- /dev/null
+++ b/mcu/service/sst/include/SST_secure.h
@@ -0,0 +1,505 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   SST_secure.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This is header file for SST_secure.c
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+
+#ifndef __SST_SECURE_H__
+#define __SST_SECURE_H__
+
+/*******************************************************************************
+ * Included header files
+ *******************************************************************************/
+
+#include "kal_general_types.h"
+#include "nvram_data_items.h"
+#include "l4_nvram_def.h"
+
+#include "sst_interface.h"
+#include "kal_public_defs.h"
+#include "reg_base.h"
+
+/*************************************************************************
+ * External global data declaration
+ *************************************************************************/
+
+/*************************************************************************
+ * External Function Declaration
+ *************************************************************************/
+
+/*************************************************************************
+ * Type definitions
+ *************************************************************************/
+ 
+/* max size of NVRAM secret key in bytes*/
+#define NVRAM_KEY_GEN_AES_LEN                        32
+#define NVRAM_KEY_GEN_MAX_KEY_LEN                    256
+
+/* Error types of get NVRAM key*/
+#define GET_NVRAM_KEY_ERROR_NONE                      0
+#define GET_NVRAM_KEY_ERROR_KEY_BUFFER_INVALID       -1  // input buffer pointer is NULL
+#define GET_NVRAM_KEY_ERROR_KEY_SEED_BUFFER_INVALID  -2  // input seed buffer pointer is NULL
+#define GET_NVRAM_KEY_ERROR_KEY_LEN_EXCEED_MAX       -3  // input len exceed NVRAM_KEY_MAX_LEN
+#define GET_NVRAM_KEY_ERROR_KEY_SEED_LEN_NOT_MATCH   -4
+
+
+#define PROTECTED_LID_ERROR_NONE                      0x0
+#define PROTECTED_LID_ERROR_SECURE_NOT_ALLOWED        0x1000
+#define PROTECTED_LID_ERROR_NORMAL_R_FORBID           0x1001
+#define PROTECTED_LID_ERROR_NORMAL_W_FORBID           0x1002
+
+/* NVRAM AES en/decrypt related */
+#define NVRAM_AES_KEY_LEN_128BIT					16
+#define NVRAM_AES_KEY_LEN_192BIT					24
+#define NVRAM_AES_KEY_LEN_256BIT					32
+
+#define NVRAM_AES_ERROR_NONE						0
+#define NVRAM_AES_ERROR_KEY_LEN_ERROR				-1
+#define NVRAM_AES_ERROR_DATA_LEN_NOT_ALIGN			-2
+#define NVRAM_AES_ERROR_DATA_LEN_ERROR				-3
+#define NVRAM_AES_ERROR_BUF_PTR_ERROR				-4
+
+//AP efuse offset definition
+#if defined(MT6885) || defined(MT6873) || defined(MT6853) || defined(MT6833) || defined(MT6893)
+#define	OFFSET_EFUSE_C_CTRL0 0x4C4
+#define	OFFSET_EFUSE_C_CTRL1 0x4C8
+#define	OFFSET_EFUSE_C_DAT0  0x510
+#define	OFFSET_EFUSE_C_DAT1  0x514
+#define	OFFSET_EFUSE_C_DAT2  0x518
+#define	OFFSET_EFUSE_C_DAT3  0x51C
+#define	OFFSET_EFUSE_C_DAT4  0x520
+#define	OFFSET_EFUSE_C_DAT5  0x524	
+#elif defined(CHIP10992)
+#define	OFFSET_EFUSE_C_CTRL0 0x4C4
+#define	OFFSET_EFUSE_C_CTRL1 0x4C8
+#define	OFFSET_EFUSE_C_DAT0  0x510
+#define	OFFSET_EFUSE_C_DAT1  0x514
+#define	OFFSET_EFUSE_C_DAT2  0x518
+#define	OFFSET_EFUSE_C_DAT3  0x51C
+#define	OFFSET_EFUSE_C_DAT4  0x520
+#define	OFFSET_EFUSE_C_DAT5  0x524	
+#define	OFFSET_EFUSE_C_DAT6  0x528	
+#define	OFFSET_EFUSE_C_DAT7  0x52C
+#else
+#define	OFFSET_EFUSE_C_CTRL0 0x0
+#define	OFFSET_EFUSE_C_CTRL1 0x0
+#define	OFFSET_EFUSE_C_DAT0  0x0
+#define	OFFSET_EFUSE_C_DAT1  0x0
+#define	OFFSET_EFUSE_C_DAT2  0x0
+#define	OFFSET_EFUSE_C_DAT3  0x0
+#define	OFFSET_EFUSE_C_DAT4  0x0
+#define	OFFSET_EFUSE_C_DAT5  0x0	
+#endif
+
+#define OFFSET_EFUSE_AP_SBC_EN 0x60
+#define OFFSET_BIT_AP_SBC_EN 0x2
+#define BASE_AP_EFUSE_ADDR   EFUSE_base
+
+//AP efuse offset array
+extern kal_uint32 ap_efuse_offset_arr[];
+ 
+#if defined(__SV5_ENABLED__) || defined(__SV5X_ENABLED__)
+#if defined(__SMART_PHONE_MODEM__) && defined(__X_BOOTING__)
+#define SECURE_RO_SIZE_OVERHEAD 0	//SEC_RO has no GFH for external phone
+#else
+#define SECURE_RO_SIZE_OVERHEAD 404 
+#endif /*defined(__SMART_PHONE_MODEM__) && defined(__X_BOOTING__)*/
+#else
+#define SECURE_RO_SIZE_OVERHEAD  0
+#endif
+
+
+// AP HRID location
+#if defined(MT6763) || defined(MT6739) || defined(MT6295M) || defined(MT3967) || defined(MT6297) || defined(MT6779) || defined(MT6885) || defined(MT6873) || defined(MERCURY) || defined(MT6853) || defined(MT6833) || defined(MT6893) || defined(CHIP10992)
+#define EFUSE_HRID0                         ((volatile unsigned *)(g_SST_EFUSE_base+0x0140))
+#define EFUSE_HRID1                         ((volatile unsigned *)(g_SST_EFUSE_base+0x0144))
+#define EFUSE_HRID2                         ((volatile unsigned *)(g_SST_EFUSE_base+0x0148))
+#define EFUSE_HRID3                         ((volatile unsigned *)(g_SST_EFUSE_base+0x014C))
+#define SIZE_HRID                           (16)
+#else
+
+#error "Not Supported Chips"
+
+#endif
+
+/* AP/MD gen common AES key, bit enum */
+typedef enum{
+	AES_128 = 0,
+	AES_256	= 1,
+}AES_MODE;
+
+#define HW_AES_ENCRYPT	1
+#define HW_AES_DECRYPT	0
+/*************************************************************************
+ * Export API of SSS and SST
+ *************************************************************************/
+extern kal_bool   SST_Is_Secure_BB(void);
+
+
+
+extern void SST_Secure_Algo (kal_uint8 Direction, kal_uint32 ContentAddr,
+                             kal_uint32 ContentLen, kal_uint8 *CustomSeed,
+                             kal_uint8 *ResText);
+
+extern void SST_Secure_Algo_With_Level (kal_uint8 Direction, kal_uint32 ContentAddr,
+                        kal_uint32 ContentLen, kal_uint8 *CustomSeed, kal_uint32 Level,
+                        kal_uint8 *ResText);
+
+extern kal_bool SST_Get_NVRAM_Key(kal_uint32 *p_key, kal_uint32 *p_addr, kal_uint32 *p_len);
+   
+extern void SSS_Init_Share_Crypto_Drv(void * cb_ts_record, void * cb_ts_info, kal_uint32 init_tbl);
+
+extern void SSS_Init_Crypto_Drv(void * cb_ts_record, void * cb_ts_info);
+
+/*****************************************************************************
+ * FUNCTION
+ *  SST_NVRAM_Data_Access_Check
+ * DESCRIPTION
+ *  This function is to check the access to sensive or secure NVRAM data item.
+ *  It is for internal used for NVRAM and security.
+ * PARAMETERS
+ *  LID:                               [IN]    NVRAM LID
+ *  rw:                                 [IN]    read or write access : 0 => read, 1 => write
+ *  is_secure_data_access:   [IN]    Secure or normal access : 0 => normal, 1 => secure
+ * RETURNS
+ *  unsigned 32 bits
+ * RETURN VALUES
+ *  0 :  check pass
+ *  otherwise :  check failed, please must not allowed to read nvram if checking failed
+ *****************************************************************************/
+extern kal_uint32 SST_NVRAM_Data_Access_Check(nvram_lid_enum LID, kal_int32 rw, kal_bool is_secure_data_access, void * reserved_ptr);
+
+extern kal_int32 SST_Get_HRID(kal_uint32 * pRId, kal_uint32 check_buf_size);
+
+extern kal_int32 SST_Get_NVRAM_SW_Key(void * pNVKey, kal_uint32 nNVKeySize, void * pKeySeed, kal_uint32 nKeySeedSize);
+
+// SST "S"pecific "S"ecure "F"eature Initialiation
+extern void SST_SSF_Init(void);
+
+// SST "S"pecific "S"ecure "F"eature De-init
+extern void SST_SSF_Deinit(void);
+
+kal_int32 nvram_AES_cipher_encrypt(unsigned char const *_key, unsigned int key_len, unsigned char *src_buf, unsigned char *dst_buf, unsigned int data_len);
+
+kal_int32 nvram_AES_cipher_decrypt(unsigned char const *_key, unsigned int key_len, unsigned char *src_buf, unsigned char *dst_buf, unsigned int data_len);
+
+
+#endif //__SST_SECURE_H__
diff --git a/mcu/service/sst/include/SST_secure_exp.h b/mcu/service/sst/include/SST_secure_exp.h
new file mode 100644
index 0000000..9f2de54
--- /dev/null
+++ b/mcu/service/sst/include/SST_secure_exp.h
@@ -0,0 +1,147 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   SST_secure_exp.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This is header file for SST_secure_exp.c
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+
+#ifndef __SST_SECURE_EXP_H__
+#define __SST_SECURE_EXP_H__
+
+/*******************************************************************************
+ * Included header files
+ *******************************************************************************/
+
+#include "kal_general_types.h"
+#include "sst_interface.h"
+
+/*************************************************************************
+ * External global data declaration
+ *************************************************************************/
+
+/*************************************************************************
+ * External Function Declaration
+ *************************************************************************/
+
+/*************************************************************************
+ * Type definitions
+ *************************************************************************/
+ 
+/*************************************************************************
+ * Export API of SSS and SST
+ *************************************************************************/
+
+/*****************************************************************************
+ * FUNCTION
+ *	SST_Exp_Is_Target_Rooted
+ *
+ * DESCRIPTION
+ *	The function check if the device is rooted.  
+ *
+ * PARAMETERS
+ *	[INPUT] N/A 
+ *	[OUTPUT] N/A
+ *
+ * RETURNS
+ *	KAL_TRUE  : Device is rooted
+ *	KAL_FALSE : Device is not rooted
+ *
+ * NOTES
+ *  N/A
+ *
+ *****************************************************************************/
+extern kal_bool SST_Exp_Is_Target_Rooted(void);
+
+/*****************************************************************************
+ * FUNCTION
+ *	SST_Get_Secure_Channel_Key
+ *
+ * DESCRIPTION
+ *	To get an AP/MD shared key.  
+ *
+ * PARAMETERS
+ *	[INPUT/OUTPUT] key
+ *	[INPUT] len: counted in byte. Must be 16 bytes now	
+ *
+ * RETURNS
+ *  N/A
+ *
+ * NOTES
+ *  N/A
+ *
+ *****************************************************************************/
+extern void SST_Get_Secure_Channel_Key(kal_uint8 *key, kal_uint32 len);
+
+#endif //__SST_SECURE_EXP_H__
+
diff --git a/mcu/service/sst/include/SST_sla.h b/mcu/service/sst/include/SST_sla.h
new file mode 100644
index 0000000..fa3decb
--- /dev/null
+++ b/mcu/service/sst/include/SST_sla.h
@@ -0,0 +1,362 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   SST_sla.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This Module defines the necessary API needed by software LA.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+ 
+#ifndef _SST_SLA_
+#define _SST_SLA_
+
+#include "us_timer.h"
+#include "SST_Concurrent_utility.h"
+#include "kal_general_types.h"
+#include "swla_public.h"
+#include "system_profiler_public.h"
+
+//#define __LOW_RAM_SWLA__ //wrap with compile option to save overhead in official load
+
+#define MAX_ADDON_NAME_LENGTH (12)
+#define SA_CCCI_SM_NUM (30)
+#define SA_CCCI_SM_UNIT_SIZE (12)  /* 3 words for ContextID, FRC, CoreID_TCID */
+
+/* Type Definition */
+typedef struct SA_LoggingNode_T
+{
+   /* Manadatory information structure member */
+   kal_uint32   jobID;
+   kal_uint32   USCNT;
+   kal_uint32   CoreIDTCID;
+} SA_LoggingNode;
+
+/* Type Definition */
+typedef struct SA_LoggingThread_T
+{
+   kal_uint32   ThreadID;
+   kal_uint32   time;
+   kal_uint32   CoreIDTCID;
+} SA_LoggingThread;
+
+typedef struct SA_AddonInfo_T
+{  
+    SYSPROFILER_ADDON_TYPE addonType;
+    kal_uint32 log_sz;
+    kal_char ext_name[MAX_ADDON_NAME_LENGTH];
+    void (*SLA_AddonInfoInitFunc)(void);
+    kal_bool SA_SwapOutLogging;
+    void * SLA_AddonInfoLoggingFunc;
+} SA_AddonInfo;
+
+typedef struct SA_PMCAddonCounter_T
+{
+    kal_uint32  PMC0Counter;
+    kal_uint32  PMC1Counter;
+} SA_PMCAddonCounter;
+
+typedef struct _SA_ELM_LOG_T
+{
+    kal_uint32 start_frc;
+    kal_uint32 duration;
+    kal_uint32 r_trans;
+    kal_uint32 w_trans;
+    kal_uint32 r_latency;
+    kal_uint32 w_latency;
+    kal_uint32 r_avg_latency;
+    kal_uint32 w_avg_latency;
+} SA_ELM_LOG_T;
+
+typedef enum
+{
+    SLA_FILTER_IRQ_END          = (1u << 0),
+    SLA_FILTER_NO_CTXSWITCH     = (1u << 1),
+    SLA_FILTER_GIC_END          = (1u << 2),
+    SLA_FILTER_NEST_BEGIN       = (1u << 3), 
+    SLA_FILTER_NEST_END         = (1u << 4),
+    SLA_FITLER_SINGLE_LABEL     = (1u << 5),
+    SLA_FILTER_BEGIN_POINT      = (1u << 6),
+    SLA_FILTER_END_POINT        = (1u << 7),
+    SLA_FILTER_VPE1_CHILD_BEGIN = (1u << 8),
+    SLA_FILTER_VPE1_CHILD_END   = (1u << 9),
+    SLA_FILTER_CPU_FREQUENCY    = (1u << 10),
+    SLA_FILTER_ALL              = 0xFF
+} SA_FILTER_T;
+
+
+typedef enum
+{
+   SLA_STATE_STOP,
+   SLA_STATE_PAUSE,
+   SLA_STATE_RUNNING
+} SA_STATE;
+
+
+
+extern SA_STATE SA_LoggingState[];
+
+
+
+#define SLA_Current_IsRunning() SLA_IsRunning(kal_get_current_core_id())
+
+INLINE INLINE_ALWAYS static kal_bool SLA_IsRunning(kal_uint8 coreID)
+{
+    return (SA_LoggingState[coreID] == SLA_STATE_RUNNING);
+}
+
+INLINE INLINE_ALWAYS static kal_bool SLA_IsStop(kal_uint8 coreID)
+{
+    return (SA_LoggingState[coreID] == SLA_STATE_STOP);
+}
+
+
+
+/* Prototypes */
+void SLA_RAMLogging(kal_uint32 jobID, kal_uint8 coreID, kal_uint8 TCID, kal_bool EMMlogging) DECLARE_MIPS16;
+kal_bool SLA_Register(SYSPROFILER_ADDON_TYPE addonType, kal_uint32 addonSize, kal_char addonName[], void (*SLA_AddonInfoInitFunc)(void), void *SLA_AddonInfoLoggingFunc, kal_bool SA_SwapOutLogging);
+
+void SLA_RetreiveNode (SA_LoggingNode *NodePtr, kal_uint32 NodeAmount, kal_bool DummyFilterOn);
+kal_uint32 SLA_RetreiveNodeByVPETC(SA_LoggingNode *NodePtr, kal_uint32 NodeAmount, SA_FILTER_T DummyFilter, kal_uint32 VPEID, kal_uint32 TCID);
+SYSPROFILER_ERROR_CODE SLA_Enable_for_Core(kal_uint32* bufferStartAddress, kal_uint32 bufferSize, kal_uint8 coreID);
+SYSPROFILER_ERROR_CODE SLA_Disable_for_Core(kal_uint8 coreID);
+kal_uint32 SLA_HookLogging(kal_uint8 VPEID);
+void SLA_LoggingLISR(kal_uint32 ID, kal_uint8 VPEID) DECLARE_MIPS16;
+SYSPROFILER_ERROR_CODE SLA_RetreiveHeader(kal_uint8 **MADesc, kal_uint32 *szMADesc, kal_uint8 coreID) ;
+SYSPROFILER_ERROR_CODE SLA_RetreiveLoggingBuffer(kal_uint8 **startAddr, kal_uint32 *size, kal_uint8 **currPtr, kal_uint8 coreID) ;
+
+SYSPROFILER_ERROR_CODE SLA_Register_for_Core(SYSPROFILER_ADDON_TYPE addonType, kal_uint32 addonSize, kal_char addonName[], void (*SLA_AddonInfoInitFunc)(void), void *SLA_AddonInfoLoggingFunc, kal_bool SA_SwapOutLogging, kal_uint8 coreID) ;
+
+#if defined(__SWLA_SNAPSHOT_FEATURE__)
+SYSPROFILER_ERROR_CODE SLA_Buffer_Snapshot(SysProfiler_Snapshot_Core* info, kal_uint32* SLA_buff_addr, kal_uint32 SLA_buff_size, kal_uint32* dst_buffer_addr, kal_uint32 dst_buffer_size );
+#endif
+#if defined(__SYSTEM_PROFILER_ON__)
+void SLA_RetrieveELMInfo(void);
+#endif
+
+#endif /* _SST_SLA_ */
diff --git a/mcu/service/sst/include/SST_trc.h b/mcu/service/sst/include/SST_trc.h
new file mode 100644
index 0000000..87fe64b
--- /dev/null
+++ b/mcu/service/sst/include/SST_trc.h
@@ -0,0 +1,180 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   SST_trc.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This file contains definitions for trace on target.
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef _SST_TRC_H
+#define _SST_TRC_H
+#ifndef GEN_FOR_PC
+#include "kal_public_defs.h"
+#endif /* GEN_FOR_PC */
+#include "kal_trace.h"
+#if !defined(GEN_FOR_PC)
+#if defined(__TST_MODULE__) || defined(__CUSTOM_RELEASE__)
+#endif /* TST Trace Defintion */
+#endif
+#if !defined(GEN_FOR_PC) && !defined(__MAUI_BASIC__)
+#include"SST_trc_mod_sst_common_utmd.h"
+#endif
+#endif	/* _SST_TRC_H */
diff --git a/mcu/service/sst/include/SST_trc_mod_sst_common_utmd.json b/mcu/service/sst/include/SST_trc_mod_sst_common_utmd.json
new file mode 100644
index 0000000..937eb4f
--- /dev/null
+++ b/mcu/service/sst/include/SST_trc_mod_sst_common_utmd.json
@@ -0,0 +1,7997 @@
+{
+  "endGen": "-", 
+  "legacyParameters": {}, 
+  "module": "MOD_SST_COMMON", 
+  "startGen": "Legacy", 
+  "traceClassDefs": [
+    {
+      "TRACE_INFO": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_INFO"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_WARNING": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_WARNING"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_ERROR": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_ERROR"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_FUNC": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_FUNC"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_STATE": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_STATE"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_1": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_2": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_3": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_4": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_5": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_6": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_7": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_8": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_9": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_10": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }
+  ], 
+  "traceDefs": [
+    {
+      "SST_NEWLINE": {
+        "apiType": "index", 
+        "format": "", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_NO": {
+        "format": "[%d]:", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_4_HEX_VALUES": {
+        "apiType": "index", 
+        "format": "0x%X << 0x%X << 0x%X << 0x%X <<", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_3_HEX_VALUES": {
+        "apiType": "index", 
+        "format": "0x%X << 0x%X << 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_2_HEX_VALUES": {
+        "apiType": "index", 
+        "format": "0x%X << 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_1_HEX_VALUES": {
+        "apiType": "index", 
+        "format": "0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_NAME": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TITLE1": {
+        "apiType": "index", 
+        "format": "System Stability Tracker (SST) V0.00 ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TITLE2": {
+        "apiType": "index", 
+        "format": "=====================================", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ENDING1": {
+        "apiType": "index", 
+        "format": "End of SST!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ENDING2": {
+        "apiType": "index", 
+        "format": "============!!!!!!!!!!!!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DESCRIPTION": {
+        "apiType": "index", 
+        "format": "<<Descriptions>>", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_BOOTMODE_FACTORY_BOOT": {
+        "apiType": "index", 
+        "format": "Oh dear! system exception under META/FACTORY mode,", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_BOOTMODE_NORMAL": {
+        "apiType": "index", 
+        "format": "Oh dear! system exception under NORMAL mode,", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_BOOTMODE_USBMS_BOOT": {
+        "apiType": "index", 
+        "format": "Oh dear! system exception under USB BOOT mode,", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RUNNING_TASK": {
+        "apiType": "index", 
+        "format": "while processing TASK %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RUNNING_TASK_AT_VPE": {
+        "apiType": "index", 
+        "format": "Task %s currently running at vpe %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RUNNING_HISR": {
+        "apiType": "index", 
+        "format": "while processing HISR %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RUNNING_LISR": {
+        "apiType": "index", 
+        "format": "while processing LISR IRQ%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RUNNING_INITIAL": {
+        "apiType": "index", 
+        "format": "while in initial stage.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RUNNING_UNKNOWN": {
+        "apiType": "index", 
+        "format": "at the mean time, system is processing neither task, HISR nor LISR, unknown state!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXCEPTION_ANALYSIS": {
+        "apiType": "index", 
+        "format": "<<Detailed Information and Analysis>>", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXCEPTION_GUIDELINE": {
+        "apiType": "index", 
+        "format": "<<Guideline>>", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_MEMORY_CORRUPTION": {
+        "apiType": "index", 
+        "format": "Memory corruption!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_LOOKS_GOOD": {
+        "apiType": "index", 
+        "format": "Everything looks good!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_CPU_EXCEPTIONS": {
+        "apiType": "index", 
+        "format": "This is the CPU triggered exception, type %Mexception_type!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_UPDATE_OWNER": {
+        "apiType": "index", 
+        "format": "SST_UpdateOwner %c%c%c%c%c%c%c%c, caller=0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_USEFUL_INFO": {
+        "apiType": "index", 
+        "format": "<<Useful Information>>", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_VICTIM_TITLE1": {
+        "format": "Please note that other vpe(s) had simultaneous problems as well so please check following victims", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_VICTIM_TITLE2": {
+        "format": "to see if they affected to crashed vpe:", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_VICTIM_VPE_NUMBER": {
+        "format": "vpe%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_PHASE1_UNDEFINED": {
+        "apiType": "index", 
+        "format": "Error code 0x%X and 0x%X are not defined in SST engine, Quit the SST engine. Bye-bye!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_CONSTRUCTION": {
+        "apiType": "index", 
+        "format": "Error code 0x%X and 0x%X are under construction now! Quit the SST engine. Bye-bye!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_UNDEFINED_ERROR_CODE": {
+        "apiType": "index", 
+        "format": "Undefined fatal error code of class %c%c%c%c%c, error code 1=0x%X, error code 2=0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DUMP_STACK": {
+        "apiType": "index", 
+        "format": "Active call path from given stack pointer (0x%X) as above.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DUMP_PROBLEM_STACK": {
+        "apiType": "index", 
+        "format": "Call path of problematic task %c%c%c%c%c%c%c%c as below.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DUMP_STACK_FAILED": {
+        "apiType": "index", 
+        "format": "No reasonable call path retreivable from given stack pointer!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_IRREGULAR_STACK_POINTER": {
+        "apiType": "index", 
+        "format": "The stack pointer was out of bounded range!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_IRREGULAR_STACK_POINTER_PRINT": {
+        "apiType": "index", 
+        "format": "SST sp(0x%X) sp_start(0x%X) sp_end(0x%X)!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_SUSPEND_DISALLOWED_P1": {
+        "apiType": "index", 
+        "format": "Not allowed to suspend because of no active task", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_REFER_TO_ERROR_CODE": {
+        "apiType": "index", 
+        "format": "Error code returned by RTOS %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DUMP_RECEIVER_STACK": {
+        "apiType": "index", 
+        "format": "Call path of receiver task as below.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DUMP_SENDER_STACK": {
+        "apiType": "index", 
+        "format": "Call path of sender task %c%c%c%c%c%c%c%c as below.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_JTAG_WB": {
+        "apiType": "index", 
+        "format": "Please reproduce on JTAG, and set the write breakpoint at address 0x%X.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_JTAG_WBS": {
+        "apiType": "index", 
+        "format": "Please reproduce on JTAG, and set the write breakpoint at any of the above error addresses!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_OWNER": {
+        "apiType": "index", 
+        "format": "Please contact people in-charge of %c%c%c%c%c%c%c%c to resolve the problem!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_OWNER_MSGID": {
+        "apiType": "index", 
+        "format": "Please contact people in-charge of %Mmsg_type to resolve the problem!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_OWNER_MOD": {
+        "apiType": "index", 
+        "format": "Please contact people in-charge of %c%c%c%c%c%c%c%c module %Mmodule_type to resolve the problem!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_OWNER_FILE": {
+        "apiType": "index", 
+        "format": "Please contact people in-charge of file %s to resolve the problem!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_OWNER_LR": {
+        "apiType": "index", 
+        "format": "Please contact people in-charge of caller address 0x%08X to resolve the problem!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_OWNER_PC": {
+        "apiType": "index", 
+        "format": "Please contact people in-charge of code at 0x%08X to resolve the problem! (you can use CaDeFa to find owner)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_OWNER_TASK": {
+        "apiType": "index", 
+        "format": "Please contact people in-charge of task %c%c%c%c%c%c%c%c to resolve the problem!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_OWNER_HISR": {
+        "format": "Please contact people in-charge of hisr %s to resolve the problem!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_PHASE3_OWNER_IRQ": {
+        "apiType": "index", 
+        "format": "Please contact people in-charge of IRQ%d to resolve the problem!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_MAKE_SURE": {
+        "format": "Please contact owner of %c%c%c%c%c%c%c%c to make sure the procedure is correct!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_PHASE3_CALL_SST": {
+        "apiType": "index", 
+        "format": "Please dump memory and let system service member to give you a hand!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_DUMP_MEMORY": {
+        "apiType": "index", 
+        "format": "Serious error, please dump memory and let system service member to give you a hand!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_DUMP_MEMORY_PR": {
+        "apiType": "index", 
+        "format": "Serious error, please dump memory!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_REMIND_DUMP_MEMORY": {
+        "apiType": "index", 
+        "format": "Remember to dump memory!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_FOLLOW_RULE_CUSTOMIZATION": {
+        "apiType": "index", 
+        "format": "Please stricly follow the rule for customization!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_SENDER_IS_OFFENDER": {
+        "apiType": "index", 
+        "format": "Sender is offender, please saw above call path!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO": {
+        "apiType": "index", 
+        "format": "Content of task_info_g[%03d] as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_G1": {
+        "apiType": "index", 
+        "format": "       task_name_ptr = %c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_G2": {
+        "apiType": "index", 
+        "format": "       task_qname_ptr = %c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_G3": {
+        "apiType": "index", 
+        "format": "       task_priority = %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_G4": {
+        "apiType": "index", 
+        "format": "       task_stack_size = %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_G5": {
+        "apiType": "index", 
+        "format": "       task_entry_func = 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_G6": {
+        "apiType": "index", 
+        "format": "       task_ext_qsize = %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_G7": {
+        "apiType": "index", 
+        "format": "       task_int_qsize = %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_G8_1": {
+        "apiType": "index", 
+        "format": "       task_internal_ram_stack = KAL_TRUE", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_G8_2": {
+        "apiType": "index", 
+        "format": "       task_internal_ram_stack = KAL_FALSE", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_G9": {
+        "apiType": "index", 
+        "format": "       task_id = 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_G10": {
+        "apiType": "index", 
+        "format": "      task_ext_qid = 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_G11": {
+        "apiType": "index", 
+        "format": "      task_int_qid_ptr = 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_STACK_ERROR": {
+        "apiType": "index", 
+        "format": "       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Error (Address=0x%X)! Should not be 0!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_ENTRY_ERROR": {
+        "apiType": "index", 
+        "format": "       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Error (Address=0x%X)! Should not be NULL!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ILM_STRUCT": {
+        "format": "Content of ILM structure relative to %Mmodule_type as below", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_ILM_STRUCT_SOURCE": {
+        "apiType": "index", 
+        "format": "   src_mod_id: %Mmodule_type", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ILM_STRUCT_DESTINATION": {
+        "apiType": "index", 
+        "format": "   dest_mod_id: %Mmodule_type", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ILM_STRUCT_SAP": {
+        "apiType": "index", 
+        "format": "   sap_id: %Msap_type", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "SST_ILM_STRUCT_MESSID": {
+        "apiType": "index", 
+        "format": "   msg_id: %Mmsg_type", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ILM_STRUCT_LOCAL": {
+        "apiType": "index", 
+        "format": "   local_para_ptr: 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ILM_STRUCT_PEER": {
+        "apiType": "index", 
+        "format": "   peer_buff_ptr: 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_INIT": {
+        "format": "", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_PHASE1_201_01": {
+        "apiType": "index", 
+        "format": "In kal_create_task( ), dynamic memory allocation failed for task stack.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_201_02": {
+        "apiType": "index", 
+        "format": "In kal_create_task( ), dynamic memory allocation failed for kal_task_type.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_201_04": {
+        "apiType": "index", 
+        "format": "In kal_create_task( ), dynamic debug memory allocation failed for kal_task_stat_type.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_201_07": {
+        "apiType": "index", 
+        "format": "In kal_create_task( ), dynamic internal memory allocation failed for task stack.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_203_01": {
+        "apiType": "index", 
+        "format": "Zero stack size is provided in task creation.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_203_02": {
+        "apiType": "index", 
+        "format": "NULL entry function is provided in task creation.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_203_22_": {
+        "apiType": "index", 
+        "format": "In kal_create_task(), failure due to insufficient stack size (less than 240Bytes).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_203_25_": {
+        "apiType": "index", 
+        "format": "In kal_create_task(), failure due to duplicated creation.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_207_TASKID_P1": {
+        "apiType": "index", 
+        "format": "In kal_deque_msg (), stack overflow is detected at TCC_Suspend_Task(),", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_207_TASKID_P2": {
+        "apiType": "index", 
+        "format": "where stack guard pattern 'STACKEND' had been corrupted, it becomes 0x%X 0x%X.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_209_TASKID_P1": {
+        "apiType": "index", 
+        "format": "stack overflow is detected by MPU, please check ex_cp15_log", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_20A_TASKID_P1": {
+        "apiType": "index", 
+        "format": "stack overflow is detected by WATCHPOINT:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_20A_TASKID_P2": {
+        "apiType": "index", 
+        "format": "Stack overflow happened when PC was at 0x%08X and it tried to store to watch area 0x%08X-0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_20A_TASKID_P3": {
+        "apiType": "index", 
+        "format": "Stack overflow happened when EXL or ERL bit was set or during processor was in DEBUG mode", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_20A_TASKID_P4": {
+        "apiType": "index", 
+        "format": "This means EPC register does not point to offending address but to the address where EXL/ERL bit was cleared", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_20A_TASKID_P5": {
+        "apiType": "index", 
+        "format": "Stack overflow happened when a store to watch area 0x%08X-0x%08X some point before PC reached 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_20B_TASKID_P0": {
+        "apiType": "index", 
+        "format": "task/hisr operation error:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_20B_TASKID_P1": {
+        "apiType": "index", 
+        "format": "affinity should be resumed before set it again:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_20B_TASKID_P2": {
+        "apiType": "index", 
+        "format": "resume could not be called if its never set:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_20B_TASKID_P3": {
+        "apiType": "index", 
+        "format": "its not allow to set/resume affinity without configuration.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_20B_TASKID_P4": {
+        "apiType": "index", 
+        "format": "affinity need to be resumed within %d minutes after setting.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_211_01": {
+        "apiType": "index", 
+        "format": "In kal_create_hisr( ), dynamic memory allocation failed for HISR's stack.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_211_02": {
+        "apiType": "index", 
+        "format": "In kal_create_hisr( ), dynamic memory allocation failed for kal_hisr_type.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_211_04": {
+        "apiType": "index", 
+        "format": "In kal_create_hisr( ), dynamic debug memory allocation failed for kal_hisr_stat_type.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_211_07": {
+        "apiType": "index", 
+        "format": "In kal_create_hisr( ), dynamic internal memory allocation failed for HISR's stack!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_213_01": {
+        "apiType": "index", 
+        "format": "In kal_create_hisr( ), zero stack size is provided!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_213_02": {
+        "apiType": "index", 
+        "format": "In kal_create_hisr( ), HISR entry function is NULL!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_213_03": {
+        "apiType": "index", 
+        "format": "In kal_create_hisr( ), illegal priority value is provided, only 0, 1 and 2 are valid!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_213_04": {
+        "apiType": "index", 
+        "format": "In kal_create_hisr( ), priority 0 is assigned to an HISR other than L1_HISR!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_213_05": {
+        "apiType": "index", 
+        "format": "In kal_create_hisr( ), number of HISR exceeding maximal boundary %d!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_216_9__P1": {
+        "apiType": "index", 
+        "format": "In kal_activate_hisr(), HISR control block corrupted or incorrect", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_21B": {
+        "apiType": "index", 
+        "format": "In kal_init_hisr(), the parameter HISR index is not found in hisr_info[]!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_203_01": {
+        "apiType": "index", 
+        "format": "Notice that, stack size is referenced from array task_info_g, its content as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_203_02": {
+        "apiType": "index", 
+        "format": "Notice that, task's entry function is referenced from array task_info_g, its content as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_207_TASKID_SUB1_P1": {
+        "apiType": "index", 
+        "format": "No reasonable call path within 128words started from stack guard pattern", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_207_TASKID_SUB1_P2": {
+        "apiType": "index", 
+        "format": "pattern, perhaps unintentional corruption from somewhere.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_207_TASKID_SUB2_P1": {
+        "apiType": "index", 
+        "format": "Task %c%c%c%c%c%c%c%c sufferes from stack overflow, and its stack size is %dBytes.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_207_IRQID_SUB2_P1": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c sufferes from stack overflow, system stack size is %dBytes.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_207_TASKID_SUB2_P2": {
+        "apiType": "index", 
+        "format": "Possible call path traced back from stack guard pattern as above (max %d words).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_G_CORRUPTED_P1": {
+        "format": "Serious error, memory corruption at address 0x%X, and please refer", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_PHASE2_TASK_INFO_G_CORRUPTED_P2": {
+        "format": "to task_info_g[ ] below for more detailed.", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_PHASE2_216_9_1_P1": {
+        "apiType": "index", 
+        "format": "My dear, pointer used in activating HISR is corrupted, where tc_id is no longer 0x48495352!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_216_9_1_P2": {
+        "apiType": "index", 
+        "format": "Content of HISR as below;", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_216_9_2": {
+        "apiType": "index", 
+        "format": "HISR ID 0x48495352 is found, may fail at somewhere!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_21B": {
+        "apiType": "index", 
+        "format": "kal_init_hisr() with invaild HISR index is called by caller address 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_203_22__P1": {
+        "apiType": "index", 
+        "format": "Please contact people in charge of task %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_203_22__P2": {
+        "apiType": "index", 
+        "format": "to provide stack size larger than 240B.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_203_25__P1": {
+        "apiType": "index", 
+        "format": "Please contact people in charge of task %c%c%c%c%c for bug fixing. And, control", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_203_25__P2": {
+        "apiType": "index", 
+        "format": "block of relative task control block as below,", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_207_TASKID": {
+        "apiType": "index", 
+        "format": "In case of reproducing, please set the write breakpoint at address 0x%X.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_21B_P1": {
+        "apiType": "index", 
+        "format": "Please contact the owner in-charge of caller address 0x%08X to check", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_21B_P2": {
+        "apiType": "index", 
+        "format": "whether this HISR should be initialized in this compile option!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_CREATED": {
+        "apiType": "index", 
+        "format": "created : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_ID": {
+        "apiType": "index", 
+        "format": "tc_id : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_NAME": {
+        "apiType": "index", 
+        "format": "name : %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_PRIORITY": {
+        "apiType": "index", 
+        "format": "priority : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_SCHEDULED": {
+        "apiType": "index", 
+        "format": "scheduled : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_TIMESLICE": {
+        "apiType": "index", 
+        "format": "cur_time_slice : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_STACK_START": {
+        "apiType": "index", 
+        "format": "stack_start : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_STACK_END": {
+        "apiType": "index", 
+        "format": "stack_end : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_SP": {
+        "apiType": "index", 
+        "format": "stack_pointer : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_STACK_SIZE": {
+        "apiType": "index", 
+        "format": "stack_size : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_STACK_MIN": {
+        "apiType": "index", 
+        "format": "stack_minimum : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_CURR_PROTECT": {
+        "apiType": "index", 
+        "format": "current_protect : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_ACTIVE_NEXT": {
+        "apiType": "index", 
+        "format": "active_next : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_ACTIVATION": {
+        "apiType": "index", 
+        "format": "activation_count : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_ENTRY": {
+        "apiType": "index", 
+        "format": "entry : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TC_HCB_AFFINITY": {
+        "apiType": "index", 
+        "format": "affinity mask : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "SST_TASK_READY": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c is in ready state, it is ready to execute", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TASK_READY_OSC": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c is in ready state, it is ready to execute or running!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TASK_PURE_SUSPEND": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c is in pure suspend state!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TASK_SLEEP_SUSPEND": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c is in sleep suspend state!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TASK_QUEUE_SUSPEND": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c is waiting for queue message!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TASK_SEMAPHORE_SUSPEND": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c is waiting for semaphore or mutex!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TASK_ENH_MUTEX_SUSPEND": {
+        "format": "%c%c%c%c%c%c%c%c is waiting for enh_mutex!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_TASK_EVENT_SUSPEND": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c is waiting for event!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TASK_PARTITION_SUSPEND": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c is in waiting for available partitoned pool!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TASK_SCHEDULED": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c is running at vpe %d at the moment", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TASK_FINISH": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c is in finished state!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TASK_TERMINATED": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c is in terminated state!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TASK_UNKOWN": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c is in unknown state (%d)!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TASK_AFFINITY_SMP": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c is affined to SMP, currently runnign at vpe %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TASK_AFFINITY": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c affinity is %d (vpemask), currently runnign at vpe %d (vpemask %d)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ITC_COMMON_ILM1": {
+        "apiType": "index", 
+        "format": "Content of ILM* being processed as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ITC_COMMON_ILM2": {
+        "apiType": "index", 
+        "format": "Content of ILM retrieved from module_ilm_g[%Mmodule_type] as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_301_01": {
+        "apiType": "index", 
+        "format": "In kal_create_msg_q( ), dynamic memory allocation failed for kal_queue_type..", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_301_03": {
+        "apiType": "index", 
+        "format": "In kal_create_msg_q( ), dynamic memory allocation failed for queue buffer.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_301_04": {
+        "apiType": "index", 
+        "format": "In kal_create_msg_q( ), dynamic debug memory allocation failed for kal_queue_stat_type.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_303_9999_P1": {
+        "apiType": "index", 
+        "format": "NULL internal queue pointer is provided in msg_send_int_queue", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_303_6666_P1": {
+        "apiType": "index", 
+        "format": "NULL external queue pointer is provided in stack_send_2_ext_q", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_305_01": {
+        "apiType": "index", 
+        "format": "While calling kal_enque_msg( ), NULL external queue is provided.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_305_02": {
+        "apiType": "index", 
+        "format": "While calling kal_enque_msg( ), source buffer pointer is NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_305_19__P1": {
+        "format": "In kal_enque_msg(), control block of destination queue was damaged, ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_PHASE1_305_19__P2": {
+        "apiType": "index", 
+        "format": "which is no longer 0x51554555", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_305_24_": {
+        "apiType": "index", 
+        "format": "In kal_enque_msg(), suspension style is expected, but there is no running task currently.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_305_8888": {
+        "apiType": "index", 
+        "format": "External queue full is encountered while message delivery.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_305_FF": {
+        "apiType": "index", 
+        "format": "In kal_enque_msg(), operation failed!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_306_7777": {
+        "apiType": "index", 
+        "format": "Internal queue full is encountered while message delivery.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_306_9999": {
+        "apiType": "index", 
+        "format": "ILM is sent to internal queue when the current task is not the receiver.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_306_9999_2": {
+        "apiType": "index", 
+        "format": "Module %d does not belong to current task %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_306_ilmptr_1": {
+        "apiType": "index", 
+        "format": "Cannot send to internal queue with msg_send_to_head()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_306_ilmptr_2": {
+        "apiType": "index", 
+        "format": "Cannot send to external queue with msg_send_to_int_head()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_307_0": {
+        "apiType": "index", 
+        "format": "when send ilm message, external queue pointer of the destination task should not be NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_307_1": {
+        "apiType": "index", 
+        "format": "when send ilm message, destination buffer pointer should not be NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_307_19_": {
+        "apiType": "index", 
+        "format": "In kal_enque_msg(), control block of destination queue was damaged,which is no longer 0x51554555.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_307_24_": {
+        "apiType": "index", 
+        "format": "In kal_enque_msg(), suspension style is expected, but there is no running task currently.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_30A_1": {
+        "apiType": "index", 
+        "format": "In msg_receive_extq() or msg_receive_extq_for_stack(), the current task index is INDX_NIL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_30A_2": {
+        "apiType": "index", 
+        "format": "In msg_receive_extq() or msg_receive_extq_for_stack(), external queue ID fo current task should not be NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_30A_3": {
+        "apiType": "index", 
+        "format": "In msg_receive_intq(), the current task index is INDX_NIL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_30A_4": {
+        "apiType": "index", 
+        "format": "In msg_receive_intq(), internal queue ID fo current task should not be NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_30A_6": {
+        "apiType": "index", 
+        "format": "In msg_get_task_extq_messages() or msg_get_task_extq_capacity(), external queue ID fo current task should not be NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_30A_7": {
+        "apiType": "index", 
+        "format": "In kal_deque_msg() or kal_deque_msg_for_stack(), external queue ID fo current task should not be NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_30A_8": {
+        "apiType": "index", 
+        "format": "In kal_deque_msg() or kal_deque_msg_for_stack(), destination buffer pointer should not be NULL", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_401_1": {
+        "apiType": "index", 
+        "format": "In kal_create_mutex ( ), system memory allocation failed for data type kal_mutex_type.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_401_4": {
+        "apiType": "index", 
+        "format": "In kal_create_mutex ( ), dynamic debug memory allocation failed for kal_internal_mutex_statistics.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_403_FF": {
+        "apiType": "index", 
+        "format": "In kal_create_mutex ( ), NU_Create_Semaphore does not return NU_SUCCESS.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_404_0": {
+        "apiType": "index", 
+        "format": "In kal_take_mutex ( ), NULL pointer is provided for obtaining mutex", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_404_1": {
+        "apiType": "index", 
+        "format": "In kal_take_mutex ( ), current task (mutex owner) takes mutex twice", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_404_21_": {
+        "apiType": "index", 
+        "format": "In kal_take_mutex ( ),control block of semaphore may be corrupted or it is an illegal pointer.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_404_24_": {
+        "apiType": "index", 
+        "format": "In kal_take_mutex(), suspension style is expected, but there is no running task currently.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_405_0": {
+        "apiType": "index", 
+        "format": "In kal_give_mutex ( ), NULL pointer is provided for giving mutex.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_405_MUID": {
+        "apiType": "index", 
+        "format": "A MUTEX must be obtained and given by the same task.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_405_FF": {
+        "apiType": "index", 
+        "format": "In kal_give_mutex ( ),control block of mutex may be corrupted or it is an illegal pointer.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_411_1": {
+        "apiType": "index", 
+        "format": "In kal_create_sem ( ), dynamic memory allocation failed for data type kal_sem_type.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_411_4": {
+        "apiType": "index", 
+        "format": "In kal_create_sem ( ), dynamic debug memory allocation failed for kal_internal_sem_statistics.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_413_FF": {
+        "apiType": "index", 
+        "format": "In kal_create_sem ( ), NU_Create_Semaphore not return NU_SUCCESS.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_414_0": {
+        "apiType": "index", 
+        "format": "In kal_take_sem ( ),NULL pointer is provid.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_414_21_": {
+        "apiType": "index", 
+        "format": "In kal_take_sem ( ),control block of semaphore may be corrupted or it is an illegal pointer.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_414_24_": {
+        "apiType": "index", 
+        "format": "In kal_take_sem(), suspension style is expected, but there is no running task currently.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_415_0": {
+        "apiType": "index", 
+        "format": "In kal_give_sem ( ), NULL pointer is provided for giving mutex.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_415_FF": {
+        "apiType": "index", 
+        "format": "In kal_give_sem ( ),control block of semaphore may be corrupted or it is an illegal pointer.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_421_1": {
+        "apiType": "index", 
+        "format": "In kal_create_event_group ( ), dynamic memory allocation failed for data type kal_eventgrp_type.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_423_FF": {
+        "apiType": "index", 
+        "format": "In kal_create_event_group ( ), NU_Create_Event_Group not return NU_SUCCESS.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_424_21_": {
+        "apiType": "index", 
+        "format": "In kal_set_eg_events ( ),control block of event group may be corrupted or it is an illegal pointer.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_424_13_": {
+        "apiType": "index", 
+        "format": "In kal_set_eg_events (), event group operation is undefined, it is neither NU_AND nor NU_OR.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_425_13_": {
+        "apiType": "index", 
+        "format": "In kal_retrieve_eg_events ( ), operation is not supported, they are nether NU_AND, NU_AND_CONSUME, NU_OR nor NU_OR_CONSUME.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_425_24_": {
+        "apiType": "index", 
+        "format": "In kal_retrieve_eg_events (), suspension style is expected, but there is no running task currently.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_431": {
+        "apiType": "index", 
+        "format": "In allocate_ilm(), module ILM %Mmodule_type has not yet been delivered or duplicated!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_432": {
+        "apiType": "index", 
+        "format": "In %s(), %c%c%c%c%c%c%c%c is trying to hold an ILM which has been either not allocated or already freed", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_433": {
+        "apiType": "index", 
+        "format": "Double free detected when releasing %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_434": {
+        "apiType": "index", 
+        "format": "Inline ILM API used for non-inline ILM. Sap ID: %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "SST_PHASE1_43A_1": {
+        "apiType": "index", 
+        "format": "In construct_peer_buff(), (pdu_len + header_len + tail_len) should larger than 0.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_43A_2": {
+        "apiType": "index", 
+        "format": "In construct_local_para(), local_para_size should larger than sizeof(local_para_struct).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_43B_1": {
+        "apiType": "index", 
+        "format": "When sehdning CC ILM, please make suse the ref_counf of peer_buff is 1 to avoid race condition.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_43B_2": {
+        "apiType": "index", 
+        "format": "When sehdning CC ILM, please make suse the ref_counf of local_para is 1 to avoid race condition.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_441": {
+        "apiType": "index", 
+        "format": "In stack_check_msgid_range(), message ID overflow is detected at %Mmsg_type!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_451_1": {
+        "apiType": "index", 
+        "format": "In kal_create_enh_mutex ( ), system memory allocation failed for data type kal_int_enhmutex.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_454_1": {
+        "apiType": "index", 
+        "format": "In kal_take_enh_mutex (), NULL pointer is provided for obtaining mutex.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_454_2": {
+        "apiType": "index", 
+        "format": "In kal_take_enh_mutex (), control block of enhanced mutex may be corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_454_3": {
+        "apiType": "index", 
+        "format": "In kal_take_enh_mutex (), caller context in HISR.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_454_4": {
+        "apiType": "index", 
+        "format": "In kal_take_enh_mutex (), current task (enhanced mutex owner) takes enhanced mutex twice.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_454_24_": {
+        "apiType": "index", 
+        "format": "In kal_take_enh_mutex (), suspension style is expected, but there is no running task currently.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_455_1": {
+        "apiType": "index", 
+        "format": "In kal_give_enh_mutex (), NULL pointer is provided for giving mutex.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_455_2": {
+        "apiType": "index", 
+        "format": "In kal_give_enh_mutex (), control block of enhanced mutex may be corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_455_MUID": {
+        "apiType": "index", 
+        "format": "In kal_give_enh_mutex (), enhanced mutex must be obtained and given by the same task.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_455_FF": {
+        "apiType": "index", 
+        "format": "In kal_give_enh_mutex (), unexpected error happened in OS, please check the error code 2.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_461_1": {
+        "apiType": "index", 
+        "format": "In kal_create_spinlock(), system memory allocation failed for data type kal_spinlock_type.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_462_FF": {
+        "apiType": "index", 
+        "format": "In kal_create_spinlock(), NU_Spinlock_Create not return NU_SUCCESS.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_463_1": {
+        "apiType": "index", 
+        "format": "In kal_take_spinlock(), NULL pointer is provided for obtaining spinlock.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_463_2": {
+        "apiType": "index", 
+        "format": "In kal_take_spinlock(), NU_Spinlock_Try return error due to corruption in spinlock.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_464_1": {
+        "apiType": "index", 
+        "format": "Current owner of spinlock(%s), tried to acquire same spinlock again", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_464_2": {
+        "apiType": "index", 
+        "format": "First take was from 0x%08X. See call stack above for second take", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_465_1": {
+        "apiType": "index", 
+        "format": "In kal_give_spinlock(), NULL pointer is provided for obtaining spinlock.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_465_2": {
+        "apiType": "index", 
+        "format": "In kal_give_spinlock(), NU_Spinlock_Release return error due to corruption in spinlock.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_466_1": {
+        "apiType": "index", 
+        "format": "Spinlock %s was being released by owner who did not own it.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_466_2": {
+        "apiType": "index", 
+        "format": "Current context is 0x%08X:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_466_3": {
+        "apiType": "index", 
+        "format": "Spinlock was taken from 0x%08X context:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_466_4": {
+        "apiType": "index", 
+        "format": "Spinlock was not taken at the moment", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_467_1": {
+        "apiType": "index", 
+        "format": "Code at 0x%08X tried to %s spinlock from HRT context which is not allowed", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_469_1": {
+        "apiType": "index", 
+        "format": "%s have tried to obtain Spinlock(0x%X) %s %d times in a row without succeeding", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_471_1": {
+        "apiType": "index", 
+        "format": "In kal_create_internal_protect ( ), system memory allocation failed for data type kal_protect_type.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_472_FF": {
+        "apiType": "index", 
+        "format": "In kal_create_internal_protect ( ), NU_Spinlock_Create not return NU_SUCCESS.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_473_1": {
+        "apiType": "index", 
+        "format": "In kal_take_internal_protect(), NULL pointer is provided for obtaining internal protect.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_473_2": {
+        "apiType": "index", 
+        "format": "In kal_take_internal(), NU_Spinlock_Try return error due to corruption in internal protect.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_474_1": {
+        "apiType": "index", 
+        "format": "Owner of internal protect named %s, tried to acquire same internal protect again", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_474_2": {
+        "apiType": "index", 
+        "format": "First take was from 0x%08X and second take from 0x%08X.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_475_1": {
+        "apiType": "index", 
+        "format": "In kal_give_internal_protect(), NULL pointer is provided for obtaining internal protect.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_475_2": {
+        "apiType": "index", 
+        "format": "In kal_give_internal_protect(), NU_Spinlock_Release return error due to corruption in internal protect.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_476_1": {
+        "apiType": "index", 
+        "format": "Code at 0x%08X tried to release internal protect %s which was not owned by it.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_481_1": {
+        "apiType": "index", 
+        "format": "Illegal wait_mode (%x) given to %s. Only KAL_NO_WAIT(0) and KAL_INFINITE_WAIT(1) are allowed", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_482_1": {
+        "apiType": "index", 
+        "format": "HWITC lock id %Mkal_itc_lock_id cannot be used with %s API.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_482_3": {
+        "apiType": "index", 
+        "format": "HWITC lock id %d cannot be used with %s API.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_482_2": {
+        "apiType": "index", 
+        "format": "HWITC lock id %Mkal_itc_lock_id was being released by owner who did not own it", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_483_1": {
+        "apiType": "index", 
+        "format": "Current owner of HWITC lock id %Mkal_itc_lock_id, tried to acquire same HWITC lock again", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_486_1": {
+        "apiType": "index", 
+        "format": "%s API was called interrupted enabled. Giant lock id was %Mkal_itc_lock_id", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_487_1": {
+        "apiType": "index", 
+        "format": "Giant lock id %Mkal_itc_lock_id was being released from vpe%d even it was taken from vpe%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_API_ONLYTC2ORTC3": {
+        "apiType": "index", 
+        "format": "%s was called from wrong tc%d. Its only allowed to be called from tc2 or tc3", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_API_ONLYTC1": {
+        "apiType": "index", 
+        "format": "%s was called from wrong tc%d. Its only allowed to be called from tc1", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_493_1": {
+        "apiType": "index", 
+        "format": "Illegal wq_id (%x) given to %s. Only KAL_Q1(1), KAL_Q1(2) and KAL_Q_MAX(3) are allowed", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_493_2": {
+        "apiType": "index", 
+        "format": "Illegal timeout (%x) given to kal_hrt_tc_checkpoint. Only KAL_NO_WAIT(0) and KAL_INFINITE_WAIT(1) are allowed", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_494_2": {
+        "apiType": "index", 
+        "format": "NULL func_ptr given to kal_hrt_tc_dispatch_work.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_496_1": {
+        "apiType": "index", 
+        "format": "Workqueue %Mkal_workqueueid at core%d full.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_498_1": {
+        "apiType": "index", 
+        "format": "kal_hrt_trigger_dummy_lisr was called from wrong TC: %d. Its only allowed to be called from TC1.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_49X_1": {
+        "apiType": "index", 
+        "format": "This function was called from 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_499_1": {
+        "apiType": "index", 
+        "format": "kal_hrt_trigger_dummy_lisr was called for wrong VPEs. Check vpe mask", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_49A_1": {
+        "apiType": "index", 
+        "format": "kal_hrt_revoke_dummy_lisr was called from wrong TC: %d. Its only allowed to be called from TC1", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_49B_1": {
+        "apiType": "index", 
+        "format": "kal_hrt_revoke_dummy_lisr was called for wrong VPEs. Check vpe mask", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_49C_1": {
+        "apiType": "index", 
+        "format": "Dummy lisr lock id %Mkal_itc_lock_id was being released from vpe%d even it was taken from vpe%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_9999_P1": {
+        "apiType": "index", 
+        "format": "My dear, %c%c%c%c%c%c%c%c is giving an illegal destination module ID for message delivery", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_9999_P2": {
+        "apiType": "index", 
+        "format": "destination module ID %d is out of range (max:%d).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_9999_P3": {
+        "apiType": "index", 
+        "format": "My dear, %c%c%c%c%c%c%c%c is sending message via module ID, who has no internal queue.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_9999_P4": {
+        "apiType": "index", 
+        "format": "Please refer to information above for debugging!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_9999_P5": {
+        "apiType": "index", 
+        "format": "My dear, %c%c%c%c%c%c%c%c is sending message via module ID, whose relative task is not existed", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_9999_P6": {
+        "apiType": "index", 
+        "format": "in current boot mode. Please refer to information above for debugging!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_QUEUE_ID": {
+        "apiType": "index", 
+        "format": "Illegal or may be corrupted pointer used to enqueue message!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_8888_P1": {
+        "apiType": "index", 
+        "format": "While sending message to %c%c%c%c%c%c%c%c, %c%c%c%c%c%c%c%c found that,", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_8888_P2": {
+        "apiType": "index", 
+        "format": "external queue of %c%c%c%c%c%c%c%c is full!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_8888_P3": {
+        "apiType": "index", 
+        "format": "Following is its complete content:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_8888_P4": {
+        "apiType": "index", 
+        "format": "Task %c%c%c%c%c%c%c%c is in busy waiting, until fails to process message in external queue;", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_8888_P5": {
+        "apiType": "index", 
+        "format": "Following is its complete content:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_8888_P6": {
+        "apiType": "index", 
+        "format": "My dear, Task %c%c%c%c%c%c%c%c may be blocked by thread listed below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_8888_P7": {
+        "apiType": "index", 
+        "format": "Task %c%c%c%c%c%c%c%c Task may be blocked by this enhanced mutex", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_8888_P8": {
+        "apiType": "index", 
+        "format": "The call stack of enhanced mutex owner: %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_8888_P9": {
+        "apiType": "index", 
+        "format": "Task %c%c%c%c%c%c%c%c Task may be blocked by this mutex", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_8888_P10": {
+        "apiType": "index", 
+        "format": "The call stack of mutex owner: %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_8888_P11": {
+        "apiType": "index", 
+        "format": "Task %c%c%c%c%c%c%c%c Task may be blocked by this semaphore", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_QUEUE_LARGE_COUNT": {
+        "apiType": "index", 
+        "format": "The Qneue size is larger than %d. We only parsing %d ILM in queue. Please reduce the queue size", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_QUEUE_MESS_COUNT": {
+        "apiType": "index", 
+        "format": "There are totally %d entries with same content,", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_303_7777_P1": {
+        "apiType": "index", 
+        "format": "While %c%c%c%c%c%c%c%c is running, %Mmodule_type sends msg to %Mmodule_type", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_305_QUEUE_TIME_STAMP_0": {
+        "apiType": "index", 
+        "format": "The exception frame No: %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_305_QUEUE_TIME_STAMP_1": {
+        "apiType": "index", 
+        "format": "The last 3 ILM taken frame No: %d, %d, %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_305_QUEUE_TIME_STAMP_2": {
+        "apiType": "index", 
+        "format": "The last queue empty frame No %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_305_QUEUE_TIME_STAMP_3": {
+        "apiType": "index", 
+        "format": "Receiver External Queue Size %d ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_305_QUEUE_TIME_STAMP_4": {
+        "apiType": "index", 
+        "format": "The last frame No when Queue Contains %d, %d, %d ILMs  %d, %d, %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_305_QUEUE_CASE_I": {
+        "apiType": "index", 
+        "format": "fatal 0x305 case I: blocked by high priority thread, %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_305_QUEUE_CASE_II": {
+        "apiType": "index", 
+        "format": "fatal 0x305 case II: receiver is suspended", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_305_QUEUE_CASE_III": {
+        "apiType": "index", 
+        "format": "fatal 0x305 case III: sender sent too many ILMs in short time", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_305_QUEUE_CASE_III_Offender": {
+        "apiType": "index", 
+        "format": "Offender %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_305_QUEUE_CASE_IV": {
+        "apiType": "index", 
+        "format": "fatal 0x305 case IV: receiver traps in infinite loops", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_305_QUEUE_CASE_V": {
+        "apiType": "index", 
+        "format": "fatal 0x305 case V: starvation of receiver ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_305_QUEUE_CASE_UNDEF": {
+        "apiType": "index", 
+        "format": "fatal 0x305 case X: Complicated and can not be defined by Online SST", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_405_MUID": {
+        "apiType": "index", 
+        "format": "Note that, mutex is now owned by %c%c%c%c%c%c%c%c, and could not be given by task %c%c%c%c%c%c%c%c.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_455_MUID": {
+        "apiType": "index", 
+        "format": "Note that, enhanced mutex is now owned by %c%c%c%c%c%c%c%c, and could not be given by task %c%c%c%c%c%c%c%c.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB": {
+        "apiType": "index", 
+        "format": "Content of queue control block as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_CREATED": {
+        "apiType": "index", 
+        "format": "   qu_created : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_ID": {
+        "apiType": "index", 
+        "format": "   qu_id : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_NAME": {
+        "apiType": "index", 
+        "format": "   qu_name : %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_FIXED_SIZE": {
+        "apiType": "index", 
+        "format": "   qu_fixed_size : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_SUSP_F": {
+        "apiType": "index", 
+        "format": "   qu_fifo_suspend : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_SIZE": {
+        "apiType": "index", 
+        "format": "   qu_queue_size : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_MESS_COUNT": {
+        "apiType": "index", 
+        "format": "   qu_messages : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_MESS_SIZE": {
+        "apiType": "index", 
+        "format": "   qu_message_size : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_AVAIL": {
+        "apiType": "index", 
+        "format": "   qu_available : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_START_ADDR": {
+        "apiType": "index", 
+        "format": "   qu_start : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_END_ADDR": {
+        "apiType": "index", 
+        "format": "   qu_end : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_READ_PTR": {
+        "apiType": "index", 
+        "format": "   qu_read : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_WRITE_PTR": {
+        "apiType": "index", 
+        "format": "   qu_write : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_TASK_WAITING": {
+        "apiType": "index", 
+        "format": "   qu_tasks_waiting : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_URGENT_LIST": {
+        "apiType": "index", 
+        "format": "   qu_urgent_list : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_QU_QCB_SUSP_LIST": {
+        "apiType": "index", 
+        "format": "   qu_suspension_list : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_SM_SCB": {
+        "apiType": "index", 
+        "format": "Content of semaphore control block as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_SM_SCB_CREATED": {
+        "apiType": "index", 
+        "format": "   sm_created : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_SM_SCB_ID": {
+        "apiType": "index", 
+        "format": "   sm_id : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_SM_SCB_NAME": {
+        "apiType": "index", 
+        "format": "   sm_name : %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_SM_SCB_COUNT": {
+        "apiType": "index", 
+        "format": "   sm_semaphore_count : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_SM_SCB_FIFO_SUS": {
+        "apiType": "index", 
+        "format": "   sm_fifo_suspend : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_SM_SCB_TASKS_WAIT": {
+        "apiType": "index", 
+        "format": "   sm_tasks_waiting : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_SM_SCB_SUSP_LIST": {
+        "apiType": "index", 
+        "format": "   sm_suspension_list : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EV_GCB": {
+        "apiType": "index", 
+        "format": "Content of event group control block as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EV_GCB_CREATED": {
+        "apiType": "index", 
+        "format": "   ev_created : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EV_GCB_ID": {
+        "apiType": "index", 
+        "format": "   ev_id : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EV_GCB_NAME": {
+        "apiType": "index", 
+        "format": "   ev_name : %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EV_GCB_CUR_EVENTS": {
+        "apiType": "index", 
+        "format": "   ev_current_events : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EV_GCB_TASKS_WAIT": {
+        "apiType": "index", 
+        "format": "   ev_tasks_waiting : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EV_GCB_SUSP_LIST": {
+        "apiType": "index", 
+        "format": "   ev_suspension_list : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EMTX_EMCB": {
+        "apiType": "index", 
+        "format": "Content of enhanced mutex control block as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EMTX_EMCB_MAX_PRIO": {
+        "apiType": "index", 
+        "format": "   emtx_max_wprio : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EMTX_EMCB_SUSPEND_COUNT": {
+        "apiType": "index", 
+        "format": "   emtx_suspension_count : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EMTX_EMCB_OWNER_TASK_NAME": {
+        "apiType": "index", 
+        "format": "   owner task name : %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EMTX_EMCB_EMTX_NAME": {
+        "apiType": "index", 
+        "format": "   emtx_name : %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_SL_SCB_TITLE": {
+        "apiType": "index", 
+        "format": "Content of RTOS spinlock control block as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ISLID_TITLE": {
+        "apiType": "index", 
+        "format": "Content of KAL spinlock control block as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ISLID_NAME": {
+        "apiType": "index", 
+        "format": "   name : %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_SL_SCB_CREATED": {
+        "apiType": "index", 
+        "format": "   sl_created : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_SL_SCB_ID": {
+        "apiType": "index", 
+        "format": "   sl_id : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_SL_SCB_LOCKCOUNT": {
+        "apiType": "index", 
+        "format": "   sl_lock_count : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_SL_SCB_LOCK": {
+        "apiType": "index", 
+        "format": "   sl_lock : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ISLID_INTERRUPT_MASK": {
+        "apiType": "index", 
+        "format": "   interrupt_mask : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ISLID_OWNER_CONTEXT": {
+        "apiType": "index", 
+        "format": "   owner_context : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ISLID_START_TIME": {
+        "apiType": "index", 
+        "format": "   spinlock_start_time : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ISLID_TAKER": {
+        "apiType": "index", 
+        "format": "   spinlock_taker address: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ISLID_MAX_HOLD_TIME": {
+        "apiType": "index", 
+        "format": "   max_spinlock_hold_time : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ISLID_MAX_TAKER": {
+        "apiType": "index", 
+        "format": "   max_spinlock_taker : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ISLID_SPINLOCK": {
+        "apiType": "index", 
+        "format": "   spinlock : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ISLID_USERNUMBER": {
+        "apiType": "index", 
+        "format": "   userNumber : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_CONTEXT_TASK": {
+        "apiType": "index", 
+        "format": "Context 0x%08X is TASK %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_CONTEXT_HISR": {
+        "apiType": "index", 
+        "format": "Context 0x%08X is HISR %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_CONTEXT_LISR": {
+        "apiType": "index", 
+        "format": "Context 0x%08X is interrupt %d (nested count %d) at vpe%d, tc%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_HWITCID_TITLE": {
+        "apiType": "index", 
+        "format": "Content of lock control block as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_HWITCID_ADDRESS": {
+        "apiType": "index", 
+        "format": "   address : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_HWITCID_IRQ_MASK": {
+        "apiType": "index", 
+        "format": "   irq mask : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_HWITCID_OWNER_CONTEXT": {
+        "apiType": "index", 
+        "format": "   owner context : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_HWITCID_ITC_START_TIME": {
+        "apiType": "index", 
+        "format": "   lock take timestamp : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_HWITCID_TAKER": {
+        "apiType": "index", 
+        "format": "   taker : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_HWITCID_MAX_ITC_HOLD_TIME": {
+        "apiType": "index", 
+        "format": "   max hold time : %d us", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_HWITCID_MAX_ITC_TAKER": {
+        "apiType": "index", 
+        "format": "   max taker : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_LOCK_START_TIME": {
+        "format": "   lock_start_time : %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_LOCK_TAKER": {
+        "format": "   lock_taker address: 0x%08X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_LOCK_MAX_HOLD_TIME": {
+        "format": "   max_lock_hold_time : %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_LOCK_MAX_TAKER": {
+        "format": "   max_lock_taker : 0x%08X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_LOCK_LOCK": {
+        "apiType": "index", 
+        "format": "   lock : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TCWQ_TITLE": {
+        "format": "Content of TC Workqueue %Mkal_workqueueid at core %d:", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_TCWQ_NODE": {
+        "format": "   func_ptr:0x%08X, func_param:0x%08X, func_index:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_PHASE2_SYSTEM_MEMORY": {
+        "apiType": "index", 
+        "format": "Insufficient system memory, balanced free space is %dB!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_INTERNAL_SYSTEM_MEMORY": {
+        "apiType": "index", 
+        "format": "Insufficient internal system memory, balanced free space is %dB!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_DEBUG__MEMORY": {
+        "apiType": "index", 
+        "format": "Insufficient debug memory, balanced free space is %dB!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_INSUFFICEINT__MEMORY": {
+        "apiType": "index", 
+        "format": "Please enlarge the memory size by %dB!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_800_01": {
+        "apiType": "index", 
+        "format": "In kal_create_buff_pool( ) failed to create a partitioned memory pool with zero Bytes buffer entry.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_800_02": {
+        "apiType": "index", 
+        "format": "In kal_create_buff_pool( ) failed to create a partitioned memory pool with zero entry. ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_800_03": {
+        "apiType": "index", 
+        "format": "In kal_create_buff_pool( ) failed to add entry in pool_info_g[]. ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_801_01": {
+        "apiType": "index", 
+        "format": "In kal_create_buff_pool( ), dynamic memory allocation failed for data type kal_internal_poolid of a partitioned memory", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_801_02": {
+        "apiType": "index", 
+        "format": "In kal_create_buff_pool( ), dynamic memory allocation failed for data buffer of a partitioned memory", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_801_03": {
+        "apiType": "index", 
+        "format": "In kal_create_buff_pool( ), dynamic memory allocation failed for statistical pool of a partitioned memory.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_801_04": {
+        "apiType": "index", 
+        "format": "In kal_create_buff_pool( ), failed to allocate  history buffer from debug memory.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_801_08": {
+        "apiType": "index", 
+        "format": "In kal_create_buff_pool( ), temporary memory allocation failed while initializing buffer header and footer.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_820_01": {
+        "apiType": "index", 
+        "format": "In get_int_ctrl_buffer(), the buffer size to be allocated should not be zero.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_820_02": {
+        "apiType": "index", 
+        "format": "In kal_get_buffer(), the filename of buffer allocator should not be NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_821_SIZE": {
+        "apiType": "index", 
+        "format": "In get_int_ctrl_buffer(), the desired buffer size is too large.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_821_01": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c wanna get a large buffer with size =0x%X .", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_822_SIZE": {
+        "apiType": "index", 
+        "format": "In get_int_ctrl_buffer(), the pool ID of the desired buffer may be corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_823_SIZE": {
+        "apiType": "index", 
+        "format": "In kal_get_buffer(), buffer entries have been fully allocated, run-out of free space.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_830_01": {
+        "apiType": "index", 
+        "format": "In kal_release_buffer(), the filename of buffer allocator should not be NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_833_01": {
+        "apiType": "index", 
+        "format": "In kal_release_buffer(), Ctrl Buff Entry 0x%X is double released.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_840_PTR_P1": {
+        "apiType": "index", 
+        "format": "In kal_release_buffer(), it is detected that the buffer footer is corrupted, it is no longer ((buff_number << 16) | 0xF2F2).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_841_PTR": {
+        "apiType": "index", 
+        "format": "In kal_release_buffer(), it is detected that buffer header is corrupted, it is no longer 0xF1F1F1F1.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_842_PTR_P1": {
+        "apiType": "index", 
+        "format": "In kal_get_buffer(), it is detected that buffer footer is no longer ((buff_number << 16) | 0xF2F2). It was previously", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_842_PTR_P2": {
+        "apiType": "index", 
+        "format": "successfully released and is now regarded as free entry.  It may be corrupted during the free period.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_843_PTR_P1": {
+        "apiType": "index", 
+        "format": "In kal_get_buffer(), it is detected that buffer header is no longer 0xF1F1F1F1. It was previously ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_843_PTR_P2": {
+        "apiType": "index", 
+        "format": "successfully released and is now regarded as free entry.  It may be corrupted during the free period.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_844_PTR_P1": {
+        "apiType": "index", 
+        "format": "In kal_release_buffer(), it is detected that the extended buffer footer is corrupted ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_844_PTR_P2": {
+        "apiType": "index", 
+        "format": "(appended at end of buffer size being requested), it is no longer 0xF2F2F2F2.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_852_01": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c gets a buffer by a NULL pointer along the call path.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_853_01": {
+        "apiType": "index", 
+        "format": "%c%c%c%c%c%c%c%c releases a buffer by a NULL pointer along the call path.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_880_PTR_P1": {
+        "apiType": "index", 
+        "format": "In kal_release_buffer(), buffer pointer to be released belongs to neither of the partitioned memory pool,", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_880_PTR_P2": {
+        "apiType": "index", 
+        "format": "indexed by pool ID retrieved from KAL header or by address range.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_881_PTR_P1": {
+        "apiType": "index", 
+        "format": "In kal_get_buffer(), it is detected that buffer pool ID is incorrect in PM header. It was previously ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_881_PTR_P2": {
+        "apiType": "index", 
+        "format": "successfully released and is now regarded as free entry.  It may be corrupted during the free period.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_882_PTR_P0": {
+        "apiType": "index", 
+        "format": "control buffer possible leakage, file name ptr=0x%X,\\n", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_882_PTR_P1": {
+        "apiType": "index", 
+        "format": "                  owner_task = %c%c%c%c%c%c, module_id =%d, file_name =%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_882_PTR_P2": {
+        "apiType": "index", 
+        "format": "                , user_ptr =0x%X, line =%d, size=%d, allocate_time=%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_882_PTR_P3": {
+        "apiType": "index", 
+        "format": "possible leakage: ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_882_PTR_P4": {
+        "apiType": "index", 
+        "format": "whitelist in-used buffer: ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_890_01": {
+        "apiType": "index", 
+        "format": "In kal_create_buff_pool( ), NU_Create_Partition_Pool() does not return NU_SUCCESS.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_892_01": {
+        "apiType": "index", 
+        "format": "In kal_create_buff_pool()/kal_get_buffer, NU_Allocate_Partition() does not return NU_SUCCESS.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_893_PTR": {
+        "apiType": "index", 
+        "format": "a de-allocated, corrupted or illegal pointer in kal_release_buffer()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_BUFF_UNKNOWN": {
+        "apiType": "index", 
+        "format": "It may be a corrupted or illegal pointer!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_NOT_MONITOR": {
+        "apiType": "index", 
+        "format": "Control buffer is not monitored!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_NOT_ALIGNMENT": {
+        "apiType": "index", 
+        "format": "User is processing with  a non-alignment %dB buffer pointer, it is absolutely prohibited", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_INVALID_POINTER": {
+        "apiType": "index", 
+        "format": "User is providing an illegal pointer 0x%08X, which is absolutely prohibited!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_POOL_INFO_G_CORRUPTED": {
+        "apiType": "index", 
+        "format": "Data structure pool_info_g corrupted!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_BUFFER_CORRUPT_REASONS": {
+        "apiType": "index", 
+        "format": "Buffer may be corrupted by the owner of current, previous or next buffer entry!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_800_OVERFLOW": {
+        "apiType": "index", 
+        "format": "Partitioned memory pool runs out of free space!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_823_SIZE_NOT_MONITOR_P1": {
+        "apiType": "index", 
+        "format": "My dear, buffer monitoring is not turned on at size %d,", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_823_SIZE_NOT_MONITOR_P2": {
+        "apiType": "index", 
+        "format": "system has no idea about history on buffer transaction!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_823_SIZE_MONITOR_P1": {
+        "apiType": "index", 
+        "format": "There are totally %d entries at control buffer size %d (Bytes).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_823_SIZE_MONITOR_P2": {
+        "apiType": "index", 
+        "format": "Owners distribution as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_823_SIZE_MONITOR_P3": {
+        "apiType": "index", 
+        "format": "%s: Allocate %d entries at %s line %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_823_SIZE_MONITOR_P4": {
+        "apiType": "index", 
+        "format": "Caller Address: 0x%08X Allocate %d entries", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_840_PTR": {
+        "apiType": "index", 
+        "format": "Please refer to buffer header listed above, KAL footer 0xF2F2F2F2 is missing!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_841_PTR": {
+        "apiType": "index", 
+        "format": "Please refer to buffer header listed above, KAL header 0xF1F1F1F1 is missing!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_844_PTR": {
+        "apiType": "index", 
+        "format": "Please refer to buffer header listed above, KAL extended footer corrupted!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_880_PTR": {
+        "apiType": "index", 
+        "format": "Please refer to buffer header listed above, KAL header pool ID corrupted!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_881_PTR": {
+        "apiType": "index", 
+        "format": "Please refer to buffer header listed above, buffer pool ID value 0x%08X is incorrect, it should be 0x%08X!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_893_PTR_MONITOR_P1": {
+        "apiType": "index", 
+        "format": "Task %c%c%c%c%c%c%c%c is releasing a %dB buffer pointer 0x%X from file %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_893_PTR_MONITOR_P2": {
+        "apiType": "index", 
+        "format": "line %d, but it had been deallocated!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_893_PTR_MONITOR_P3": {
+        "apiType": "index", 
+        "format": "Please refer to history records for more detailed!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_893_PTR_UNMONITOR_P1": {
+        "apiType": "index", 
+        "format": "Task %c%c%c%c%c%c%c%c is releasing a %dB buffer pointer 0x%X,", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_893_PTR_UNMONITOR_P2": {
+        "apiType": "index", 
+        "format": "but it had been deallocated!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_823_SIZE_NOT_MONITOR_P1": {
+        "apiType": "index", 
+        "format": "Please turn on buffer monitoring and reproduce again!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_823_SIZE_NOT_MONITOR_P2": {
+        "apiType": "index", 
+        "format": "Input string *035670766*001*65535# via MMI; as long as", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_823_SIZE_NOT_MONITOR_P3": {
+        "apiType": "index", 
+        "format": "the value won't be saved to NVRAM, re-input is required", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_823_SIZE_NOT_MONITOR_P4": {
+        "apiType": "index", 
+        "format": "each time power-on!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PM_PCB": {
+        "apiType": "index", 
+        "format": "Full content of partitioned memory control block as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PM_PCB_CREATED": {
+        "apiType": "index", 
+        "format": "   pm_created : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PM_PCB_ID": {
+        "apiType": "index", 
+        "format": "   pm_id : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PM_PCB_NAME": {
+        "apiType": "index", 
+        "format": "   pm_name : %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PM_PCB_START_ADDR": {
+        "apiType": "index", 
+        "format": "   pm_start_address : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PM_PCB_POOL_SIZE": {
+        "apiType": "index", 
+        "format": "   pm_pool_size : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PM_PCB_PART_SIZE": {
+        "apiType": "index", 
+        "format": "   pm_partition_size : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PM_PCB_AVAIL": {
+        "apiType": "index", 
+        "format": "   pm_available : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PM_PCB_ALLOCATED": {
+        "apiType": "index", 
+        "format": "   pm_allocated : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PM_PCB_AVAIL_LIST": {
+        "apiType": "index", 
+        "format": "   pm_available_list : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PM_PCB_FIFO_SUSPEND": {
+        "apiType": "index", 
+        "format": "   pm_fifo_suspend : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PM_PCB_TASK_WAIT": {
+        "apiType": "index", 
+        "format": "   pm_tasks_waiting : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PM_PCB_SUSP_LIST": {
+        "apiType": "index", 
+        "format": "   pm_suspension_list : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_HISTORY": {
+        "apiType": "index", 
+        "format": "Complete history nodes of current buffer pointer [%d]:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_HISTORY_STATE": {
+        "apiType": "index", 
+        "format": "   buffer_state : %Mkal_buff_state", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_HISTORY_TASK": {
+        "apiType": "index", 
+        "format": "   owner_task : %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_HISTORY_FILE": {
+        "apiType": "index", 
+        "format": "   file_name : %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_HISTORY_LINE": {
+        "apiType": "index", 
+        "format": "   line : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_HISTORY_SIZE": {
+        "apiType": "index", 
+        "format": "   size : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_HISTORY_LR": {
+        "apiType": "index", 
+        "format": "Buffer Allocator Caller Address : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_CURRENT_BUFFER_HEADER": {
+        "apiType": "index", 
+        "format": "Header and footer of current buffer pointer as below :", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PREV_BUFFER_HEADER": {
+        "apiType": "index", 
+        "format": "Header and footer of previous buffer pointer as below :", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_NEXT_BUFFER_HEADER": {
+        "apiType": "index", 
+        "format": "Header and footer of next buffer pointer as below :", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_BUFFER_HEADER_RTOS1": {
+        "apiType": "index", 
+        "format": "    RTOS header 1 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_BUFFER_HEADER_RTOS2": {
+        "apiType": "index", 
+        "format": "    RTOS header 2 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_BUFFER_HEADER_KAL1": {
+        "apiType": "index", 
+        "format": "    KAL header 1 (0xF1F1F1F1 originaly) = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_BUFFER_HEADER_KAL2": {
+        "apiType": "index", 
+        "format": "    KAL header 2 (task ID) = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_BUFFER_FOOTER_KAL_EXT": {
+        "apiType": "index", 
+        "format": "    KAL extended footer (0xF2F2F2F2 if monitoring) = 0x%02X%02X%02X%02X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_BUFFER_FOOTER_KAL_EXT_UNKNOWN": {
+        "apiType": "index", 
+        "format": "    KAL extended footer (0xF2F2F2F2 if monitoring) : unknown", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_BUFFER_FOOTER_KAL2": {
+        "apiType": "index", 
+        "format": "    KAL footer (0xF2F2 originally) = 0x%04X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_POOL_INFO_G": {
+        "apiType": "index", 
+        "format": "Full content of pool_info_g as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_POOL_INFO_G_NO": {
+        "apiType": "index", 
+        "format": "   pool_info_g[%d]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_POOL_INFO_G_ID": {
+        "apiType": "index", 
+        "format": "      pool_id : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_POOL_INFO_G_START": {
+        "apiType": "index", 
+        "format": "      start_address : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_POOL_INFO_G_END": {
+        "apiType": "index", 
+        "format": "      end_address : 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_601_01": {
+        "apiType": "index", 
+        "format": "In kal_create_timer ( ), dynamic memory allocation failed for data type kal_timer_type.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_601_02": {
+        "apiType": "index", 
+        "format": "In stack_create_timer ( ), dynamic memory allocation failed for data type stack_timer_struct.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_601_04": {
+        "apiType": "index", 
+        "format": "In kal_create_timer ( ), dynamic debug memory allocation failed for kal_timer_stat_type.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_602_FF": {
+        "apiType": "index", 
+        "format": "Create timer failed!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_604_01": {
+        "apiType": "index", 
+        "format": "Hi dear, system fails to set a NULL timer pointer.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_604_02": {
+        "apiType": "index", 
+        "format": "Hi dear, system fails to recover the clock at Timer HISR.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_604_FF": {
+        "apiType": "index", 
+        "format": "In kal_set_timer (), timer reset is not success; please refer to timer control block if corruption.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_605_01": {
+        "apiType": "index", 
+        "format": "Hi dear, system fails to cancel a NULL timer pointer.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_605_FF": {
+        "apiType": "index", 
+        "format": "In kal_cancel_timer (), timer control block may be corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_609_26_": {
+        "apiType": "index", 
+        "format": "In kal_set_timer (), timer disable failed, please refer to timer control block if corruption.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_60A_FF": {
+        "apiType": "index", 
+        "format": "In kal_timer_routine_wraper (), timer hisr callback function 0x%08X executes too long.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_60B_FF": {
+        "apiType": "index", 
+        "format": "System fails for timer hisr executes too long, and longest callback function ptr is 0x%08X.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_892_PTR_P0": {
+        "apiType": "index", 
+        "format": "Event Scheduler or KAL Timer create failure, maybe created too much, top 3 redundant timer:\\n", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_892_PTR_P1": {
+        "apiType": "index", 
+        "format": "Event Scheduler: type 1, KAL Timer: type 2\\n", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_892_PTR_P2": {
+        "apiType": "index", 
+        "format": "name = %c%c%c%c%c%c%c%c, count =%d, type:%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_TIMER_FF_1": {
+        "apiType": "index", 
+        "format": "Timer to be created is existed, could not duplicate it!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_TIMER_FF_2": {
+        "apiType": "index", 
+        "format": "Timer control block is corrupted!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_60A_CALLBACK_EXECUTE_TIME_P11": {
+        "apiType": "index", 
+        "format": "Callback execution time: %d, preempted time: %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_60A_CALLBACK_EXECUTE_TIME_P12": {
+        "apiType": "index", 
+        "format": "Callback execution time: %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_60B_CALLBACK_EXECUTE_TIME_P1": {
+        "apiType": "index", 
+        "format": "Callback execution time are as following (from latest to oldest):", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_60B_CALLBACK_EXECUTE_TIME_P21": {
+        "apiType": "index", 
+        "format": "Callback ptr: 0x%08X, execution time: %d, preempted time: %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_60B_CALLBACK_EXECUTE_TIME_P22": {
+        "apiType": "index", 
+        "format": "Callback ptr: 0x%08X, execution time: %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TM_APP_TCB": {
+        "apiType": "index", 
+        "format": "Content of timer control block as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TM_APP_TCB_CREATED": {
+        "apiType": "index", 
+        "format": "   created : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TM_APP_TCB_ID": {
+        "apiType": "index", 
+        "format": "   id : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TM_APP_TCB_NAME": {
+        "apiType": "index", 
+        "format": "   name : %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TM_APP_TCB_NAME_16": {
+        "apiType": "index", 
+        "format": "   name : %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TM_APP_TCB_FUNC": {
+        "apiType": "index", 
+        "format": "   expiration_routine : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TM_APP_TCB_EXP_ID": {
+        "apiType": "index", 
+        "format": "   expiration_id : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TM_APP_TCB_ENABLED": {
+        "apiType": "index", 
+        "format": "   enabled : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TM_APP_TCB_EXP_COUNT": {
+        "apiType": "index", 
+        "format": "   expirations : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TM_APP_TCB_INIT_TIME": {
+        "apiType": "index", 
+        "format": "   initial_time : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TM_APP_TCB_RESCHEDULE": {
+        "apiType": "index", 
+        "format": "   reschedule_time : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TM_APP_TCB_ACTUAL_LIST": {
+        "apiType": "index", 
+        "format": "   actual_timer : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_111_6": {
+        "apiType": "index", 
+        "format": "The dynamic cacheable switch API caller passes the start address(0x%x) which is not in dynamic cacheable switch region. Please find the cache API caller by callstack to check the parameter.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_111_7": {
+        "apiType": "index", 
+        "format": "The dynamic cacheable switch API caller passes the invalid switch attribute(0x%x). Please find the cache API caller by callstack to check the parameter.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_111_8": {
+        "apiType": "index", 
+        "format": "This fatal error means passing the address which is not in dynamic cacheable switch region or invalid attribute. However, the recorded status is unexpected. Please dump memory and let system service member to give you a hand!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_112_1": {
+        "apiType": "index", 
+        "format": "The cache API caller passes the start address(0x%x) which is not aligned to L1 cache line size(%d bytes). Please find the cache API caller by callstack to check the parameter.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_112_2": {
+        "apiType": "index", 
+        "format": "The cache API caller passes the start address(0x%x) which is not aligned to L2 cache line size(%d bytes). Please find the cache API caller by callstack to check the parameter.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_112_8": {
+        "apiType": "index", 
+        "format": "This fatal error means passing the start address which is not aligned to L1/L2 cache line size for cache APL. However, the recorded statusis unexpected. Please dump memory and let system service member to give you a hand!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_113_3": {
+        "apiType": "index", 
+        "format": "The cache API caller passes the size(0x%x) which is not aligned to L1 cache line size(%d bytes). Please find the cache API caller by callstack to check the parameter.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_113_4": {
+        "apiType": "index", 
+        "format": "The cache API caller passes the size(0x%x) which is not aligned to L2 cache line size(%d bytes). Please find the cache API callerto check the parameter.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_113_5": {
+        "apiType": "index", 
+        "format": "The cache API caller passes the size(0x%x) which is larger than cache size for cache API in HRT domain. Please find the cacheAPI caller by callstack to check why he/she need this time consuming operation.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_113_8": {
+        "apiType": "index", 
+        "format": "This fatal error means passing the size which is not aligned to L1/L2 cache line size or too large size for cache API. However, the recorded status is unexpected. Please dump memory and let system service member to give you a hand!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_114": {
+        "apiType": "index", 
+        "format": "It illegal to invalidate l2cache lock area. Please ask owner of 0x%08x to check their cache API usage", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_133_1": {
+        "apiType": "index", 
+        "format": "This fatal error means that offending VPE did not kick WDT so most likely it hang somewhere", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_c01_00": {
+        "apiType": "index", 
+        "format": "In kal_evshed_create_pool(), malloc failed for total memory required by evshed pool.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_c01_01": {
+        "apiType": "index", 
+        "format": "In evshed_create(), malloc failed for a stack timer required by an event scheduler.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_c01_02": {
+        "apiType": "index", 
+        "format": "In evshed_create(), malloc failed for an event scheduler.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_c01_03": {
+        "apiType": "index", 
+        "format": "In evshed_enable_protect_property(), malloc failed for an event scheduler protect.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_c02_FF": {
+        "apiType": "index", 
+        "format": "In kal_evshed_create_pool(), system fails to create partitioned-memory pool for an event scheduler.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_c03_00": {
+        "apiType": "index", 
+        "format": "In kal_evshed_get_mem(), memory size being requested is larger than partitioned size.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_c03_FF": {
+        "apiType": "index", 
+        "format": "In kal_evshed_get_mem(), system fails to get buffer from evshed_pool_id", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_c04_FF": {
+        "apiType": "index", 
+        "format": "In kal_evshed_free_mem(), system fails to free buffer to evshed_pool_id, ptr=0x%X.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_c05_ID": {
+        "apiType": "index", 
+        "format": "In evshed_cancel_event(), canceling event scheduler owned by others is absolutely prohibited, eventid=0x%X.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_c06_FF": {
+        "apiType": "index", 
+        "format": "In evshed_cancel_event(), parameter eventid is a null pointer.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_c0a_FF": {
+        "apiType": "index", 
+        "format": "In event scheduler APIs, multiple tasks are operating same ES without protect.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b02": {
+        "apiType": "index", 
+        "format": "Dividend is zero now!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b03": {
+        "apiType": "index", 
+        "format": "Oh No! Software abnormal reset is encountered.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b04": {
+        "apiType": "index", 
+        "format": "Division by zero happened when PC was at 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b06": {
+        "apiType": "index", 
+        "format": "Someone tried to execute out of ISPRAM. PC was at 0x%08X and RA was at 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b06_1": {
+        "apiType": "index", 
+        "format": "PC == RA so probably return address was corrupted in stack", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b06_2": {
+        "apiType": "index", 
+        "format": "ISPRAM at CORE%d is at range 0x%08X - 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b31": {
+        "apiType": "index", 
+        "format": "IRQ is disabled over %d us !", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b35": {
+        "apiType": "index", 
+        "format": "IRQ is disabled after leaving LISR %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b36": {
+        "apiType": "index", 
+        "format": "IRQ is disabled after leaving HISR", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b37": {
+        "apiType": "index", 
+        "format": "SaveAndSetIRQMask cannot be used from HRT vpe", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b38": {
+        "apiType": "index", 
+        "format": "RestoreIRQMask cannot be used from HRT vpe", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b39": {
+        "apiType": "index", 
+        "format": "Too big area for kal_memset", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b3a": {
+        "apiType": "index", 
+        "format": "LISR or HISR calling kal_mem_set with >64KB size, context should not do this since performance consideration, owner please review.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b3f": {
+        "apiType": "index", 
+        "format": "Interrupt cannot be disabled on Critical HRT domain", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b60": {
+        "apiType": "index", 
+        "format": "HMU detected MD long time no response.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1501": {
+        "apiType": "index", 
+        "format": "Customer had defined %d task IDs, violates the default value %d!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1502": {
+        "apiType": "index", 
+        "format": "Customer had defined %d module IDs, violates the default value %d!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1503": {
+        "apiType": "index", 
+        "format": "Customer had defined %d message IDs, violates the default value %d!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1504": {
+        "apiType": "index", 
+        "format": "Customer had defined %d SAP IDs, violates the default value %d!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2f00": {
+        "apiType": "index", 
+        "format": "Triggering the same CMIF interrupt more than once with CMIF driver API is prohibited!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2f01": {
+        "apiType": "index", 
+        "format": "Triggering the same CUIF interrupt more than once with CUIF driver API is prohibited!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2f10": {
+        "apiType": "index", 
+        "format": "[For USIP]Exception occurs because the L1 user call DDL API to change bin mode but didn\u0092t call the activate API for usip!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2f10_1": {
+        "apiType": "index", 
+        "format": "[For RAKE]Exception occurs because the L1 user call DDL API to change bin mode but the rake status is not deactivate done!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2f11": {
+        "apiType": "index", 
+        "format": "Exception occurs because the DSP user is still busy but L1 user call the DDL API to change bin mode!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2f12": {
+        "apiType": "index", 
+        "format": "Exception occurs because the previous DDL doesn\u0092t finish but user call the DDL API to change bin mode again!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2f13": {
+        "apiType": "index", 
+        "format": "Exception occurs because the bin mode is incorrect!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2f18": {
+        "apiType": "index", 
+        "format": "[SleepFLowAPI] Target DSP need to deactivate before activate.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2f19": {
+        "apiType": "index", 
+        "format": "[SleepFLowAPI] Target DSP need to activate before deactivate.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2f1a": {
+        "apiType": "index", 
+        "format": "[SleepFLowAPI] Target DSP need to check activate done before deactivate.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_3000_00": {
+        "apiType": "index", 
+        "format": "MD3 C2K exception, please find C2K 1st line support!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_3200": {
+        "apiType": "index", 
+        "format": "AP KE then triggers cross core exception, please find AP 1st line support!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_3201": {
+        "apiType": "index", 
+        "format": "AP WDTTO (CE) then triggers cross core exception, please find AP 1st line support!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_32XX_DEFAULT": {
+        "apiType": "index", 
+        "format": "AP triggers cross core exception, please find AP 1st line support!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b04_OutOfRange": {
+        "apiType": "index", 
+        "format": "IRQ number being serviced is out of range; it is an illegal IRQ!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b04_NOT_REG": {
+        "apiType": "index", 
+        "format": "IRQ number %d is an un-registered interrupt!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b04_MEMORY_CORRUPTION": {
+        "apiType": "index", 
+        "format": "Memory corruption at lisr_dispatch_tbl[%d]!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_b04_LISR_DISPATCH_TBL": {
+        "apiType": "index", 
+        "format": "Content of lisr_dispatch_tbl[%d]:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_b04_LISR_DISPATCH_TBL_V": {
+        "apiType": "index", 
+        "format": "   lisr_dispatch_tbl.vector : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_b04_LISR_DISPATCH_TBL_H": {
+        "apiType": "index", 
+        "format": "   lisr_dispatch_tbl.lisr_handler : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_b04_LISR_DISPATCH_TBL_D": {
+        "apiType": "index", 
+        "format": "   lisr_dispatch_tbl.description : %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_c03_POOL_MONITOR_P1": {
+        "apiType": "index", 
+        "format": "There are totally %d entries with event scheduler buffer size %d (Bytes).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_c03_POOL_MONITOR_P2": {
+        "apiType": "index", 
+        "format": "Owners distribution as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_c03_POOL_MONITOR_P3": {
+        "apiType": "index", 
+        "format": "There are %d events which handler func addr is 0x%08X in event scheduler %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_c03_POOL_MONITOR_P4": {
+        "apiType": "index", 
+        "format": "which dest module is %Mmodule_type (task: %c%c%c%c%c%c%c%c).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_c0a_DISPLAY_CONCURRENT_THREADS_1": {
+        "apiType": "index", 
+        "format": "%s and %s threads are operating the same event scheduler simultaneously without protect!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_c0a_DISPLAY_CONCURRENT_THREADS_2": {
+        "apiType": "index", 
+        "format": "1. If concurrent operating is not expected, please owners of these two threads review the code flow.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_c0a_DISPLAY_CONCURRENT_THREADS_3": {
+        "apiType": "index", 
+        "format": "2. If concurrency(only tasks) is expected, you may enable the protect/mutex feature of this ES.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_b31_irq_disabled_duration": {
+        "apiType": "index", 
+        "format": "IRQ is disabled %d QBs: locked by caller address 0x%08X, unlocked by caller address 0x%08X!!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_swla": {
+        "apiType": "index", 
+        "format": "SWLA entry %d: %s started at %u, exececuted for %uus", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_swla_current": {
+        "apiType": "index", 
+        "format": "SWLA entry 0: %s started at %u, exececuting currently", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_b60_swla_toprunner": {
+        "apiType": "index", 
+        "format": "During the %uus before exception, %s exececuted for %uus", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_TITLE": {
+        "apiType": "index", 
+        "format": "CM2 error info:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_MASK": {
+        "apiType": "index", 
+        "format": "GCR_ERROR_MASK 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_CAUSE": {
+        "apiType": "index", 
+        "format": "GCR_ERROR_CAUSE 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_ADDR": {
+        "apiType": "index", 
+        "format": "GCR_ERROR_ADDR 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_MULT": {
+        "apiType": "index", 
+        "format": "GCR_ERROR_MULT 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_TYPE": {
+        "apiType": "index", 
+        "format": "CM2 Error Type: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_UTYPE": {
+        "apiType": "index", 
+        "format": "Unknown CM2 Error Type: %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_ERRCTL": {
+        "apiType": "index", 
+        "format": "ErrCtl 0x%08X:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_ERRCTL_LBE": {
+        "apiType": "index", 
+        "format": "LBE bit of ErrCtl is set which indicates that most recent Data Bus Error was involved a load instruction", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_ERRCTL_WABE": {
+        "apiType": "index", 
+        "format": "WABE bit of ErrCtl is set which indicates that the most recent Data Bus Error was due to a write allocate and that store data was lost", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_ERRCTL_WABE_LBE": {
+        "apiType": "index", 
+        "format": "It is possible for both LBE and WABE to be set if the bus error was on a line being used for both loads and stores.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_ERRCTL_TCBIND_TBE": {
+        "apiType": "index", 
+        "format": "TC%d has TBE bit (of TCBind) set which indicates load/store causing bus error was issued by TC%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_ERRCTL_TCBIND_TBE_GENERAL1": {
+        "apiType": "index", 
+        "format": "Implementations may set the TBE bits of multiple TCs on a single DBE exception if multiple memory requests to the same memory location or cache linefrom the different TCs were merged.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_ERRCTL_TCBIND_TBE_GENERAL2": {
+        "apiType": "index", 
+        "format": "Implementations may generate bus error exceptions without setting a TBE bit if it is not possible to associate the failing transaction with a particular TC.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_SRCPORT": {
+        "apiType": "index", 
+        "format": "Source port: %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_TAGID": {
+        "apiType": "index", 
+        "format": "Tag ID: %x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_OCPMCMD": {
+        "apiType": "index", 
+        "format": "OCP MCmd: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_UOCPMCMD": {
+        "apiType": "index", 
+        "format": "Unknown OCP MCmd: %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_TARGET_REGION": {
+        "apiType": "index", 
+        "format": "Target region: %Mcm2_error_target_region", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_CCA": {
+        "apiType": "index", 
+        "format": "Cache coherency attribute: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_SC": {
+        "apiType": "index", 
+        "format": "Request was from a Store Conditional", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_INTERVENTION_RESP": {
+        "apiType": "index", 
+        "format": "Core%d intervention response: %Mcm2_error_intervetion_sresp", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_COHERENT_STATE": {
+        "apiType": "index", 
+        "format": "Core%d coherent state: %Mcm2_error_coherent_state", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_ARRAY": {
+        "apiType": "index", 
+        "format": "Array type: %Mcm2_error_array_type", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_INST": {
+        "apiType": "index", 
+        "format": "Instruction associated with error: %Mcm2_error_instruction", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_SYNDROME": {
+        "apiType": "index", 
+        "format": "Syndrome associated with Tag or WS way, or Syndrome associated with Data DWord: %x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_MULTIWAY": {
+        "apiType": "index", 
+        "format": "Multi-way error for Tag or WS RAM", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_WAY": {
+        "apiType": "index", 
+        "format": "Way[2:0] associated with the error: %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_DWORD": {
+        "apiType": "index", 
+        "format": "DWord[3:0] with error: %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CM2ERROR_MULTIPLE": {
+        "apiType": "index", 
+        "format": "Multiple Uncorrectable", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TLB_TITLE": {
+        "apiType": "index", 
+        "format": "TLB <index>: EntryLo0, EntryLo1, PageMask, EntryHi", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TLB_DUMP": {
+        "apiType": "index", 
+        "format": "TLB %d: 0x%08X, 0x%08X, 0x%08X, 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TLB_MOD_EXCEPTION_EXPLANATION": {
+        "apiType": "index", 
+        "format": "%Mexception_type happens when a store happens to non-writable section like ROM or MCU RO area", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DATAACCESS_ERROR": {
+        "apiType": "index", 
+        "format": "In this case, instruction at 0x%08X tried to %s 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_INSTRUCTIONFETCH_ERROR": {
+        "apiType": "index", 
+        "format": "In this case instruction was tried to be fetched from 0x%08X. Last jump was from 0x%08X.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TLB_MISS_STORE_LOAD_EXCEPTION_EXPLANATION": {
+        "apiType": "index", 
+        "format": "%Mexception_type happens in 2 occasion:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TLB_MISS_STORE_LOAD_EXCEPTION_EXPLANATION1": {
+        "apiType": "index", 
+        "format": "   1. Access in to address which is mapped but no TLB entry matches and EXL bit is set (This is used protect empty areas in memory map)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TLB_MISS_STORE_LOAD_EXCEPTION_EXPLANATION2": {
+        "apiType": "index", 
+        "format": "   2. When core accesses core specific area of other core (CACHED_EXTSRAM_CORE0/1/2)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TLB_MISS_STORE_LOAD_EXCEPTION_EXPLANATION3": {
+        "apiType": "index", 
+        "format": "In this case, EXL bit was set so EPC register cannot be used. Please use PC monitor data, last jump 0x%08X  and badvaddr 0x%08X to resolve this case", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TLB_REFILL_STORE_LOAD_EXCEPTION_EXPLANATION": {
+        "apiType": "index", 
+        "format": "%Mexception_type happens when accessing address which is mapped but no TLB entry matches and EXL bit is not set (This is used protect empty areas in memory map)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TLB_EXECUTE_INHIBIT_EXCEPTION_EXPLANATION": {
+        "apiType": "index", 
+        "format": "%Mexception_type happens when instruction fetch happens from area which is marked as execute inhibit", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TLB_EXECUTE_INHIBIT_EXCEPTION_EXPLANATION2": {
+        "apiType": "index", 
+        "format": "In this case return address was corrupted in stack and that caused jump to invalid area during function return", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TLB_EXECUTE_INHIBIT_EXCEPTION_EXPLANATION3": {
+        "apiType": "index", 
+        "format": "Last return address in stack is located at 0x%08X and the word there is 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TLB_EXECUTE_INHIBIT_EXCEPTION_EXPLANATION4": {
+        "apiType": "index", 
+        "format": "Hint: check stack from memory dump around 0x%08X address and try to understand how 0x%08X got there", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_TLB_READ_INHIBIT_EXCEPTION_EXPLANATION": {
+        "apiType": "index", 
+        "format": "%Mexception_type happens when instruction fetch or data read happens from area which is marked as read inhibit", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_ADDRESS_ERROR_STORE_LOAD_EXCEPTION_EXPLANATION": {
+        "apiType": "index", 
+        "format": "%Mexception_type happens because of unaligned access", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DATA_INSTR_BUS_ERROR_EXCEPTION_EXPLANATION": {
+        "apiType": "index", 
+        "format": "%Mexception_type happens when an %s access makes a bus request (due to a cache miss or an uncacheable reference) and that request terminates in an error.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_INSTR_BUS_ERROR_EXCEPTION_EXPLANATION1": {
+        "apiType": "index", 
+        "format": "Instruction errors are precises", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DATA_BUS_ERROR_EXCEPTION_EXPLANATION1": {
+        "apiType": "index", 
+        "format": "data bus errors can be imprecise or precise", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RESERVED_INSTRUCTION_EXCEPTION_EXPLANATION": {
+        "apiType": "index", 
+        "format": "%Mexception_type happens when a reserved or undefined major opcode or function field is executed", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RESERVED_INSTRUCTION_EXCEPTION_EXPLANATION1": {
+        "apiType": "index", 
+        "format": "In this case PC pointed to 0x%08X. Unknown instruction was possibly 0x%08X. Last jump was from 0x%08X.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RESERVED_INSTRUCTION_EXCEPTION_EXPLANATION2": {
+        "apiType": "index", 
+        "format": "L1 cache lines: (NOTE saved during exception handling so not sure if contains valid code pointed by pc", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RESERVED_INSTRUCTION_EXCEPTION_EXPLANATION3": {
+        "apiType": "index", 
+        "format": "L2 cache lines: (NOTE saved during exception handling so not sure if contains valid code pointed by pc", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RESERVED_INSTRUCTION_EXCEPTION_EXPLANATION_NOCODE": {
+        "apiType": "index", 
+        "format": "In this case PC 0x%08X did not point to code region. Last jump was from 0x%08X.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_INTEGER_OVERFLOW_EXCEPTION_EXPLANATION": {
+        "apiType": "index", 
+        "format": "%Mexception_type happens when selected integer instructions (add,addi, sub) result in a 2's complement overflow.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_INTEGER_OVERFLOW_EXCEPTION_EXPLANATION1": {
+        "apiType": "index", 
+        "format": "In this case PC was at 0x%08X when overflow happened", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_WATCH_EXCEPTION_EXPLANATION": {
+        "apiType": "index", 
+        "format": "%Mexception_type happens when an instruction or data reference matches the address information stored in the WatchHi and WatchLo registers", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_WATCH_EXCEPTION_EXPLANATION1": {
+        "apiType": "index", 
+        "format": "This debugging facility can be used as sw breakpoints or data watchpoints. For example stack overflow can be implemented with this facility.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_WATCH_EXCEPTION_EXPLANATION2": {
+        "apiType": "index", 
+        "format": "In this case, PC was at 0x%08X when watch exception happened", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DEFERRED_WATCH_EXCEPTION_EXPLANATION": {
+        "apiType": "index", 
+        "format": "In this case deferred watch exception occured which means it occured during EXL or ERL bit was set or during processor was in DEBUG mode", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DEFERRED_WATCH_EXCEPTION_EXPLANATION1": {
+        "apiType": "index", 
+        "format": "This means EPC register does not point to offending address", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_WATCH_EXCEPTION_EXPLANATION3": {
+        "apiType": "index", 
+        "format": "In this case there was %s watch area 0x%08X-0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_WATCH_EXCEPTION_EXPLANATION4": {
+        "apiType": "index", 
+        "format": "In this case watchpoint WatchLo%d was registered from 0x%08X",
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "SST_WATCH_EXCEPTION_REGS_TITLE": {
+        "apiType": "index", 
+        "format": "Watch hi and lo regs currently:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_WATCH_EXCEPTION_REGS": {
+        "apiType": "index", 
+        "format": "WatchLo%d: 0x%08X, WatchHi%d: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_THREAD_EXCEPTION_EXPLANATION": {
+        "apiType": "index", 
+        "format": "%Mexception_type is caused by multithreading ASE instruction FORK or YIELD. Or by gating storage", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_THREAD_EXCEPTION_EXPLANATION1": {
+        "apiType": "index", 
+        "format": "In this case thread exception subtype was %Mthread_exception_codes", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_THREAD_EXCEPTION_OVERFLOW": {
+        "apiType": "index", 
+        "format": "%Mthread_exception_codes occured because a FORK insruction at 0x%08X could not allocate TC", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_THREAD_EXCEPTION_UNDERFLOW": {
+        "apiType": "index", 
+        "format": "%Mthread_exception_codes occured because YIELD instruction at 0x%08X leaved no dynamically allocatable TCs activated on a VPE.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_THREAD_EXCEPTION_INVALID_QUALIFIER": {
+        "apiType": "index", 
+        "format": "%Mthread_exception_codes occured because YIELD instruction at 0x%08X specified an invalid condition for resuming execution.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_THREAD_EXCEPTION_GATING_STORAGE": {
+        "apiType": "index", 
+        "format": "%Mthread_exception_codes occured at 0x%08X because implementation dependent logic associated with gating or inter-thread communication (ITC) storage requires software intervention.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_THREAD_EXCEPTION_YIELD_SCHEDULER": {
+        "apiType": "index", 
+        "format": "%Mthread_exception_codes occured because a valid YIELD at 0x%08X instruction would have caused a rescheduling of a TC, and the YIELD Intercept bit is set", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_THREAD_EXCEPTION_GATING_STORAGE_SCHEDULER": {
+        "apiType": "index", 
+        "format": "%Mthread_exception_codes occured at 0x%08X because a Gating Storage load or store would have blocked and caused a rescheduling of a TC, and the GS Intercept bit is set", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_THREAD_EXCEPTION_UNKNOWN": {
+        "apiType": "index", 
+        "format": "%Mexception_type is a reserved type. Please contact SS team. PC was at 0x%08X when this happened", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_THREAD_EXCEPTION_VPECONTROL": {
+        "apiType": "index", 
+        "format": "VPEControl 0x%08X => YSI %s and GSI %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_THREAD_EXCEPTION_TCSTATUS": {
+        "apiType": "index", 
+        "format": "TCStatus 0x%08X => DT %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_THREAD_EXCEPTION_YQMASK": {
+        "apiType": "index", 
+        "format": "YQMask 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1700_01": {
+        "apiType": "index", 
+        "format": "In kal_adm_create2(), the given flag set is invalid.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1700_02": {
+        "apiType": "index", 
+        "format": "In kal_adm_create2(), the given sub-pool size array is invalid.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1710_01": {
+        "apiType": "index", 
+        "format": "In kal_adm_delete(), the ADM pool to be deleted is invalid: the ADM pool is set as clean deletion, and there are still occupied ADM buffer.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1720_01": {
+        "apiType": "index", 
+        "format": "In __kal_adm_alloc(), allocation failed because there is no enough MTK cache channel.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1720_04": {
+        "apiType": "index", 
+        "format": "In __kal_adm_alloc_core(), allocation failed because the given alignment value is not 4B aligned.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_172C_01": {
+        "apiType": "index", 
+        "format": "In __kal_adm_realloc(), re-allocation failed and the flag indicating fatal is set.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_172C_04": {
+        "apiType": "index", 
+        "format": "In __kal_adm_realloc(), re-allocation failed because the given alignment is not 4B aligned.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1730_01": {
+        "apiType": "index", 
+        "format": "In __kal_adm_free(), de-allocation failed because the memory block to be freed does not belong to the ADM pool.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1730_02": {
+        "apiType": "index", 
+        "format": "In __kal_adm_free(), de-allocation failed because prev or next pointers of the memory block to be freed is invalid; corruption may occurs.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1732_ADDR": {
+        "apiType": "index", 
+        "format": "In __kal_adm_free(), de-allocation failed because the given memory block is freed before; it's a double free problem.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1740_ADDR": {
+        "apiType": "index", 
+        "format": "In __kal_adm_free(), de-allocation failed because the footer stamp of the memory block to be freed is corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1741_ADDR": {
+        "apiType": "index", 
+        "format": "In __kal_adm_free(), de-allocation failed because the header stamp of the memory block to be freed is corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1750_00": {
+        "apiType": "index", 
+        "format": "The given ADM control block pointer is NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1751_00": {
+        "apiType": "index", 
+        "format": "In __kal_adm_delete(), the given ADM control block pointer is NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1752_00": {
+        "apiType": "index", 
+        "format": "In __kal_adm_alloc_core(), the given ADM control block pointer is NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1753_00": {
+        "apiType": "index", 
+        "format": "In __kal_adm_free(),the given ADM control block pointer is NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1754_00": {
+        "apiType": "index", 
+        "format": "In __kal_adm_realloc(), the given ADM control block pointer is NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1760_ID": {
+        "apiType": "index", 
+        "format": "The ADM ID of the given ADM control block is not valid (0x20101027).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1761_ID": {
+        "apiType": "index", 
+        "format": "In __kal_adm_delete(), the ADM ID of the given ADM control block is not valid (0x20101027).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1762_ID": {
+        "apiType": "index", 
+        "format": "In __kal_adm_alloc_core(), the ADM ID of the given ADM control block is not valid (0x20101027).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1763_ID": {
+        "apiType": "index", 
+        "format": "In __kal_adm_free (), the ADM ID of the given ADM control block is not valid (0x20101027).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1764_ID": {
+        "apiType": "index", 
+        "format": "In __kal_adm_realloc (), the ADM ID of the given ADM control block is not valid (0x20101027).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1770_TASK": {
+        "apiType": "index", 
+        "format": "Fatal occurs because somebody is using the ADM pool at the same time; concurrency usage is forbidden.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1771_PTR": {
+        "apiType": "index", 
+        "format": "In kal_adm_get_prev_block_ptr()/kal_adm_get_next_block_ptr(), the given ADM buffer pointer is not inside the ADM pool.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1781_ADDR": {
+        "apiType": "index", 
+        "format": "In kal_adm_get_extheader(), it failed to get ext-header because the ADM pool is not configured as ext-header embedded.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1790_01": {
+        "apiType": "index", 
+        "format": "In adm_mb_check(), first block is corrupt because its state is not ADM_INUSE or previous block is not NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1790_02": {
+        "apiType": "index", 
+        "format": "In adm_mb_check(), check failed because prev or next pointers of the memory block to be freed is invalid; corruption may occurs.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1790_03": {
+        "apiType": "index", 
+        "format": "In adm_mb_check(), last block is corrupt because its state is not ADM_INUSE or next block is not NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1700_01": {
+        "apiType": "index", 
+        "format": "Invalidate flags in kal_adm_create2, please use KAL_ADM_*_FLAG", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1700_02_P1": {
+        "apiType": "index", 
+        "format": "The subpool_size in kal_adm_create/kal_adm_create2 is invalid.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1700_02_P2": {
+        "apiType": "index", 
+        "format": "Please check if it is NULL, or the elemnts are monotone increasing and end with {0xffffffff, 0}", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1710_01": {
+        "apiType": "index", 
+        "format": "Some buffers in the ADM pool are not freed when deleting ADM.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1720_01_P1": {
+        "apiType": "index", 
+        "format": "There's insufficient MTKL1Cache channle for cache memory setting.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1720_01_P2": {
+        "apiType": "index", 
+        "format": "Please check no memory leakage for MTKL1Cache buffer.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1720_04": {
+        "apiType": "index", 
+        "format": "Alignment is not a multiple of 4, and please check your alignment requirement.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_172C_01_P1": {
+        "apiType": "index", 
+        "format": "It's unable realloc new memory block for data.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_172C_01_P2": {
+        "apiType": "index", 
+        "format": "The behavior is controlled by KAL_ADM_REALLOCFAIL_FATAL_FLAG specified on kal_adm_create2.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_172C_01_P3": {
+        "apiType": "index", 
+        "format": "Please ensure you have enough memory when realloc new memory block,", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_172C_01_P4": {
+        "apiType": "index", 
+        "format": "maybe you need to read ADM_public_api.ppt about how to handle realloc failure", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_172C_04": {
+        "apiType": "index", 
+        "format": "Alignment is not a multiple of 4, and please check your alignment requirement.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1730_01_P1": {
+        "apiType": "index", 
+        "format": "In kal_adm_free(this_adm, ptr), the ptr is not in the range of this_adm pool.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1730_01_P2": {
+        "apiType": "index", 
+        "format": "Please check your input.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1730_02_P1": {
+        "apiType": "index", 
+        "format": "In kal_adm_free(this_adm, ptr), the ADM internal header previous to ptr is corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1730_02_P2": {
+        "apiType": "index", 
+        "format": "Please check memory blocks around it, especially the previous one.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1732_ADDR": {
+        "apiType": "index", 
+        "format": "Double free, or dangling pointer? Please check the last free.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1740_ADDR_P1": {
+        "apiType": "index", 
+        "format": "In kal_adm_free(this_adm, ptr), the footer guard pattern is corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1740_ADDR_P2": {
+        "apiType": "index", 
+        "format": "Please check memory blocks around it, especially the previous one.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1741_ADDR_P1": {
+        "apiType": "index", 
+        "format": "In kal_adm_free(this_adm, ptr), the header guard pattern is corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1741_ADDR_P2": {
+        "apiType": "index", 
+        "format": "Please check memory blocks around, especially the previous block.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1750_00": {
+        "apiType": "index", 
+        "format": "You past a NULL ADM ID to ADM functions. Please check your input.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1751_00": {
+        "apiType": "index", 
+        "format": "You past a NULL ADM ID to kal_adm_delete. Please check your input.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1752_00": {
+        "apiType": "index", 
+        "format": "You past a NULL ADM ID to kal_adm_alloc_*. Please check your input.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1753_00": {
+        "apiType": "index", 
+        "format": "You past a NULL ADM ID to kal_adm_realloc. Please check your input.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1754_00": {
+        "apiType": "index", 
+        "format": "You past a NULL ADM ID to ADM functions. Please check your input.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1760_ID_P1": {
+        "apiType": "index", 
+        "format": "No signature is found; the first word pointed by ADM ID should be 0x20101027.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1760_ID_P2": {
+        "apiType": "index", 
+        "format": "but now it is 0x%X. Please check whether the pointer is valid or corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1761_ID_P1": {
+        "apiType": "index", 
+        "format": "No signature is found in kal_adm_delete(); the first word pointed by ADM ID should be 0x20101027, ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1761_ID_P2": {
+        "apiType": "index", 
+        "format": "but now it is 0x%X. Please check whether the pointer is valid or corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1762_ID_P1": {
+        "apiType": "index", 
+        "format": "No signature is found in kal_adm_alloc_*(); the first word pointed by ADM ID should be 0x20101027, ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1762_ID_P2": {
+        "apiType": "index", 
+        "format": "but now it is 0x%X. Please check whether the pointer is valid or corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1763_ID_P1": {
+        "apiType": "index", 
+        "format": "No signature is found in kal_adm_free(); the first word pointed by ADM ID should be 0x20101027, ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1763_ID_P2": {
+        "apiType": "index", 
+        "format": "but now it is 0x%X. Please check whether the pointer is valid or corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1764_ID_P1": {
+        "apiType": "index", 
+        "format": "No signature is found in kal_adm_realloc(); the first word pointed by ADM ID should be 0x20101027, ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1764_ID_P2": {
+        "apiType": "index", 
+        "format": "but now it is 0x%X. Please check whether the pointer is valid or corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1770_TASK_P1": {
+        "apiType": "index", 
+        "format": "Two or more tasks are operating at the same ADM pool (the other task index is %d).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1770_TASK_P2": {
+        "apiType": "index", 
+        "format": "Please check current task & task %d activities.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1771_PTR": {
+        "apiType": "index", 
+        "format": "The given pinter is invalid. Please check your input ADM buffer pointer.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1781_ADDR_P1": {
+        "apiType": "index", 
+        "format": "This ADM pool has no extheader.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1781_ADDR_P2": {
+        "apiType": "index", 
+        "format": "Please specify KAL_ADM_EXTHEADER_FLAG in kal_adm_create2 if you want an extheader.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1800_01": {
+        "apiType": "index", 
+        "format": "In kal_afm_create(), AFM pool creation failed because the configuration is un-recognizable.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1800_02": {
+        "apiType": "index", 
+        "format": "In kal_afm_create(), AFM pool creation failed because the given array of sub-pool size or number is illegal.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1800_03": {
+        "apiType": "index", 
+        "format": "In kal_afm_create(), AFM pool creation failed because the given pool size is not large enough to create required sub-pools.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1820_05": {
+        "apiType": "index", 
+        "format": "In kal_afm_internal_alloc_dbg(), allocation failed because users wrongly call _c/_nc API on non-cache-aligned creation AFM pool.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1831_ADDR": {
+        "apiType": "index", 
+        "format": "In kal_afm_free(), de-allocation failed because the given memory block is freed before; it's a double free problem.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1840_ADDR": {
+        "apiType": "index", 
+        "format": "In kal_afm_free()/kal_afm_check_integrity(), fatal occurs because the footer stamp of the memory block is corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1841_ADDR": {
+        "apiType": "index", 
+        "format": "In kal_afm_free()/kal_afm_check_integrity(), fatal occurs because the header stamp of the memory block is corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1842_ADDR": {
+        "apiType": "index", 
+        "format": "In kal_afm_internal_alloc_dbg(), allocation failed because the footer stamp of the memory block is corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1843_ADDR": {
+        "apiType": "index", 
+        "format": "In kal_afm_internal_alloc_dbg(), allocation failed because the header stamp of the memory block is corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1850_00": {
+        "apiType": "index", 
+        "format": "In AFM function,the given AFM control block pointer is NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1851_00": {
+        "apiType": "index", 
+        "format": "In kal_afm_delete(), the given AFM control block pointer is NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1852_00": {
+        "apiType": "index", 
+        "format": "In kal_afm_internal_alloc_dbg(),the given AFM control block pointer is NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1853_00": {
+        "apiType": "index", 
+        "format": "In kal_afm_free(),the given AFM control block pointer is NULL.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1860_ID": {
+        "apiType": "index", 
+        "format": "In AFM function, the AFM ID of the given AFM control block is not valid (0x20100104).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1861_ID": {
+        "apiType": "index", 
+        "format": "In kal_afm_delete(), the AFM ID of the given AFM control block is not valid (0x20100104).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1862_ID": {
+        "apiType": "index", 
+        "format": "In kal_afm_internal_alloc_dbg(), the AFM ID of the given AFM control block is not valid (0x20100104).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1863_ID": {
+        "apiType": "index", 
+        "format": "In kal_afm_free(), the AFM ID of the given AFM control block is not valid (0x20100104).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1800_01": {
+        "apiType": "index", 
+        "format": "Unknow options are supplied. Please check every bit in options is defined as AFM_OPT_*.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1800_02": {
+        "apiType": "index", 
+        "format": "The subpool_size or subpool_nr is NULL, and you must supply correct subpool settings.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1800_03": {
+        "apiType": "index", 
+        "format": "There's no enough memory to create AFM pool. Please give a bigger memory to this AFM pool.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1820_05_P1": {
+        "apiType": "index", 
+        "format": "Don't request a cache-line aligned memory from non-cache-line aligned AFM pool,", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1820_05_P2": {
+        "apiType": "index", 
+        "format": "or you need to change to cache-line aligned pool.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1831_ADDR": {
+        "apiType": "index", 
+        "format": "double free or dangling pointer? Please check where the previous free operation locates.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1840_ADDR_P1": {
+        "apiType": "index", 
+        "format": "In kal_afm_free(this_afm, ptr), the AFM guard pattern after ptr is corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1840_ADDR_P2": {
+        "apiType": "index", 
+        "format": "Please check memory blocks around, especially the case ptr overwritten.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1841_ADDR_P1": {
+        "apiType": "index", 
+        "format": "In kal_afm_free(this_afm, ptr), the AFM guard pattern before ptr is corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1841_ADDR_P2": {
+        "apiType": "index", 
+        "format": "Please check memory blocks around, especially the case previous block corrupts ptr's header.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1842_ADDR_P1": {
+        "apiType": "index", 
+        "format": "In kal_afm_alloc_*(this_afm, size), the AFM head guard pattern at 0x%X is corrupted (it should be 0x03F3F3F3).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1842_ADDR_P2": {
+        "apiType": "index", 
+        "format": "Please check users of memory blocks around 0x%X.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1843_ADDR_P1": {
+        "apiType": "index", 
+        "format": "In kal_afm_alloc_*(this_afm, size), the AFM foot guard pattern at 0x%X is corrupted (it should be 0x04F4F4F4).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1843_ADDR_P2": {
+        "apiType": "index", 
+        "format": "Please check users of memory blocks around 0x%X.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1850_00": {
+        "apiType": "index", 
+        "format": "You past a NULL AFM ID to AFM function, Please check your input.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1851_00": {
+        "apiType": "index", 
+        "format": "You past a NULL AFM ID to kal_afm_delete(). Please check your input.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1852_00": {
+        "apiType": "index", 
+        "format": "You past a NULL AFM ID to kal_afm_alloc_*(). Please check your input.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1853_00": {
+        "apiType": "index", 
+        "format": "You past a NULL AFM ID to kal_afm_free(), Please check your input.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1860_ID_P1": {
+        "apiType": "index", 
+        "format": "No valid signature is found in AFM funciton; the first word pointed by AFM ID should be 0x20100104, ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1860_ID_P2": {
+        "apiType": "index", 
+        "format": "but now it is 0x%X, Please check the pointer is valid or corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1861_ID_P1": {
+        "apiType": "index", 
+        "format": "No valid signature is found in kal_afm_delete(); the first word pointed by AFM ID should be 0x20100104, ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1861_ID_P2": {
+        "apiType": "index", 
+        "format": "but now it is 0x%X, Please check the pointer is valid or corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1862_ID_P1": {
+        "apiType": "index", 
+        "format": "No valid signature is found in kal_afm_alloc_*(); the first word pointed by AFM ID should be 0x20100104, ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1862_ID_P2": {
+        "apiType": "index", 
+        "format": "but now it is 0x%X, Please check the pointer is valid or corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1863_ID_P1": {
+        "apiType": "index", 
+        "format": "No valid signature is found in kal_afm_free(); the first word pointed by AFM ID should be 0x20100104, ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_1863_ID_P2": {
+        "apiType": "index", 
+        "format": "but now it is 0x%X, Please check the pointer is valid or corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DSM_COMMON_00": {
+        "apiType": "index", 
+        "format": "[DSM] check dsmgr.h/dsmgr.c for dsm_section_id/DSM_ACTION!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DSM_COMMON_01_01": {
+        "apiType": "index", 
+        "format": "[DSM] LR=0x%x is located in DSM section!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DSM_COMMON_01_02": {
+        "apiType": "index", 
+        "format": "[DSM] SP=0x%x is located in DSM section!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DSM_COMMON_03_01": {
+        "apiType": "index", 
+        "format": "[DSM] print out dsm_id/dsm_tick/dsm_action in dsm_action_record[index]!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DSM_COMMON_03_02": {
+        "apiType": "index", 
+        "format": "[DSM] index =%d, dsm_section_id: %Mdsm_section_id, dsm_tick =0x%x, DSM_ACTION: %MDSM_ACTION", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DSM_COMMON_04_01": {
+        "apiType": "index", 
+        "format": "[DSM] print out section status!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_DSM_COMMON_04_02": {
+        "apiType": "index", 
+        "format": "[DSM] dsm_section_id: %Mdsm_section_id, dsm_section_status: %Mdsm_section_status", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1900_01": {
+        "apiType": "index", 
+        "format": "", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1909_P1": {
+        "apiType": "index", 
+        "format": "Exception happened when PC was at DSM section, please check DSM related infomation", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1909_P2": {
+        "apiType": "index", 
+        "format": "to see if correct DSM section was loaded when exception happened", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_1909_P3": {
+        "apiType": "index", 
+        "format": "Here is info about the exception:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2100_rcuptr": {
+        "apiType": "index", 
+        "format": "In rcu_create ( ), the address of RCU(0x%X) does not align to spinlock size.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2101_size": {
+        "apiType": "index", 
+        "format": "In rcu_create ( ), the memory size(%d) allocated for RCU cannot be divisible by block size.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2102_rcuptr": {
+        "apiType": "index", 
+        "format": "The conrtol block of RCU may be corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2103_buffptr": {
+        "apiType": "index", 
+        "format": "In rcu_free_read_lock ( ), the reader count of RCU block(0x%X) wanted to free is 0.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2104_rcuptr": {
+        "apiType": "index", 
+        "format": "In rcu_get_free_buff ( ), there is no available block to write in RCU(0x%X).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2105_rcuptr": {
+        "apiType": "index", 
+        "format": "In rcu_get_read_lock ( ), there is no available block to read in RCU(0x%X).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2106_buffptr": {
+        "apiType": "index", 
+        "format": "In rcu_commit_data ( ), the control block of RCU block may be corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2107_buffptr": {
+        "apiType": "index", 
+        "format": "In rcu_free_read_lock ( ), the checksum of the RCU block is not correct.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2108_count_1": {
+        "apiType": "index", 
+        "format": "In rcu_create ( ), the total allocated buffer in the RCU is smaller than 2.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2108_count_2": {
+        "apiType": "index", 
+        "format": "The size provided for the RCU to create block is too small.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2109_buffptr": {
+        "apiType": "index", 
+        "format": "The control block of RCU or the control block of RCU block may be corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_2107_buffptr_1_1": {
+        "apiType": "index", 
+        "format": "The control block of RCU or the control block of RCU block may be corrupted.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_2107_buffptr_1_2": {
+        "apiType": "index", 
+        "format": "The correct checksum of this RCU block is not available.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_2107_buffptr_2": {
+        "apiType": "index", 
+        "format": "The correct checksum of the RCU block is 0x%X. The checksum in the RCU block is 0x%X.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_2100_rcuptr": {
+        "apiType": "index", 
+        "format": "Please use the kernel service macro to create RCU memory and pass it correctly.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_2101_size": {
+        "apiType": "index", 
+        "format": "Please check the total allocated size and block size parameter for RCU creation.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_2103_buffptr": {
+        "apiType": "index", 
+        "format": "This RCU block is freed totally previously. Please check the free buffer sequence.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_2104_buffptr": {
+        "apiType": "index", 
+        "format": "The RCU block is out of memory for writing. Please enlarge the RCU size.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_2105_buffptr": {
+        "apiType": "index", 
+        "format": "Please commit data before reading.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_2107_buffptr": {
+        "apiType": "index", 
+        "format": "Please check the usage of RCU block and do not corrupt the RCU block control block.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_2108_count": {
+        "apiType": "index", 
+        "format": "The size for RCU can only create %d block. The RCU restriction is more than 1 block.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE3_2109_buffptr": {
+        "apiType": "index", 
+        "format": "Please check the usage of RCU block and do not corrupt the RCU block control block.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_CB": {
+        "apiType": "index", 
+        "format": "Content of RCU control block as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_CB_ID": {
+        "apiType": "index", 
+        "format": "   rcu_id : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_CB_AVAIL_BUFF": {
+        "apiType": "index", 
+        "format": "   rcu_avail_buff : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_CB_CURR_DATA": {
+        "apiType": "index", 
+        "format": "   rcu_curr_data : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_CB_TOTAL_ALLOC_BUFF": {
+        "apiType": "index", 
+        "format": "   rcu_total_alloc_buff : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_CB_TOTAL_AVAIL_BUFF": {
+        "apiType": "index", 
+        "format": "   rcu_total_avail_buff : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_CB_BUFF_SIZE": {
+        "apiType": "index", 
+        "format": "   rcu_buff_size : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_CB_SPINLOCK_ID": {
+        "apiType": "index", 
+        "format": "   rcu_spinlock : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_CB_LASTEST_COMMIT_MODID": {
+        "apiType": "index", 
+        "format": "   rcu_lastest_commit_modid : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_BLOCK_CB": {
+        "apiType": "index", 
+        "format": "Content of RCU block control block as below:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_BLOCK_CB_RCU_PTR": {
+        "apiType": "index", 
+        "format": "   rcu_ptr : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_BLOCK_CB_NEXT_BUFF_PTR": {
+        "apiType": "index", 
+        "format": "   rcu_next : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_BLOCK_CB_READER_COUNT": {
+        "apiType": "index", 
+        "format": "   rcu_reader_count : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_BLOCK_CB_CHECKSUM": {
+        "apiType": "index", 
+        "format": "   rcu_checksum : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_BLOCK_CB_DEBUG_PRE_BUFF_PTR": {
+        "apiType": "index", 
+        "format": "   rcu_debug_pre_buff : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_BLOCK_CB_DEBUG_NEXT_BUFF_PTR": {
+        "apiType": "index", 
+        "format": "   rcu_debug_next_buff : 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_RCU_BLOCK_CB_BUFF_COUNT": {
+        "apiType": "index", 
+        "format": "   rcu_buff_count : %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_2302": {
+        "apiType": "index", 
+        "format": "Remapping dest_mod_id from Global to Local failure, please find MD3 1st line support to check dest_mod_id 0x%x owner, src mod id is 0x%x, msg_id is 0x%x.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE2_2303": {
+        "format": "Remapping src_mod_id from Local to Global failure, owner please check. dest_mod_id 0x%x, src_mod_id 0x%x, msg_id 0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_PHASE2_2304": {
+        "format": "Remapping src_mod_id from Local to Global failure, owner please check. dest_mod_id 0x%x, src_mod_id 0x%x, msg_id 0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_PHASE2_2305": {
+        "apiType": "index", 
+        "format": "Remapping dest_mod_id from Global to Local failure, please find MD3 1st line support to check dest_mod_id 0x%x owner, src mod id is 0x%x, msg_id is 0x%x.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2306_1": {
+        "apiType": "index", 
+        "format": "In construct_cc_cached_peer_buff() or construct_cc_non_cached_peer_buff(), (pdu_len + header_len + tail_len) should larger than 0.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2306_2": {
+        "apiType": "index", 
+        "format": "In construct_cc_cached_local_para() or construct_cc_non_cached_local_para(), local_para_size should larger than sizeof(local_para_struct).", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2307": {
+        "apiType": "index", 
+        "format": "External queue full is encountered while PS/L1 cross-core message (CC ILM) delivery. src_mod_id 0x%x, dest_mod_id 0x%x, msg_id 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_2308": {
+        "apiType": "index", 
+        "format": "External queue is NULL while PS/L1 cross-core message (CC ILM) delivery, please check why dest task in not running. src_mod_id 0x%x, dest_mod_id 0x%x, msg_id 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_3004": {
+        "apiType": "index", 
+        "format": "External queue full is encountered while MD3->MD1 cross-core message (CC IRQ ILM) delivery. src_mod_id 0x%x, dest_mod_id 0x%x, msg_id 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_3005": {
+        "apiType": "index", 
+        "format": "External queue is NULL while MD3->MD1 cross-core message (CC IRQ ILM) delivery, please check why dest task in not running. src_mod_id 0x%x, dest_mod_id 0x%x, msg_id 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_3006": {
+        "apiType": "index", 
+        "format": "The local dest module id is not located in current (PS or L1 core), please check why such MD3->MD1 CC IRQ ILM will send to here. src_mod_id 0x%x, dest_mod_id 0x%x, msg_id 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_3007": {
+        "apiType": "index", 
+        "format": "The src module id is not located in current (PS or L1 core), please correct the MD1->MD3 CC IRQ ILM content. src_mod_id 0x%x, dest_mod_id 0x%x, msg_id 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_3107": {
+        "apiType": "index", 
+        "format": "Watchdog interrupt occured. Following VPEs have not kicked WDT: ", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_3107_VPES": {
+        "apiType": "index", 
+        "format": "VPE%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_3107_COULD_NOT_FIND_OFFENDER1": {
+        "apiType": "index", 
+        "format": "Could not detect which vpe did not kick WDT", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_PHASE1_3107_COULD_NOT_FIND_OFFENDER2": {
+        "apiType": "index", 
+        "format": "Could not find offender. It is nested irq at vpe%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "SST_PHASE1_3107_COULD_FIND_OFFENDER1": {
+        "apiType": "index", 
+        "format": "Last context running at vpe%d is %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "MDDBG_API_UT_ENABLE": {
+        "format": "mddbg_enableAll(%d) : %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_API_UT_DISABLE": {
+        "format": "mddbg_disable() : %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_API_UT_QUERY": {
+        "format": "mddbg_query() : %d, bp_cnt = %d, wp_cnt = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_API_UT_ENABLE_BPS": {
+        "format": "mddbg_enable_bps() : %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_API_UT_DISABLE_BPS": {
+        "format": "mddbg_disable_bps() : %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_API_UT_SET_BP": {
+        "format": "mddbg_set_bp(0x%08X, %d) : %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_API_UT_ENABLE_WPS": {
+        "format": "mddbg_enable_wps() : %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_API_UT_DISABlE_WPS": {
+        "format": "mddbg_disable_wps() : %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_API_UT_SET_WP": {
+        "format": "mddbg_set_wp(0x%08X, %d, %d, %d) : %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_API_UT_SET_WP_RANGE": {
+        "format": "mddbg_set_wp_range(0x%08X, 0x%08X, %d, %d) : %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_API_UT_READ_MEM": {
+        "format": "Read Memory (0x%08X, %d) = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_API_UT_WRITE_MEM": {
+        "format": "Write Memory (0x%08X) = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_API_UT_SET_BP_PARAM": {
+        "apiType": "index", 
+        "format": "[MDDBG]Breakpoint addr = 0x%08X, control = 0x%08X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_API_UT_SET_BP_IDX": {
+        "format": "set_idx = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_API_UT_SET_WP_TEXT": {
+        "format": "wcr:0x%08X, wp_addr:0x%08X, byte_number:%d, access_type:%d, enable:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_WATCHDOG_RESET_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter Watchdog reset", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_WATCHDOG_RESET_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit Watchdog reset", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_WATCHDOG_RESET_EH_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON]%s Enter Watchdog reset", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_WATCHDOG_RESET_EH_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON]%s Exit Watchdog reset", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_WATCHDOG_DISABLE_ENTER": {
+        "format": "[EXC][COMMON] Enter Watchdog disable", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_WATCHDOG_DISABLE_EXIT": {
+        "format": "[EXC][COMMON] Exit Watchdog disable", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_FLUSH_LOGGING_PORT_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit dhl_flush_logging_port_for_exception()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_NE_FLUSH_LOGGING_PORT_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON][Nested] Exit dhl_flush_logging_port_for_exception()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_CCCI_HANDSHAKING_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ccci_exception_handshake()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_CCCI_HANDSHAKING_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ccci_exception_handshake()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_RESET_HARDWARE_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_reset_hw()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_RESET_HARDWARE_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_reset_hw()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_TL1_FORCESTALL_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter TL1_ForceStall()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_TL1_FORCESTALL_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit TL1_ForceStall()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_L1D_PAUSEDSP_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter L1D_PauseDSP()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_L1D_PAUSEDSP_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit L1D_PauseDSP()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_L1AUDIO_RESETDEVICE_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter L1Audio_ResetDevice()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_L1AUDIO_RESETDEVICE_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit L1Audio_ResetDevice()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_DUMP_SLAVE_LOG_ENTER": {
+        "format": "[EXC][COMMON] Enter dhl_cc_exception_dump_slave_log()", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_DUMP_SLAVE_LOG_EXIT": {
+        "format": "[EXC][COMMON] Exit dhl_cc_exception_dump_slave_log()", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_NE_DUMP_SLAVE_LOG_ENTER": {
+        "format": "[EXC][COMMON][Nested] Enter dhl_cc_exception_dump_slave_log()", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_NE_DUMP_SLAVE_LOG_EXIT": {
+        "format": "[EXC][COMMON][Nested] Exit dhl_cc_exception_dump_slave_log()", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_HS_ENTER": {
+        "format": "[EXC][COMMON] Enter ex_int_cc_handshake(%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_HS_EXIT": {
+        "format": "[EXC][COMMON] Exit ex_int_cc_handshake(%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_CADEFA_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_cadefa()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_CADEFA_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_cadefa()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_USIP_CADEFA_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_usip_cadefa()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_USIP_CADEFA_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_usip_cadefa()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_MD32_CADEFA_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_md32_cadefa()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_MD32_CADEFA_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_md32_cadefa()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_SCQ_CADEFA_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_scq_cadefa()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_SCQ_CADEFA_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_scq_cadefa()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_SONIC_CADEFA_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_sonic_cadefa()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_SONIC_CADEFA_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_sonic_cadefa()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_INVOKE_SST_ENGINE_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter INT_InvokeSSTEngine()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_INVOKE_SST_ENGINE_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit INT_InvokeSSTEngine()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_EMM_WRITE_EX_RECORD_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter EMM_Write_ExceptRecord()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_EMM_WRITE_EX_RECORD_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit EMM_Write_ExceptRecord()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_SWLA_PRINT_LOWRAM_ENTER": {
+        "format": "[EXC][COMMON] Enter SLA_Print_low_RAM_SWLA()", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_SWLA_PRINT_LOWRAM_EXIT": {
+        "format": "[EXC][COMMON] Exit SLA_Print_low_RAM_SWLA()", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_EXCEPTION_RECORD_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_output_log()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_EXCEPTION_RECORD_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_output_log()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_USIP_EXCEPTION_RECORD_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_output_usip_log()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_USIP_HS_FAILED": {
+        "apiType": "index", 
+        "format": "usip HS failed [%d]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_USIP_EXCEPTION_RECORD_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_output_usip_log()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_MD32_EXCEPTION_RECORD_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_output_md32_log()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_MD32_HS_FAILED": {
+        "apiType": "index", 
+        "format": "md32 HS failed [%d]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_MD32_EXCEPTION_RECORD_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_output_md32_log()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_SONIC_EXCEPTION_RECORD_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_output_sonic_log()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_SONIC_HS_FAILED": {
+        "apiType": "index", 
+        "format": "sonic HS failed [%d]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_OUTPUT_SONIC_EXCEPTION_RECORD_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_output_sonic_log()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_PASS_CCCI_EXCINFO_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ccci_exception_info_passed()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_PASS_CCCI_EXCINFO_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ccci_exception_info_passed()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_FLC_DEBUG_INFO_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter flc2_debug_assert_callback()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_FLC_DEBUG_INFO_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit flc2_debug_assert_callback()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_RMPU_DEBUG_INFO_ENTER": {
+        "format": "[EXC][COMMON] Enter emimpu_dump_status()", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_RMPU_DEBUG_INFO_EXIT": {
+        "format": "[EXC][COMMON] Exit emimpu_dump_status()", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_INIT_FDD_TABLE_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter Initialize_FDD_tables()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_INIT_FDD_TABLE_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit Initialize_FDD_tables()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_SAVE_EXCEPTION_RECORD_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_save_log()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_SAVE_EXCEPTION_RECORD_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_save_log()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_FS_UNLOCK_ALL_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter FS_UnlockAll()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_FS_UNLOCK_ALL_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit FS_UnlockAll()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_FS_SHUTDOWN_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter FS_ShutDown()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_FS_SHUTDOWN_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit FS_ShutDown()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_NVRAM_WRITE_EXC_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter nvram_write_exception(%d, 0x%x, 0x%x)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_NVRAM_WRITE_EXC_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit nvram_write_exception()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_EMM_WRITE_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter EMM_Write_ExceptRecord()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_EMM_WRITE_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit EMM_Write_ExceptRecord()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_RESET_EXCSP_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter INT_ExceptionResetExcSP()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_RESET_EXCSP_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit INT_ExceptionResetExcSP()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_CLEAN_RES_PROT_ENTER": {
+        "format": "[EXC][COMMON] Enter ex_clean_res_prot()", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_CLEAN_RES_PROT_EXIT": {
+        "format": "[EXC][COMMON] Exit ex_clean_res_prot()", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_UNGUARD_STACKSPACE_ENTER": {
+        "format": "[EXC][COMMON] Enter kal_unguard_stack_space()", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_UNGUARD_STACKSPACE_EXIT": {
+        "format": "[EXC][COMMON] Exit kal_unguard_stack_space()", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_NESTED_PROCESS_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_nested_process()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_NESTED_PROCESS_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_nested_process()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_INIT_DUMP_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_init_dump()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_INIT_DUMP_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_init_dump()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_REMOVE_SENSITIVE_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_remove_sensitive_for_dump()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_REMOVE_SENSITIVE_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_remove_sensitive_for_dump()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_INIT_BBREG_DUMP_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_init_bbreg_dump()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_INIT_BBREG_DUMP_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_init_bbreg_dump()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_INIT_MINI_DUMP_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_init_mini_dump()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_INIT_MINI_DUMP_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_init_mini_dump()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_INIT_REAPPEAR_LOG_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_reappear_log()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_INIT_REAPPEAR_LOG_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_reappear_log()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_EX_REBOOT4MP_ENTER": {
+        "format": "[EXC][COMMON] Enter ex_reboot4mp()", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_EX_REBOOT4MP_EXIT": {
+        "format": "[EXC][COMMON] Exit ex_reboot4mp()", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_SYSMEM_TO_BE_DUMPED": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] sys_mem_xxx.bin to be dumped [%d]: (0x%x, 0x%x)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_SYSMEM_TO_BE_DUMPED_FOR_MINI": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] sys_mem_xxx.bin to be dumped for mini [%d]: (0x%x, 0x%x)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "SST_EXC_SONICMEM_TO_BE_DUMPED": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] %ssonic_mem_xxx.bin to be dumped [%d]: (0x%x, 0x%x)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "SST_EXC_SONICMEM_TO_BE_DUMPED_FOR_MINI": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] %ssonic_mem_xxx.bin to be dumped for mini [%d]: (0x%x, 0x%x)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "SST_EXC_SLAVE_SYSMEM_TO_BE_DUMPED": {
+        "format": "[EXC][COMMON] slave_sys_mem_0x%08x.bin to be dumped [%d]: (0x%x, 0x%x)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_DHLLOGGING_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter dhl_call_exception_custom_logging at %dus", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_DHLLOGGING_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit dhl_call_exception_custom_logging at %dus", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_HANDOVER2TST": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Handover to TST exception handler", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_READY2REBOOT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Ready to silent reboot", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_REMOVE_SENSITIVE_USER_CALLBACK_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter sensitive-removing callback, Index:%d, Taskname:%s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_REMOVE_SENSITIVE_USER_CALLBACK_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit sensitive-removing callback, Index:%d, Taskname:%s, Elapsedtime:%dus", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_REMOVE_SENSITIVE_CTRLBUFF_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter sensitive-removing: kal_clear_all_sensitive_buff_data()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },  
+    {
+      "SST_EXC_REMOVE_SENSITIVE_CTRLBUFF_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit sensitive-removing: kal_clear_all_sensitive_buff_data(), Elapsedtime:%dus", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_REMOVE_SENSITIVE_QBM_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter sensitive-removing: qbm_clear_all_sensitive_data()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },  
+    {
+      "SST_EXC_REMOVE_SENSITIVE_QBM_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit sensitive-removing: qbm_clear_all_sensitive_data(), Elapsedtime:%dus", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_REMOVE_SENSITIVE_FL2_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter sensitive-removing: fl2_ent_mask_peer_buff_for_miniDump()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },  
+    {
+      "SST_EXC_REMOVE_SENSITIVE_FL2_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit sensitive-removing: fl2_ent_mask_peer_buff_for_miniDump(), Elapsedtime:%dus", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_REMOVE_SENSITIVE_STACK_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter sensitive-removing stack, Index:%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_REMOVE_SENSITIVE_STACK_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit sensitive-removing stack, Index:%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_REMOVE_SENSITIVE_DETECT_ERROR": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] sensitive-removing, detect errror happened! Exception Count:%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_REMOVE_SENSITIVE_DEBUG_STACK_INFO": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit sensitive-removing stack,sp:0x%x, start:0x%x, size:0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_SWITCH_WDT_PHASE2": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Do ex_switchWDT_phase2()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_BBREG_DUMP_COUNT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] BB register dump count: %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_BBREG_DUMP_OWNER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] BB register dump owner: %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_BBREG_DUMP_CALLBACK_FUNC_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter BB register dump callback, address: 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_BBREG_DUMP_CALLBACK_FUNC_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit BB register dump callback, address: 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_BBREG_DUMP_SKIP": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Skip this dump", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_BBREG_DUMP_SKIP2": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Callback (0x%x) caused nested exception -> skip this dump", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_BBREG_DUMP_TO_BE_DUMPED": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] bb_mem_xxx.bin to be dumped [%d]: (0x%x, 0x%x, %d)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_BBREG_DUMP_LARGE": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] bb_mem size is larger than %d KB: (base, len)=(0x%x, 0x%x)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_BBREG_DUMP_OVERLAP_SYS": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] bb_mem (0x%x, 0x%x) overlap sys_mem (0x%x, 0x%x)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_BBREG_DUMP_TOP_NUM": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] top%d bb_mem (0x%x, 0x%x)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_L1CORE_BBREG_DUMP_OWNER": {
+        "format": "[EXC][COMMON][L1CORE] BB register dump owner: %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_L1CORE_BBREG_DUMP_TO_BE_DUMPED": {
+        "format": "[EXC][COMMON][L1CORE] bb_mem_xxx.bin to be dumped [%d]: (0x%x, 0x%x, %d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_MINIDUMP_SYMBOL_OWNER": {
+        "format": "[EXC][COMMON][MINIDUMP] symbol/area owner: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_MINIDUMP_SYMBOL_CLEAN": {
+        "format": "[EXC][COMMON][MINIDUMP] symbol/area cleaned: 0x%08x - 0x%08x, %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_MINIDUMP_SYMBOL_NESTED": {
+        "format": "[EXC][COMMON][MINIDUMP] symbol/area 0x%08x - 0x%08x, %s, caused nested exception, SKIP it", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_HANDLE_DUMP_REGION_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter SST_HandleDumpRegion(addr=0x%08x, len=0x%x)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_HANDLE_DUMP_REGION_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit SST_HandleDumpRegion(addr=0x%08x, len=0x%x, operation result=%s)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_HANDLE_DUMP_REGION_OP_CACHED": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] SST_HandleDumpRegion: Do cache operation", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_HANDLE_DUMP_REGION_OP_TIMEOUT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON]Timeout(> %dus): Start: %dus, End= %dus, Duration = %dus", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_HANDLE_EMIMPU_OUTPUT_ADDR": {
+        "format": "[EXC][EMIMPU] MasterID:%x(%s)  ViolationAddr:%x(%s)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SST_EXC_HANDLE_EMIMPU_OUTPUT_REGION": {
+        "apiType": "index", 
+        "format": "[EXC][EMIMPU] Region:%d  Domain:%d   Out-of-Range:%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_BBREG_OUTPUT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON][BBREG_OUTPUT] address=0x%08x  value=0%08x, sub_idx=%d, fill_cnt=%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_QUERY_BBREG_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON]ex_query_bbreg_info(buf_ptr=0%08x, start_idx=%d, num=%d)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_QUERY_BBREG_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON]ex_query_bbreg_info() return fill_cnt=%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_QUERY_BBREG_SKIP": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] skip_cnt(%d)+traverser->num(%d)+prv_fill_cnt(%d) <= start_idx(%d) => skip_cnt=%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_COPY_BBREG_START_IDX": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] COPY_BBREG start idx=%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_QUERY_BBREG_UPDATE_SKIP": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] prv_fill_cnt: %d, this traverser->num: %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_AFOUND_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter ex_output_afound()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_AFOUND_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit ex_output_afound()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_SEC_CHANNEL_DEINIT_ENTER": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Enter SST_SSF_Deinit()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_EXC_SEC_CHANNEL_DEINIT_EXIT": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Exit SST_SSF_Deinit()", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "USIP_SCQ16_EX_LOG_ASSERT": {
+        "apiType": "index", 
+        "format": "[%s(%s)] Assert fail: %s - %d 0x%x 0x%x 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "USIP_SCQ16_EX_LOG_FATAL_ERROR": {
+        "apiType": "index", 
+        "format": "[%s(%s)] Fatal error: code1 0x%x, code2 0x%x, sp 0x%x, lr 0x%x, lisr level %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "USIP_SCQ16_EX_LOG_CTI": {
+        "apiType": "index", 
+        "format": "[%s(%s)] Cross Trigger by other core", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "USIP_SCQ16_EX_LOG_UNKNOWN": {
+        "apiType": "index", 
+        "format": "[%s(%s)] Unknown exception", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "USIP_SCQ16_EX_LOG_BYPASS_DUMP_INFO": {
+        "apiType": "index", 
+        "format": "[%s] status 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "USIP_SCQ16_EX_LOG_SYNCED_MASK": {
+        "apiType": "index", 
+        "format": "USIP/SCQ16 sync mask 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SCQ16_COMMON_PM_INFO": {
+        "apiType": "index", 
+        "format": "SCQ16 common pm checksum: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SCQ16_DDL_PM_INFO": {
+        "apiType": "index", 
+        "format": "SCQ16 ddl pm checksum: %s, ddl_mode: 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SCQ16_COMMON_PM_WITH_CHKSUM_INFO": {
+        "apiType": "index", 
+        "format": "SCQ16 common pm checksum: %s, expected: 0x%X, current: 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SCQ16_DDL_PM_WITH_CHKSUM_INFO": {
+        "apiType": "index", 
+        "format": "SCQ16 ddl pm checksum: %s, ddl_mode: 0x%X, expected: 0x%X, current: 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "USIP_SCQ16_COMMON_DOWNLOAD_NOT_DONE_INFO": {
+        "apiType": "index", 
+        "format": "[%s] first boot common part not yet download done...", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "USIP_SCQ16_COMMON_DOWNLOAD_DONE_INFO": {
+        "apiType": "index", 
+        "format": "[%s] first boot common part download done...", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "USIP_SCQ16_DDL_DOWNLOAD_NOT_DONE_INFO": {
+        "apiType": "index", 
+        "format": "[%s] first boot ddl part not yet download done...", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "USIP_SCQ16_DDL_DOWNLOAD_DONE_INFO": {
+        "apiType": "index", 
+        "format": "[%s] first boot ddl part download done...", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "USIP_SCQ16_FEC_TX_DDL_START": {
+        "format": "[DDL][FEC_TX-START] idx: 0x%X, time: 0x%X, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_FEC_RX_DDL_START": {
+        "format": "[DDL][FEC_RX-START] idx: 0x%X, time: 0x%X, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_BRP_DDL_START": {
+        "format": "[DDL][BRP-START] idx: 0x%X, time: 0x%X, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_SCQ16_DDL_START": {
+        "format": "[DDL][SCQ16-START] idx: 0x%X, time: 0x%X, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_INNER_DDL_START": {
+        "format": "[DDL][L2TCM-START] idx: 0x%X, time: 0x%X, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_RAKE_DDL_START": {
+        "format": "[DDL][RAKE-START] idx: 0x%X, time: 0x%X, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_SCQ16_DDL_START_GDMA": {
+        "format": "[DDL][SCQ16-TRIG_GDMA] idx: 0x%X, time: 0x%X, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X, len: 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_RAKE_DDL_START_GDMA": {
+        "format": "[DDL][RAKE-TRIG_GDMA] iA start gdma for rake ddl, idx: 0x%X, time: 0x%X, bin_mode: 0x%X, len: 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_SET_INNER_DDL_PROTECT_DONE": {
+        "format": "[DDL][L2TCM-Done] idx: 0x%X, time: 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_RAKE_DDL_DONE": {
+        "format": "[DDL][RAKE-Done] idx: 0x%X, time: 0x%X, bin_mode: 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_GDMA_DONE": {
+        "format": "[DDL][SCQ16-GDMA-Done] idx: 0x%X, time: 0x%X, bin_mode: 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_RAKE_DDL_LAST_MODE_IS_LTE": {
+        "format": "[DDL][RAKE] last mode is lte, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X, status: 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_TRIG_CLR_INNER_DDL_PROTECT": {
+        "format": "[DDL][L2TCM] iA trigger to clear inner ddl protection, caller: 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_CLR_INNER_DDL_PROTECT_DONE": {
+        "format": "[DDL][L2TCM] clear inner ddl protection done, re_call_rake_ddl_user: 0x%X, re_call_rake_ddl_mode:0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_SEND_INT_TO_INNER_CLR_DDL_PROTECT": {
+        "format": "[DDL][L2TCM] iA send interrupt to usip-inner to clear inner ddl protection,caller: 0x%X, user_id: 0x%X, bin_mode: 0x%X, status: 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_SEND_INT_TO_INNER_TO_SET_DDL_PROTECT": {
+        "format": "[DDL][L2TCM] iA send interrupt to usip-inner to set inner ddl protection, idx: 0x%X, time: 0x%X, bin_mode: 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_DSP_GDMA_CB": {
+        "format": "[DDL] DSPGDMA_CB gdma done, gdma_who_use: 0x%X, gdma_who_wait:0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "USIP_SCQ16_DDL_STATUS_BIN_MODE_INFO": {
+        "apiType": "index", 
+        "format": "[DDL][%s] ddl_status: 0x%X, ddl_bin_mode: 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "USIP_SCQ16_EX_REPORT_VU_STATUS": {
+        "apiType": "index", 
+        "format": "[USIP(%s)] SCQ16_%d VU status, status %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "DSP_SLEEP_FLOW_ACTIVATE": {
+        "apiType": "index", 
+        "format": "[DSP]DSP activate, thread %d, user %d, status 0x%x", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "DSP_SLEEP_FLOW_DEACTIVATE": {
+        "apiType": "index", 
+        "format": "[DSP]DSP deactivate, thread %d, user %d, status 0x%x", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "DSP_SLEEP_FLOW_ACTIVATE_END": {
+        "apiType": "index", 
+        "format": "[DSP]DSP activate end, return %d, thread %d, user %d, status 0x%x", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "DSP_SLEEP_FLOW_DEACTIVATE_END": {
+        "apiType": "index", 
+        "format": "[DSP]DSP deactivate end, return %d, thread %d, user %d, status 0x%x", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "MD32_EX_LOG_ASSERT": {
+        "apiType": "index", 
+        "format": "[MD32(RAKE)] Assert fail: %s - %d 0x%x 0x%x 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_EX_LOG_UNDEF": {
+        "apiType": "index", 
+        "format": "[MD32(RAKE)] Fatal error - undefined instruction: pc 0x%x, lr 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_EX_LOG_ABORT": {
+        "apiType": "index", 
+        "format": "[MD32(RAKE)] Fatal error - %s: pc 0x%x, address 0x%x, sp 0x%x, lr 0x%x, interrupt_level %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_EX_LOG_UND_IRQ": {
+        "apiType": "index", 
+        "format": "[MD32(RAKE)] Fatal error - %s: 0x%x, interrupt_level %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_EX_LOG_UND_CMIF_IRQ": {
+        "apiType": "index", 
+        "format": "[MD32(RAKE)] Fatal error - %s: isr_num %d, lr 0x%x, interrupt_level %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_EX_LOG_CTI": {
+        "apiType": "index", 
+        "format": "[MD32(RAKE)] Fatal error - CTI Error", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_EX_LOG_STACK_CORRUPT": {
+        "apiType": "index", 
+        "format": "[MD32(RAKE)] Fatal error - %s: sp 0x%x, lr 0x%x, interrupt_level %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_EX_LOG_ECT": {
+        "apiType": "index", 
+        "format": "[MD32(RAKE)] Fatal error - ECT ERROR: code2 0x%x, lr 0x%x, interrupt_level %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_EX_LOG_DEFAULT": {
+        "apiType": "index", 
+        "format": "[MD32(RAKE)] Fatal error: code1 0x%x, code2 0x%x, sp 0x%x, lr 0x%x, interrupt_level %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_EX_LOG_IN_SLEEP": {
+        "apiType": "index", 
+        "format": "[MD32(RAKE)] Core is in sleep mode, so the exception flow is not active", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_EX_LOG_WRONG_PATTERN": {
+        "apiType": "index", 
+        "format": "[MD32(RAKE)] The CMIF Pattern is 0x%x, RAKE may not finish exception flow", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_EX_LOG_BIN_BUILD_INFO": {
+        "format": "[MD32(%s)] Project: %s Flavor: %s BuildTime: %s Label: %s", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MD32_EX_LOG_EX_FLOW_PROGRESS": {
+        "format": "[%s] [MD32(%s)] Exception flow status: %s", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MD32_EX_LOG_CMIF_REACHABLE": {
+        "apiType": "index", 
+        "format": "CMIF status from L1 core is %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_COMMON_DOWNLOAD_NOT_DONE_INFO": {
+        "apiType": "index", 
+        "format": "[%s] first boot common part not yet download done...", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_DDL_DOWNLOAD_NOT_DONE_INFO": {
+        "apiType": "index", 
+        "format": "[%s] first boot ddl part not yet download done...", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_COMMON_DOWNLOAD_DONE_INFO": {
+        "apiType": "index", 
+        "format": "[%s] first boot common part download done...", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_DDL_DOWNLOAD_DONE_INFO": {
+        "apiType": "index", 
+        "format": "[%s] first boot ddl part download done...", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "MD32_DDL_STATUS_BIN_MODE_INFO": {
+        "apiType": "index", 
+        "format": "[DDL][%s] ddl_status: 0x%X, ddl_bin_mode: 0x%X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_SONIC_EX_LOG_ASSERT": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-1] Assert fail: %s - %d 0x%x 0x%x 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_EX_LOG_ASSERT_NO_E1_TO_E3": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-1] Assert fail: %s - %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_EX_LOG_CUSTOM_ASSERT_ADDR": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-1] Assert fail (CUSTOM_ASSERT_ADDR): addr:0x%08x, %s - %d 0x%x 0x%x 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_EX_LOG_CUSTOM_ASSERT_ADDR_NO_E1_TO_E3": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-1] Assert fail (CUSTOM_ASSERT_ADDR): addr:0x%08x, %s - %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_EX_LOG_CUSTOM_ASSERT_MOFID": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-1] Assert fail (CUSTOM_ASSERT_MOFID): mofid:%d mof_name:%s %s - %d 0x%x 0x%x 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_EX_LOG_CUSTOM_ASSERT_MOFID_NO_E1_TO_E3": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-1] Assert fail (CUSTOM_ASSERT_MOFID): mofid:%d mof_name:%s %s - %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_EX_LOG_FATAL_ERROR": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-1] Fatal Error - code1 0x%x (%s), code2 0x%x. Version: %s BuildTime: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_EX_LOG_DBGC_FATAL_ERROR": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-1] Fatal Error - code1 0x%x (%s, source:%d), code2 0x%x. Version: %s BuildTime: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_EX_LOG_CTI": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-1] Cross Trigger by other core or thread", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_SONIC_EX_LOG_NONE": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-1] No run exception flow.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_SONIC_EX_LOG_UNKNOWN": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-1] Unknown exception", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_NESTED_EX_LOG_ASSERT": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-2] (Nested Exception) Illegal Assertion: %s - %d 0x%x 0x%x 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_NESTED_EX_LOG_ASSERT_NO_E1_TO_E3": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-2] (Nested Exception) Illegal Assertion: %s - %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_NESTED_EX_LOG_CUSTOM_ASSERT_ADDR": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-2] (Nested Exception) Illegal CUSTOM_ASSERT_ADDR: addr:0x%08x, %s - %d 0x%x 0x%x 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_NESTED_EX_LOG_CUSTOM_ASSERT_ADDR_NO_E1_TO_E3": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-2] (Nested Exception) Illegal CUSTOM_ASSERT_ADDR: addr:0x%08x, %s - %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_NESTED_EX_LOG_CUSTOM_ASSERT_MOFID": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-2] (Nested Exception) Illegal CUSTOM_ASSERT_MOFID: mofid:%d mof_name:%s %s - %d 0x%x 0x%x 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_NESTED_EX_LOG_CUSTOM_ASSERT_MOFID_NO_E1_TO_E3": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-2] (Nested Exception) Illegal CUSTOM_ASSERT_MOFID: mofid:%d mof_name:%s %s - %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_NESTED_EX_LOG_FATAL_ERROR": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-2] (Nested Exception) Fatal Error - code1 0x%x (%s), code2 0x%x.", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_NESTED_EX_LOG_UNKNOWN": {
+        "apiType": "index", 
+        "format": "[%s(%d)] [EX-2] (Nested Exception) Unknown exception", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_SONIC_EX_LOG_BYPASS_DUMP_INFO": {
+        "apiType": "index", 
+        "format": "[%s(%d)] status 0x%x, steps: 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_SONIC_EX_LOG_SYNCED_MASK": {
+        "apiType": "index", 
+        "format": "SONIC sync mask 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_EX_LOG_FORCE_SYNCED_MASK": {
+        "apiType": "index", 
+        "format": "SONIC FORCE sync mask 0x%x, SKIP force sync mask 0x%x", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_SONIC_EX_DUMP_MSONIC_PHASE_STATUS": {
+        "apiType": "index", 
+        "format": "[SONIC] phase2 dump curr_steps %d, status %x, current time:%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "TST_EX_MSG_DUMP_UART_RING_BUFFER_START": {
+        "format": "[EXC][COMMON] Dump UART ring buffer data start (port:%MDCL_DEV_T)!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_DUMP_UART_RING_BUFFER_END": {
+        "format": "[EXC][COMMON] Dump UART ring buffer data end (port:%MDCL_DEV_T)!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_DISABLE_LGA_BUF_UNDER_SS_START": {
+        "format": "[EXC][COMMON] Disable Lga buffer start!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_DISABLE_LGA_BUF_UNDER_SS_END": {
+        "format": "[EXC][COMMON] Disable Lga buffer end!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_CLEAN_UART_UNDER_SS_START": {
+        "format": "[EXC][COMMON] Clean up UART channel start (port:%MDCL_DEV_T)!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_CLEAN_UART_UNDER_SS_END": {
+        "format": "[EXC][COMMON] Clean up UART channel end (port:%MDCL_DEV_T)!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_DUMP_PS_BUF_START": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Dump PS Buf start!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "TST_EX_MSG_DUMP_PS_BUF_END": {
+        "apiType": "index", 
+        "format": "[EXC][COMMON] Dump PS Buf end!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "TST_EX_MSG_DISABLE_LGA_BUF_START": {
+        "format": "[EXC][ELT] Disable Lga buffer start!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_DISABLE_LGA_BUF_END": {
+        "format": "[EXC][ELT] Disable Lga buffer end!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_REOPEN_PORT_START": {
+        "format": "[EXC][ELT] Reopen logging ports start!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_REOPEN_PORT_END": {
+        "format": "[EXC][ELT] Reopen logging ports end!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_OPEN_PORT_START": {
+        "format": "[EXC][ELT] open logging ports start! (Port:%MDCL_DEV_T)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_OPEN_PORT_END": {
+        "format": "[EXC][ELT] open logging ports end! (Port:%MDCL_DEV_T)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_CLEAN_UART_START": {
+        "format": "[EXC][ELT] Clean up UART channel start! (Port:%MDCL_DEV_T)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_CLEAN_UART_END": {
+        "apiType": "index", 
+        "format": "[EXC][ELT] Clean up UART channel end! (Port:%MDCL_DEV_T)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_CLOSE_PORT_START": {
+        "format": "[EXC][ELT] close logging ports start! (Port:%MDCL_DEV_T)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_CLOSE_PORT_END": {
+        "format": "[EXC][ELT] close logging ports end! (Port:%MDCL_DEV_T)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_CHANGE_L1_PORT": {
+        "format": "[EXC][ELT] Change L1 logging port from %MDCL_DEV_T to %MDCL_DEV_T !", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_NESTED_EX_DETECTED": {
+        "apiType": "index", 
+        "format": "[EXC][ELT] Detect nested exception! (times:%d)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "TST_EX_MSG_DUMP_SST_LOG_START": {
+        "apiType": "index", 
+        "format": "[EXC][ELT] Redump exception log start!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "TST_EX_MSG_DUMP_SST_LOG_END": {
+        "apiType": "index", 
+        "format": "[EXC][ELT] Redump exception log end!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "TST_EX_MSG_DRV_EX_HANDLER_START": {
+        "format": "[EXC][ELT] Drv ex handler start!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_DRV_EX_HANDLER_END": {
+        "format": "[EXC][ELT] Drv ex handler end!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_DUMP_LGA_BUF_START": {
+        "format": "[EXC][ELT] Dump Lga buffer start!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_DUMP_LGA_BUF_END": {
+        "format": "[EXC][ELT] Dump Lga buffer end!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_REDUMP_PS_BUF_START": {
+        "apiType": "index", 
+        "format": "[EXC][ELT] Redump PS buffer start!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "TST_EX_MSG_REDUMP_PS_BUF_END": {
+        "apiType": "index", 
+        "format": "[EXC][ELT] Redump PS buffer end!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "TST_EX_MSG_REDUMP_L1_BUF_START": {
+        "apiType": "index", 
+        "format": "[EXC][ELT] Redump L1 buffer start!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "TST_EX_MSG_REDUMP_L1_BUF_END": {
+        "apiType": "index", 
+        "format": "[EXC][ELT] Redump L1 buffer end!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "TST_EX_MSG_GET_ELT_CMD": {
+        "apiType": "index", 
+        "format": "[EXC][ELT] Get one PC exception command:%Mdhl_command_type !", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_GET_ELT_CMD_CHECKSUM_ERROR": {
+        "format": "[EXC][ELT] Get one PC exception command:%Mdhl_command_type, but the checksum is incorrect! Expected checksum: %x, Got checksum: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_QUERY_MEMORY_DEUMP_INFO": {
+        "apiType": "index", 
+        "format": "[EXC][ELT] Query %MDHL_MEM_TYPE(type) to dump, result = %d!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_DUMP_MEMORY_DETAIL_INFO": {
+        "apiType": "index", 
+        "format": "[EXC][ELT] Start dump %MDHL_MEM_TYPE(type) 0X%x(address) 0X%x(length)!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "TST_EX_MSG_QUERY_SWLA_DETAIL_INFO": {
+        "apiType": "index", 
+        "format": "[EXC][ELT] Query SWLA dump  0X%x(address) 0X%x(length) 0X%x(ptr)!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {	
+      "SST_EXC_MPU_DUMP_PRINT_ENTER": {
+        "apiType": "index", 
+        "format":  "[EXC][COMMON] Enter ex_print_mpu_setting()",
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {	
+    "SST_EXC_MPU_DUMP_PRINT_EXIT": {
+        "apiType": "index", 
+        "format":  "[EXC][COMMON] Exit ex_print_mpu_setting()",
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {	
+    "SST_EXC_MPU_DUMP_MSG": {
+        "apiType": "index", 
+        "format":  "[EXC][COMMON] Start to print runtime MPU setting(before entering exception).",
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {	
+    "SST_EXC_MPU_DUMP_SEGMENT": {
+        "apiType": "index", 
+        "format":  "[EXC][COMMON][MPU] Segment %3d :RI=0x%x, WI=0x%x, XI=0x%x, CCA=0x%x.",
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {	
+    "SST_EXC_MPU_DUMP_REGION": {
+        "apiType": "index", 
+        "format":  "[EXC][COMMON][MPU] Region  %3d :baseAddr=0x%08x, SubRegionSize=0x%08x, Enable=0x%x, SubRegionCount=0x%x, RI=0x%x, WI=0x%x, XI=0x%x, CCA=0x%x.",
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {	
+    "SST_EXC_MPU_DUMP_MSG_DIFF": {
+        "apiType": "index", 
+        "format":  "[EXC][COMMON] Start to print difference of MPU setting between entering and leaving exception flow.",
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {	
+    "SST_EXC_MPU_DUMP_SEGMENT_DIFF": {
+        "apiType": "index", 
+        "format":  "[EXC][COMMON][MPU][Diff] Segment %3d :RI=0x%x, WI=0x%x, XI=0x%x, CCA=0x%x.",
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {	
+    "SST_EXC_MPU_DUMP_REGION_DIFF": {
+        "apiType": "index", 
+        "format":  "[EXC][COMMON][MPU][Diff] Region  %3d :baseAddr=0x%08x, SubRegionSize=0x%08x, Enable=0x%x, SubRegionCount=0x%x, RI=0x%x, WI=0x%x, XI=0x%x, CCA=0x%x.",
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+    "SST_ELT_NV_EDITOR_CHK_TRACE" : {
+	"format": "[@SST2ELT] file_idx: %d, access_id: %d, para: %d, result: %d",
+	"traceClass": "TRACE_INFO"
+    }
+    }  
+  ], 
+  "traceFamily": "PS", 
+  "userModule": "SST"
+}
diff --git a/mcu/service/sst/include/cc_ex_item.h b/mcu/service/sst/include/cc_ex_item.h
new file mode 100644
index 0000000..e1f66cd
--- /dev/null
+++ b/mcu/service/sst/include/cc_ex_item.h
@@ -0,0 +1,895 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   cc_ex_item.h
+ *
+ * Description:
+ * ------------
+ *  Header file for cross core exception handling
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _CC_EX_ITEM_H
+#define _CC_EX_ITEM_H
+
+#if !defined(__OFFLINE_EX_LOG_PARSER__)
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "kal_internal_def.h"
+#include "DVFS_drv_public.h"
+#else
+//NOTE: for exLogAnalyzer.exe only. Copy it here to avoid including DVFS_drv_public
+#define DVFS_DUMP_NUM 48   /* Note: This number should also sync to EE owner.(Kari Suvanto) */
+#endif /* __OFFLINE_EX_LOG_PARSER__ */
+#include "ex_item.h"
+#include "ex_public.h"
+#include "us_excep_hdlr_format.h"
+#include "md32_excep_hdlr.h"
+#include "vc_excep_hdlr_format.h"
+#if defined(__MD97__) || defined(__MD97P__)
+#include "ex_cs_excep_hdlr_format.h"
+#endif
+#include "busmpu.h"
+#include "drv_pcmon.h"
+#include "mpu_public.h"
+#include "sst_defs.h"
+
+/*******************************************************************************
+ * Compiler Option Definition
+ *******************************************************************************/
+
+
+/*******************************************************************************
+ * Constant Definition -  ex record overview
+ *******************************************************************************/
+/*  total: EX_CC_LOG_SIZE  */
+/***************************
+*      overview            *  =EX_CC_OVERVIEW_SIZE
+
+****************************  mcu main info total: EX_CORE_MAIN_SIZE
+*      exlog               *  =EX_CORE_SIZE
+
+****************************  us total: EX_USIP_SCQ_CORE_SIZE
+*      us hs status        *  =EX_USIP_HS_STATUS_SIZE
+*      us exlog            *  =EX_USIP_SCQ_CORE_SIZE
+
+****************************  md32 total: EX_MD32_CORE_SIZE
+*      md32 hs status      *  =EX_MD32_HS_STATUS_SIZE
+*      md32 exlog          *  =EX_MD32_CORE_SIZE
+
+****************************  sonic total: EX_SONIC_CORE_SIZE
+*      sonic hs status     *  =EX_SONIC_HS_STATUS_SIZE
+*      sonic exlog         *  =EX_SONIC_CORE_SIZE
+
+****************************  mcu minor info total: EX_CORE_MINOR_SIZE
+*      nested exlog        *  =EX_NESTED_LOG_SIZE
+*      pcmon               *  =EX_PCMON_SIZE
+*      nested pcmon        *  =EX_NESTED_PCMON_SIZE
+*      bus err             *  =EX_BUS_ERR_SIZE
+*      dsm info            *  =EX_DSM_SIZE
+*      reserved            *  =EX_MINOR_INFO_RESERVED_SIZE(216)
+*      step logging        *  =EX_STEP_LOG_SIZE
+
+
+****************************/
+//      EX_CC_LOG_SIZE          (7*1024)  //defined in ex_public.h
+
+#define EX_CC_OVERVIEW_SIZE     640
+#define EX_AFOUND_MSG_SIZE      1024
+
+
+//      EX_LOG_SIZE             2560      //2.5K //defined in ex_public.h - run out
+
+#define EX_USIP_SCQ_CORE_SIZE   (USIP_SCQ16_TOTAL_THREAD_NUM*100)
+#define EX_MD32_CORE_SIZE       100
+#if defined(__MD97__) || defined(__MD97P__)
+#define EX_SONIC_CORE_SIZE      (EX_SONIC_TOTAL_CORE_NUM*100)
+#else
+#define EX_SONIC_CORE_SIZE      0
+#endif
+#define EX_MCU_SYSINFO_SIZE     (EX_CC_LOG_SIZE-EX_AFOUND_MSG_SIZE-EX_CC_OVERVIEW_SIZE-EX_LOG_SIZE-EX_USIP_SCQ_CORE_SIZE-EX_MD32_CORE_SIZE-EX_SONIC_CORE_SIZE)
+
+
+#define EX_PCMON_SIZE           64
+#define EX_BUS_ERR_SIZE         16
+//#define EX_STEP_LOG_SIZE        (sizeof(EX_STEP_T)*TOTAL_VPE_COUNT)
+
+#define EX_USIP_HS_STATUS_SIZE      sizeof(kal_uint32)
+#define EX_MD32_HS_STATUS_SIZE      sizeof(kal_uint32)
+#if defined(__MD97__) || defined(__MD97P__)
+#define EX_SONIC_HS_STATUS_SIZE     sizeof(kal_uint32)
+#endif
+
+
+#define DSM_STATUS_COUNT        3
+#define EX_PROFILING_SET_COUNT  13
+#define EX_USIP_SCQ_CORE_USED_SIZE      (sizeof(USIP_SCQ_EXCEPTION_RECORD_T)+EX_USIP_HS_STATUS_SIZE)
+#define EX_MD32_CORE_USED_SIZE          (sizeof(MD32_ExceptionLog_T)        +EX_MD32_HS_STATUS_SIZE)
+#if defined(__MD97__) || defined(__MD97P__)
+#define EX_SONIC_CORE_USED_SIZE         (sizeof(EX_SONIC_EXCEPTION_RECORD_T)+EX_SONIC_HS_STATUS_SIZE)
+#endif
+
+
+/*************************  * SYNC TIME ***************************************/
+#define EX_OFFENDING_VPE_MORE_SYNC_TIME      (200000) // 0.2s
+#define EX_SYNC_DSP_FLOW_TIME               (5000000) // 5s
+#define EX_INT_SYNC_TIME                    (5000000) // 5s
+#define EX_US_SYNC_TIME                     (2000000) // 2s
+#define EX_MD32_SYNC_TIME                   (1000000) // 1s
+#if defined(__MD97__) || defined(__MD97P__)
+#define EX_SONIC_SYNC_TIME                  (2000000) // 2s
+#endif
+#define EX_SAP_SYNC_TIME                    (4000000) // 4s
+#define EX_OP_SYNC_TIME                     (1000000) // 1s
+/*******************************************************************************
+ * Enum Type Definition
+ *******************************************************************************/
+
+typedef enum ex_core_t
+{
+    EX_MCU             = 0,
+    EX_USIP0_0,
+    EX_USIP0_1,
+    EX_USIP1_0,
+    EX_USIP1_1,
+    EX_SCQ_0,
+    EX_SCQ_1,
+#if defined(__MD97__) || defined(__MD97P__)
+    EX_SCQ_2,
+    EX_SCQ_3,
+#endif
+    EX_RAKE,
+#if defined(__MD97__) || defined(__MD97P__)
+    EX_SONIC_M0,
+    EX_SONIC_V0,
+#endif
+    EX_CORE_AMOUNT,
+} EX_CORE_T;
+
+typedef enum ex_coretype_t
+{
+    EX_CORETYPE_MCU = 0,
+    EX_CORETYPE_USIP_SCQ,
+    EX_CORETYPE_MD32,
+#if defined(__MD97__) || defined(__MD97P__)
+    EX_CORETYPE_SONIC
+#endif
+#if !defined(__OFFLINE_EX_LOG_PARSER__) && !defined(_MSC_VER)
+} EX_CORETYPE_T;
+#else
+} EX_CORETYPE_T_FORMAT;
+typedef kal_uint8 EX_CORETYPE_T;
+#endif /*__OFFLINE_EX_LOG_PARSER__*/
+
+
+
+#if !defined(__OFFLINE_EX_LOG_PARSER__)
+typedef enum ex_flowstep_t
+{
+    /*mcu*/
+    EX_FLOWSTEP_INIT_BEGIN       = 0,
+    EX_FLOWSTEP_INIT_DONE,
+    EX_FLOWSTEP_MAINREASON_INIT_DONE,
+    EX_FLOWSTEP_COMM_DONE,
+    EX_FLOWSTEP_PROCESS_DONE,
+    EX_FLOWSTEP_REBOOT_DONE,
+    /*dsp*/
+    EX_FLOWSTEP_DSPINIT_BEGIN,
+    EX_FLOWSTEP_USIPINIT_DONE,
+    EX_FLOWSTEP_MD32INIT_DONE,
+#if defined(__MD97__) || defined(__MD97P__)
+    EX_FLOWSTEP_SONICINIT_DONE,
+#endif
+    EX_FLOWSTEP_DSPINIT_DONE,
+    /*stophw*/
+    EX_FLOWSTEP_STOPHW_BEGIN,
+    EX_FLOWSTEP_STOPHW_DONE,
+    EX_FLOWSTEP_END = EX_PROFILING_SET_COUNT,  /*15*/
+#if !defined(_MSC_VER)
+} EX_FLOWSTEP_T;
+#else
+} EX_FLOWSTEP_T_;
+typedef kal_uint8 EX_FLOWSTEP_T;
+#endif
+
+
+typedef enum ex_sync
+{
+    NEVER_SYNCED         = 0,
+    SYNC_SUCCESS         = 1,
+    SYNC_FAIL            = 2,
+    NO_NEED_TO_SYNC      = 3,
+    NESTED_SYNC          = 4,
+} EX_SYNC;
+
+#else
+#include "ex_item_types.h"
+#endif /*__OFFLINE_EX_LOG_PARSER__*/
+
+typedef enum ex_thin_modem_sync_pattern
+{
+    THIN_MODEM_EX_HS_AP_ENTER       = 0xAAAAAAAA,
+    THIN_MODEM_EX_HS_AP_DONE        = 0xBBBBBBBB,
+    THIN_MODEM_EX_HS_MD_ENTER       = 0xCCCCCCCC,
+    THIN_MODEM_EX_HS_MD_DONE        = 0xDDDDDDDD
+} EX_THIN_MODEM_SYNC_PATTERN;
+
+
+#if defined(__MTK_TARGET__) || defined(__OFFLINE_EX_LOG_PARSER__) || defined(KAL_ON_OSCAR)
+/*******************************************************************************
+ * Data Structure Definition
+ *******************************************************************************/
+PRAGMA_BEGIN_PACK_STRUCT
+/***************************** +Debug Structure+ *******************************/
+
+typedef struct _ex_brief_assertfail_t
+{
+    kal_char filepath[EX_ASSERTFAIL_FILEPATH_LEN];  /* length: 256 */
+    kal_uint32 linenumber;                          /* length: 4 */
+    kal_uint32 parameters[3];                       /* length: 12 */
+    kal_uint32 lr;                                  /* length: 4 */
+} EX_BRIEF_ASSERTFAIL_T;
+
+typedef struct _ex_brief_fatalerr_t
+{
+    kal_uint32  code1;
+    kal_uint32  code2;
+    kal_uint32  code3;
+    kal_char    offender[EX_FATALERR_ANALYSIS_OWNER_LEN];
+    kal_bool    is_cadefa_supported;
+    kal_bool    is_filename_supported;
+    kal_uint8   error_section;
+    kal_uint8   is_valid_dispatch_arg;
+    kal_uint8   pad[4];
+    kal_uint32  error_status;
+    kal_uint32  error_sp;
+    kal_uint32  error_pc;
+    kal_uint32  error_lr;
+    kal_uint32  error_address;
+    kal_uint32  error_cause;
+    kal_char    filename[sizeof(EX_BRIEF_ASSERTFAIL_T) - 52];
+} EX_BRIEF_FATALERR_T;
+
+typedef union
+{
+    EX_BRIEF_FATALERR_T fatalerr;
+    EX_BRIEF_ASSERTFAIL_T assert;
+} EX_MAINCONTENT_T;
+
+typedef struct _ex_brief_maininfo_t
+{
+    kal_uint16             ex_type;          /* offset: 0x, length:  2 */
+    EX_CORETYPE_T          ex_type_format;   //0=mcu, 1=usip|scq, 2=md32, 3=sonic
+    EX_MAINCONTENT_TYPE_T  maincontent_type; //0=assert, 1=fatal
+    kal_uint8              elm_status;
+    kal_uint8              system_info1;     //ex_offending_vpe_id
+    kal_uint8              system_info2;     //ex_offending_tc_id
+    kal_uint8              pad;
+    EX_MAINCONTENT_T content;
+} EX_BRIEF_MAININFO_T;
+
+typedef struct ex_step_t_s
+{
+    volatile kal_uint32 step;
+    volatile kal_uint32 timestamp;
+}EX_STEP_T;
+
+#define EX_MD32_CORE_NUM       1
+#define EX_USIP_CORE_NUM       (USIP_CORE_NUMBER*USIP_THREAD_NUMBER)// 4
+#define EX_SCQ_CORE_NUM        (SCQ16_MAXIMUM_NUM) // 2 or 4
+#if defined(__MD97__) || defined(__MD97P__)
+#  define EX_SONIC_CORE_NUM                 (EX_SONIC_TOTAL_CORE_NUM)// 2
+#  define EX_SONIC_OFFENDING_CORE_SIZE      (sizeof(kal_uint8))
+#else
+#  define EX_SONIC_CORE_NUM                 (0)
+#  define EX_SONIC_OFFENDING_CORE_SIZE      (0)
+#endif
+#define EX_CORE_NUM            (1+EX_USIP_CORE_NUM+EX_SCQ_CORE_NUM+EX_MD32_CORE_NUM+EX_SONIC_CORE_NUM) //mcu+usip*N+scq*N+RAKE+sonic*N
+#define EX_CORE_NAME_MAX_SIZE  11
+typedef struct _ex_main_reason_t
+{
+    kal_char    core_name[EX_CORE_NAME_MAX_SIZE];
+    kal_bool    is_offender;
+} EX_MAIN_REASON_T;
+
+#define EX_OVERVIEW_PAD_COMPENSATE_SIZE (\
+	/*sizeof(overview_verno)*/sizeof(kal_uint32) + \
+	/*sizeof(core_num)*/sizeof(kal_uint32) + \
+	/*sizeof(main_reason)*/sizeof(EX_MAIN_REASON_T)* EX_CORE_NUM +\
+	/*sizeof(info)*/sizeof(EX_BRIEF_MAININFO_T) +\
+	/*sizeof(mips_vpe_num)*/sizeof(kal_uint32) + \
+	/*sizeof(ex_steplog)*/sizeof(EX_STEP_T)* TOTAL_VPE_COUNT +\
+	/*sizeof(ect_status)*/sizeof(kal_uint32) + \
+	/*sizeof(afound_buffer_offset)*/sizeof(kal_uint32)+ \
+	/*sizeof(afound_buffer_size)*/sizeof(kal_uint32) + \
+	/*sizeof(usip_scq_offending_core)*/sizeof(kal_uint8) + \
+	/*sizeof(sonic_offending_core)*/EX_SONIC_OFFENDING_CORE_SIZE + \
+	/*sizeof(mcu_exception_count)*/sizeof(kal_uint8)* TOTAL_VPE_COUNT + \
+	/*sizeof(core_offset)*/sizeof(kal_uint32)* EX_CORE_NUM \
+	)
+
+typedef struct _ex_overview_t
+{
+    kal_uint32           overview_verno;                           // 4
+    kal_uint32           core_num;                                 // 4 //EX_CORE_NUM
+    EX_MAIN_REASON_T     main_reason[EX_CORE_NUM];                 // 96 = 12*EX_CORE_NUM
+    EX_BRIEF_MAININFO_T  info;                                     // 284
+    kal_uint32           mips_vpe_num;                             // 4
+    volatile EX_STEP_T   ex_steplog[TOTAL_VPE_COUNT];              // 48 = 8*6
+    kal_uint32           ect_status;                               // 4 //offending vpe
+    kal_uint32           afound_buffer_offset;
+    kal_uint32           afound_buffer_size;
+    kal_uint8            usip_scq_offending_core;                  // 1  usip+scq
+#if defined(__MD97__) || defined(__MD97P__)
+    kal_uint8            sonic_offending_core;                     // 1
+#endif
+    kal_uint8            mcu_exception_count[TOTAL_VPE_COUNT];     // 6
+    kal_uint8            pad[EX_CC_OVERVIEW_SIZE-EX_OVERVIEW_PAD_COMPENSATE_SIZE]; // 97:29 = 512-(4+4+96+284+4+48+4+1+6+32), before 97:  29 = 512-(4+4+96+284+4+48+4+1+6+32)
+    kal_uint32           core_offset[EX_CORE_NUM];                 // 32 = 4*8
+} EX_OVERVIEW_T;
+
+typedef struct ex_dsm_status_t_s
+{
+    kal_uint32 DSM_load_label;
+    kal_uint32 DSM_init_label;
+    kal_uint32 DSM_loading_label;
+    kal_uint32 DSM_unloading_label;
+}EX_DSM_T;
+
+typedef struct _ex_mculog_t
+{
+    EX_LOG_T                ex_log;
+} EX_MCULOG_T;
+
+typedef struct _ex_usiplog_t
+{
+    volatile kal_uint32                 ex_hs;
+    USIP_SCQ_EXCEPTION_RECORD_T         ex_log;
+    kal_uint32                          pad[(EX_USIP_SCQ_CORE_SIZE - EX_USIP_SCQ_CORE_USED_SIZE)/ sizeof(kal_uint32)];
+} EX_USLOG_T;
+
+typedef struct _ex_md32log_t
+{
+    volatile kal_uint32                 ex_hs;
+    MD32_ExceptionLog_T                 ex_log;
+#if !defined(__OFFLINE_EX_LOG_PARSER__) && !defined(_MSC_VER) //NOTE: this pad is currently zero sized and visual studio cannot handle it
+    kal_uint32                          pad[(EX_MD32_CORE_SIZE - EX_MD32_CORE_USED_SIZE)/ sizeof(kal_uint32)];
+#endif
+} EX_MD32LOG_T;
+
+#if defined(__MD97__) || defined(__MD97P__)
+typedef struct _ex_soniclog_t
+{
+    volatile kal_uint32                 ex_hs;
+    EX_SONIC_EXCEPTION_RECORD_T         ex_log;
+#if !defined(__OFFLINE_EX_LOG_PARSER__) && !defined(_MSC_VER) //NOTE: this pad is currently zero sized and visual studio cannot handle it
+    kal_uint32                          pad[(EX_SONIC_CORE_SIZE - EX_SONIC_CORE_USED_SIZE)/ sizeof(kal_uint32)];
+#endif
+} EX_SONICLOG_T;
+#endif
+
+typedef struct _ex_busmpu_t
+{
+    busmpu_iocu_vio_data ex_busmpu_iocu_err;
+    busmpu_irq_status ex_busmpu_irq_sts;
+#if defined(EMIMPU_MD2AP_INFODUMP_ENABLE)
+    emimpu_vio_info ex_emimpu_vio_dump;
+#else
+    kal_uint32 reserved[8]; //to keep struct size same
+#endif
+} EX_BUSMPU_T;
+
+#define PLL_INFO_NUM 48
+
+#define EX_MCU_SYSINFO_USED_SIZE ( \
+            sizeof(kal_uint32)*(EX_PROFILING_SET_COUNT) + \
+            sizeof(kal_uint32)*3 + \
+            sizeof(kal_uint32)*TOTAL_VPE_COUNT*2 + \
+            sizeof(EX_DSM_T) + \
+            sizeof(EX_NE_LOG_T) + \
+            sizeof(PDAMON_EX_RAW_T) + \
+            sizeof(PDAMON_NEX_RAW_T) + \
+            EX_BUS_ERR_SIZE + \
+            sizeof(EX_BUSMPU_T) + \
+            sizeof(kal_uint32)*(PLL_INFO_NUM) + \
+            sizeof(kal_uint32)*(DVFS_DUMP_NUM) + \
+            (sizeof(_MPU_REG)*NBR_CORE))
+
+typedef struct _ex_mcu_sysinfo_t
+{
+    kal_uint32              ex_profiling_timestamp[EX_PROFILING_SET_COUNT];
+    kal_uint32              ex_GLBTS;
+    kal_uint32              ex_sst_dc_offshoot_vpeid;
+    kal_uint32              ex_sst_hw_offshoot_vpeid;
+    kal_uint32              ex_ISR_Executing[TOTAL_VPE_COUNT]; //GSAL_GE_ISR_Executing
+    kal_uint32              ex_ect_status[TOTAL_VPE_COUNT];
+    EX_DSM_T                ex_dsm_status;
+    EX_NE_LOG_T             ex_nested_log;
+    PDAMON_EX_RAW_T         ex_pcmon;
+    PDAMON_NEX_RAW_T        ex_nested_pcmon;
+    kal_uint32              ex_buserr[EX_BUS_ERR_SIZE / sizeof(kal_uint32)];
+    EX_BUSMPU_T             ex_busmpuerr;
+    kal_uint32              ex_pll_info[PLL_INFO_NUM];
+    kal_uint32              ex_DVFS_data[DVFS_DUMP_NUM];
+    _MPU_REG                ex_mpu[NBR_CORE];
+    kal_uint32              pad[(EX_MCU_SYSINFO_SIZE - EX_MCU_SYSINFO_USED_SIZE)/ sizeof(kal_uint32)];
+} EX_MCU_SYSINFO_T;
+
+
+typedef struct ex_fulllog_t
+{
+    EX_OVERVIEW_T      overview;
+    char               afound[EX_AFOUND_MSG_SIZE];
+    EX_MCULOG_T        mcu;
+    EX_USLOG_T         usip_scq;
+    EX_MD32LOG_T       md32;
+#if defined(__MD97__) || defined(__MD97P__)
+    EX_SONICLOG_T      sonic;
+#endif
+    EX_MCU_SYSINFO_T   mcu_sysinfo;
+} EX_FULLLOG_T;
+
+typedef struct ex_dump_comm_t
+{
+    volatile kal_uint32 addr;
+    volatile kal_uint32 len;
+    volatile kal_uint32 op;
+} EX_DUMP_COMM_T;
+
+
+/***************************** -Debug Structure- *******************************/
+PRAGMA_END_PACK_STRUCT
+#endif /* __MTK_TARGET__ */
+/*******************************************************************************
+ * Global Definition
+ *******************************************************************************/
+
+/*******************************************************************************
+ * Globally Exported variables
+ *******************************************************************************/
+#if defined(__MTK_TARGET__)
+extern EX_FULLLOG_T                  *ex_fulllog_ptr;
+extern EX_LOG_T                      *ex_log_ptr;  // for OfflineSST
+extern USIP_SCQ_EXCEPTION_RECORD_T   *usip_scq_ex_log_ptr;
+extern MD32_ExceptionLog_T           *md32_ex_log_ptr;
+extern char			     *afound_ptr;
+#if defined(__MD97__) || defined(__MD97P__)
+extern EX_SONIC_EXCEPTION_RECORD_T   *sonic_ex_log_ptr;
+#endif
+extern EX_NE_LOG_T                   *ex_nested_log_ptr;
+extern PDAMON_EX_RAW_T               *ex_pcmon_ptr;
+extern PDAMON_NEX_RAW_T              *ex_nested_pcmon_ptr;
+extern kal_uint32                    *ex_buserr_ptr;
+extern EX_DSM_T                      *ex_dsm_ptr;
+extern EX_BUSMPU_T                   *ex_busmpuerr_ptr;
+extern kal_uint32                    *ex_pll_info_ptr;
+extern kal_uint32                    *ex_DVFS_data;
+extern _MPU_REG                      *ex_mpu_ptr;
+extern volatile kal_uint32           *ex_steplog_ptr;
+extern volatile kal_uint32           *ex_md32_hs_ptr;
+#if defined(__MD97__) || defined(__MD97P__)
+extern volatile kal_uint32           *ex_sonic_hs_ptr;
+#endif
+#endif /* __MTK_TARGET__ */
+ /*******************************************************************************
+ * Globally Exported functions
+ *******************************************************************************/
+extern kal_bool INT_IsEXT_CC_COMMDone();
+extern kal_bool SST_HandleDumpRegion(kal_uint32 **address, kal_uint32* length, kal_uint32* option);
+extern kal_uint32 ex_get_step_logging(kal_uint32 vpe, kal_bool bNested);
+extern void ex_unguard_l1core_tcm();
+extern kal_uint32 ex_get_value(kal_uint32* _ptr);
+extern void ex_init_overview();
+ extern void ex_init_usip();
+extern void ex_wait_init_usip();
+extern void ex_init_md32();
+extern void ex_wait_init_md32();
+#if defined (__HIF_CCCI_SUPPORT__) && defined(__CCCI_PRODUCT_TYPE_THIN_MODEM__)
+extern void ex_sync_with_thinmodem_sap();
+#endif
+#if defined(__MD97__) || defined(__MD97P__)
+extern void ex_init_sonic();
+extern void ex_wait_init_sonic();
+#endif
+extern kal_bool ex_is_ap_triggered_cross_core_error();
+extern kal_uint32 ex_GetECTStatus();
+extern void ex_output_usip_log();
+extern void ex_output_md32_log();
+extern void ex_output_sonic_log();
+extern void ex_usip_cadefa();
+extern void ex_md32_cadefa();
+#if defined(__MD97__) || defined(__MD97P__)
+extern void ex_sonic_cadefa();
+#endif
+extern void ex_detect_dsp_version_mismatched();
+extern void ex_query_cc_ex_reason(kal_uint32 ect_status, kal_char** reason, kal_char* local_sys_info_str, kal_uint32 len);
+extern void ex_query_ap_ex_reason(kal_uint32 code1, kal_uint32 code2, kal_char** reason);
+extern void ex_ondemand_op();
+extern void ex_init_dc_offshoot();
+extern void ex_init_hw_offshoot();
+extern void ex_init_mcu_sysinfo();
+extern void ex_set_value(kal_uint32* _ptr, kal_uint32 value);
+extern kal_uint32 ex_get_value(kal_uint32* _ptr);
+#if defined(__MTK_TARGET__)
+extern void ex_set_flowstep(EX_FLOWSTEP_T step);
+#endif /* __MTK_TARGET__ */
+extern kal_char* ex_get_dsp_build_date_time(EX_CORE_T dsp_core);
+extern kal_char* ex_get_usipscq_build_date_time(EX_CORE_T dsp_core);
+extern kal_char* ex_get_rake_build_date_time(EX_CORE_T dsp_core);
+extern kal_char* ex_get_sonic_build_date_time(EX_CORE_T dsp_core);
+#endif /* _CC_EX_ITEM_H */
+
+
diff --git a/mcu/service/sst/include/coresonic_access_ctrl.h b/mcu/service/sst/include/coresonic_access_ctrl.h
new file mode 100644
index 0000000..f07db52
--- /dev/null
+++ b/mcu/service/sst/include/coresonic_access_ctrl.h
@@ -0,0 +1,100 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   coresonic_access_ctrl.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This Module defines the HW initialization.
+ *
+ * Author:
+ * -------
+ *   
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *
+ *
+ *
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/*******************************************************************************
+ * Include header files.
+ *******************************************************************************/
+#ifndef CORESONIC_ACCESS_CTRL_H
+#define CORESONIC_ACCESS_CTRL_H
+
+#include "reg_base.h"
+
+#if   defined(MT6763)|| defined(MT6739) || defined(MT6771)
+#else
+    #error  "Please define chip comple option for Coresonic PM, ICM access control address"
+#endif
+
+#define DSPBT_C2CRF_EN_OFFSET               (0x34)
+
+#define MASK_PM_ICM_ACCESS_EN               (0xF)
+#define PM_ICM_ACCESS_EN                    (0x5)
+#define PM_ICM_ACCESS_DIS                   (0xF)
+
+#define WRONG_CORESONIC_C2CRF_CTRL_STATE    (1)
+#define WRONG_CORESONIC_PM_ICM_CTRL_STATE   (2)
+
+// DSPBT_C2CRF register bits definition
+#define C2CRF_EN                            (0x1)
+
+typedef struct
+{
+    kal_uint32          m_dspbt_c2crf_en;
+    kal_uint32          m_dspbt_pm_icm_access;
+}coresonic_access_ctrl_addr;
+
+#endif  /* CORESONIC_ACCESS_CTRL_H */
+
diff --git a/mcu/service/sst/include/coresonic_boot.h b/mcu/service/sst/include/coresonic_boot.h
new file mode 100644
index 0000000..e8091a0
--- /dev/null
+++ b/mcu/service/sst/include/coresonic_boot.h
@@ -0,0 +1,227 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   coresonic_boot.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This Module defines the HW initialization.
+ *
+ * Author:
+ * -------
+ *   
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *
+ *
+ *
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/*******************************************************************************
+ * Include header files.
+ *******************************************************************************/
+#ifndef CORESONIC_BOOT_H
+#define CORESONIC_BOOT_H
+
+#include "coresonic_boot_public.h"
+#include "coresonic_access_ctrl_public.h"
+
+
+typedef enum
+{
+    PM=0,
+    ICM,
+    MAX_MEM_TYPE
+}DSP_MEM_TYPE;
+
+typedef enum
+{
+    SIGNAL_LOW=0,
+    SIGNAL_HIGH
+}DSP_COMP_SIGNAL;
+
+typedef enum
+{
+    CORENAME=0,
+    PROJECT,
+    FLAVOR,
+	LABEL,
+	BUILD_TIME
+}DSP_VERSION_INFO;
+
+#define CORESONIC_HRD_BEGIN_MAGIC_NUM1      (0x32524448)
+#define CORESONIC_HRD_BEGIN_MAGIC_NUM2      (0x4E474542)
+#define CORESONIC_HRD_END_MAGIC_NUM1        (0x32524448)
+#define CORESONIC_HRD_END_MAGIC_NUM2        (0x44424545)
+
+#define MAX_KEY_NUM                         (4)
+
+// error code definition
+#define EXE_OK                              (0)
+#define READ_CORESONIC_HDR_FAILED           (1)
+#define READ_CORESONIC_PM_FAILED            (2)
+#define READ_CORESONIC_ICM_FAILED           (3)
+#define BOOT_CORESONIC_FAILED               (4)
+#define WRONG_CORESONIC_HRD_CONTENT         (5)
+#define RESET_DEFAULT_VALUE_TEST_FAILED     (6)
+#define WRONG_PM_ICM_LENGTH                 (7)
+#define WRONG_BOOT_INC_SIZE                 (8)
+#define WRONG_PM_WRITE_CNT                  (9)
+#define WRONG_ICM_WRITE_CNT                 (10)
+#define CHECK_PM_CRC32_FAILED               (11)
+#define CHECK_ICM_CRC32_FAILED              (12)
+#define BT_COMP_SIGNAL_SHOULD_BE_LOW        (13)
+#define BT_COMP_SIGNAL_SHOULD_BE_HIGH       (14)
+#define SET_CORESONIC_BOOT_START_FAILED     (15)
+//#define WRONG_CORESONIC_C2CRF_CTRL_STATE    (16)
+//#define WRONG_CORESONIC_PM_ICM_CTRL_STATE   (17)
+
+#define HW_READ(ptr) (*(ptr)) 
+#define HW_WRITE(ptr,data) (*(ptr) = (data))
+
+typedef struct
+{
+    kal_uint32          m_pm_addr;
+    kal_uint32          m_icm_addr;
+    kal_uint32          m_dspbt_ctrl;
+    kal_uint32          m_dspbt_status;
+    kal_uint32          m_dspbt_pm_length;
+    kal_uint32          m_dspbt_icm_length;
+    kal_uint32          m_dspbt_pm_icm_length;
+    kal_uint32          m_dspbt_inc_size;
+    kal_uint32          m_dspbt_pm_crc32;
+    kal_uint32          m_dspbt_icm_crc32;
+    kal_uint32          m_dspbt_pm_read_cnt;
+    kal_uint32          m_dspbt_pm_write_cnt;
+    kal_uint32          m_dspbt_icm_read_cnt;
+    kal_uint32          m_dspbt_icm_write_cnt;
+    kal_uint32          m_dspbt_dynamic_dl;
+//    kal_uint32          m_dspbt_c2crf_en;
+//    kal_uint32          m_dspbt_pm_icm_access;
+    kal_uint32         m_cidd_offset;
+    kal_uint32         m_cidd_length;
+    kal_uint32         m_cidd_crc;
+    kal_uint32         m_IsVersionMismatched;
+}coresonic_reg_addr;
+
+typedef struct
+{
+    kal_uint32          m_icm_base;
+    kal_uint32          m_struct_addr;
+}coresonic_dsp_version;
+
+typedef struct
+{
+    kal_uint32          m_core_id;
+    kal_uint32          m_pm_length;
+    kal_uint32          m_pm_checksum;
+    kal_uint32          m_icm_length;
+    kal_uint32          m_icm_checksum;
+}coresonic_dsp_hdr;
+
+typedef struct
+{
+    kal_uint32          m_begin_magic_num1;
+    kal_uint32          m_begin_magic_num2;
+    kal_uint32          m_attr;
+    kal_uint32          m_coresonic_core_num;
+    coresonic_dsp_hdr   m_coresonic_core[MAX_CORESONIC_NUM];
+    kal_uint32          m_end_magic_num1;
+    kal_uint32          m_end_magic_num2;
+}coresonic_hdr;
+
+typedef struct
+{
+    kal_uint32          m_cidd_core_id;
+    kal_uint32          m_cidd_pm_length;
+    kal_uint32          m_cidd_pm_checksum;
+    kal_uint32          m_cidd_pm_offset;
+    kal_uint32          m_cidd_icm_length;
+    kal_uint32          m_cidd_icm_checksum;
+    kal_uint32          m_cidd_icm_offset;
+}cidd_coresonic_dsp_hdr;
+
+typedef struct
+{
+    kal_uint32              m_begin_magic_num1;
+    kal_uint32              m_begin_magic_num2;
+    kal_uint32              m_attr;
+    kal_uint32              m_coresonic_core_num;
+    coresonic_dsp_hdr       m_coresonic_core[MAX_CORESONIC_NUM];
+    cidd_coresonic_dsp_hdr  m_cidd_coresonic_core[MAX_CORESONIC_NUM];
+    kal_uint32              m_end_magic_num1;
+    kal_uint32              m_end_magic_num2;
+}coresonic_hdr_suprt_cidd;
+
+typedef struct dma_gpd_s {
+    kal_uint8 hwo:1;
+    kal_uint8 bdp:1;
+    kal_uint8 bps:1;
+    kal_uint8 resv1:4;
+    kal_uint8 ioc:1;
+    kal_uint8 cksum;
+    kal_uint16 alowbufLen:16;
+    kal_uint32 nextPtr;
+    kal_uint32 bufPtr;
+    kal_uint16 bufLen;
+    kal_uint8 extLen;   // TGPD : ExtensionLength, RGPD : TransferredDataBufferLength[23:16]
+    kal_uint8 bufLen2;  // TGPD : DataBufferLength[23:16], RGPD : AllowDataBufferLength[23:16]
+} dma_gpd_t;
+
+typedef enum
+{
+    NONE=0,
+    XOR_CIPHER_ENABLED=1,
+    XOR_CHECKSUM_ENABLED=2,
+    SW_CIDD_ENABLED=4
+}coresonic_image_attr;
+
+#endif  /* CORESONIC_BOOT_H */
diff --git a/mcu/service/sst/include/coresonic_hw.h b/mcu/service/sst/include/coresonic_hw.h
new file mode 100644
index 0000000..ba828a8
--- /dev/null
+++ b/mcu/service/sst/include/coresonic_hw.h
@@ -0,0 +1,129 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   coresonic_hw.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This Module defines the HW initialization.
+ *
+ * Author:
+ * -------
+ *   
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *
+ *
+ *
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/*******************************************************************************
+ * Include header files.
+ *******************************************************************************/
+#ifndef CORESONIC_HW_H
+#define CORESONIC_HW_H
+
+// DSPBT register offset definition
+#define DSPBT_CTRL_OFFSET                   (0x0)
+#define DSPBT_STATUS_OFFSET                 (0x4)
+#define DSPBT_PM_LENGTH_OFFSET              (0x8)
+#define DSPBT_ICM_LENGTH_OFFSET             (0xC)
+#define DSPBT_PM_ICM_LENGTH_OFFSET          (0x10)
+#define DSPBT_INC_SIZE_OFFSET               (0x14)
+#define DSPBT_PM_CRC32_OFFSET               (0x18)
+#define DSPBT_ICM_CRC32_OFFSET              (0x1C)
+#define DSPBT_PM_READ_CNT_OFFSET            (0x20)
+#define DSPBT_PM_WRITE_CNT_OFFSET           (0x24)
+#define DSPBT_ICM_READ_CNT_OFFSET           (0x28)
+#define DSPBT_ICM_WRITE_CNT_OFFSET          (0x2C)
+#define DSPBT_DYNAMIC_DL_OFFSET             (0x30)
+#define DSPBT_C2CRF_EN_OFFSET               (0x34)
+
+// DSPBT_CTRL register bits definition
+#define MASK_DSPBT_EN                       (0x1)
+#define DSPBT_EN                            (0x1)
+
+#define MASK_CIPHER_EN                      (0x2)
+#define CIPHER_EN                           (0x2)
+#define CIPHER_DIS                          (0x0)
+
+#define MASK_CIPHER_KEY_LEVEL               (0x4)
+#define BASIC_CIPHER                        (0x0)
+#define ADV_CIPHER                          (0x4)
+
+#define MASK_CIPHER_KEY_SEL                 (0x18)
+#define CIPHER_KEY0                         (0)
+#define CIPHER_KEY1                         (0x8)
+#define CIPHER_KEY2                         (0x10)
+#define CIPHER_KEY3                         (0x18)
+
+#define MASK_BOOT_MODE                      (0x20)
+#define AUTO_MODE                           (0)
+#define MANAUAL_MODE                        (0x20)
+
+#define MASK_MANUAL_BOOT_CONTROL            (0x40)
+#define MANUAL_BOOT_CONTROL                 (0x40)
+
+// DSPBT_STATUS register bits definition
+#define BOOT_START                          (0x1)
+#define BOOT_DONE                           (0x2)
+
+// DSPBT_DYNAMIC_DL register bits definition
+#define DYNDL_EN                            (0x1)
+
+// COSIM download by testbench
+#if   defined(MT6763) || defined(MT6771)
+#else
+	#error  "Please define COSIM_TESTBENCH_SYNC_DLSTART and  COSIM_TESTBENCH_SYNC_DLDONE."
+#endif
+
+#endif  /* CORESONIC_HW_H */
+
diff --git a/mcu/service/sst/include/cs_excep_hdlr.h b/mcu/service/sst/include/cs_excep_hdlr.h
new file mode 100644
index 0000000..09180c0
--- /dev/null
+++ b/mcu/service/sst/include/cs_excep_hdlr.h
@@ -0,0 +1,210 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   dsp_excep_hdlr.h
+ *
+ * Project:
+ * --------
+ *   UMOLY
+ *
+ * Description:
+ * ------------
+ *   This file provides typedefs and definiton for PS index trace.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+ 
+#ifndef __CS_EXCEP_HDLR_H__
+#define __CS_EXCEP_HDLR_H__
+
+#include "cs_ex_hdr_public.h"
+#include "cs_excep_hdlr_format.h"
+
+#if !defined(MT6763) && !defined(MT6739) && !defined(MT6771)
+#include "kal_general_types.h"
+#include "csdebug_pctrace_api.h"
+
+// ----------------- macro definition ---------------
+#define CS_PC_TRACE_SIZE  (64*2)
+
+#define CS_EXCEPTION_SYNC_TIME (0x100000)    // 100 subframes
+/* sync. information with DSP core */
+#define CS_EXCEPTION_EVENT_CTI (0x1) // !!CAUTION!! MUST sync. with DSP side CTI event bit definition
+
+#define CS_EXCEPTION_PC_TRACE  (0x52544350)
+
+#define CS_EXCEPTION_INFO_STR_LEN  (128)
+
+/* MEMORY DUMP INFO */
+#define CS_EXCEPTION_ADDR_MAP_ICC     (0x20636369)
+
+#define CS_EXCEPTION_ADDR_MAP_IMC     (0x20636D69)
+
+#define CS_EXCEPTION_ADDR_MAP_MPC     (0x2063706D)
+
+#define CS_EXCEPTION_ADDR_MAP_ICM     (0x204D4349)
+
+#define CS_EXCEPTION_ADDR_MAP_PM      (0x20204D50)
+
+#define CS_EXCEPTION_ADDR_MAP_CRF     (0x20465243)
+
+#define CS_EXCEPTION_ADDR_MAP_CSIF    (0x46495343)
+	
+#define CS_EXCEPTION_ADDR_MAP_SSIF0   (0x30305353)
+
+#define CS_EXCEPTION_ADDR_MAP_SSIF1   (0x31305353)
+
+#define CS_EXCEPTION_ADDR_MAP_SSIF2   (0x32305353)
+
+#define CS_EXCEPTION_ADDR_MAP_HEADER  (0x594D454D)
+
+#define CS_EXCEPTION_ADDR_MAP_END     (0x20444E45)
+
+#define CS_EXCEPTION_MEMY_DUMP_SIZE   (14) // except PM
+
+#define CS_EXCEPTION_CTI_ERROR_CODE   (0x0)
+
+// ----------------- Sync step logging Definition -------------------
+#define CS_SYNC_BEGIN    (0xABCD0001)
+
+#define CS_SYNC_ICC      (0xABCD00AA)
+#define CS_SYNC_IMC      (0xABCD00BB)
+#define CS_SYNC_MPC      (0xABCD00CC)
+
+#define CS_SYNC_END      (0xABCDABCD)
+
+// ------------------ bus status dump --------------------------------
+#define DBG_MMUBUS_STATUS_CONFIG    (8)
+#define DBG_MMUBUS_SEL_OFFSET       (0x20)
+#define DBG_MMUBUS_STAT_OFFSET      (0x90)
+
+#define DBG_SMI_DUMP_CNT            (3)
+#define DBG_SMI_DUMP_SIZE           (16)
+#define DBG_SMI_DUMP_START_OFFSET   (0x400)
+
+#define L1_BASE_MADDR_MMUSYS_BASE   (0xFE712000)
+#define L1_BASE_MADDR_MMUSMI_BASE   (0xFE716000)
+
+#define DBG_MMUBUS_NAME             (0x20554D4D)
+#define DBG_SMI_NAME                (0x20494D53)
+
+
+// ----------------- data type Definition -------------------
+typedef struct {
+    unsigned long dump_header;
+    //unsigned long pctrace_dump_data[CS_CORE_NUMBER][CS_PC_TRACE_SIZE];
+    PCTRACE_BUFFER  pctrace_dump_data;
+} DSP_ASSERT_PC_TRACE_DUMP_T;
+
+typedef enum
+{
+	CoreSonic_ICC_FAIL_BIT_MASK = (1<<0),
+	CoreSonic_IMC_FAIL_BIT_MASK  = (1<<1),
+	CoreSonic_MPC_FAIL_BIT_MASK  = (1<<2)
+} CoreSonic_EX_CORE_BIT_MASK_TYPE;
+
+
+typedef struct {
+    unsigned long core_name;
+    unsigned long addr_name;
+    unsigned long addr_base;
+    unsigned long addr_size;
+} DSP_MEMORY_ADDR_SET_T;
+
+typedef struct {
+	unsigned long mem_header;
+	DSP_MEMORY_ADDR_SET_T mem_addr_set[CS_EXCEPTION_MEMY_DUMP_SIZE];
+    DSP_MEMORY_ADDR_SET_T mem_pm_addr_set[CS_CORE_NUMBER];
+	unsigned long mem_end;
+	
+} DSP_MEMORY_ADDR_DUMP_T;
+
+typedef struct {
+    
+    unsigned long dbg_mmubus_name;
+    unsigned long dbg_mmubus_status_rdata[DBG_MMUBUS_STATUS_CONFIG];
+    
+    unsigned long dbg_smi_name;
+    unsigned long dbg_smi_register_status[DBG_SMI_DUMP_CNT][DBG_SMI_DUMP_SIZE];
+    
+} DSP_DBG_BUS_STATUS_T;
+#endif
+
+// ----------------- function declaration -------------------
+extern void INT_GetSonicBBMemoryInfo(void);
+
+extern void INT_GetSonicDumpMemoryInfo(kal_uint32 **info, kal_uint32 *count);
+
+extern kal_bool INT_SyncSonicExceptionInfo(void);
+
+extern void INT_GetSonicExceptionRecord(CORESONIC_EXCEPTION_RECORD_T *record);
+
+extern kal_bool INT_EnableSonicMemoryDump(void);
+
+extern void INT_GetSonicBBMemoryInfo(void);
+
+
+extern kal_bool Sonic_IsSyncFinished(void);
+
+extern kal_bool Sonic_RequestEMIFlush(void);
+
+extern kal_bool Sonic_AckEMIFlushFinish(void);
+
+extern void Exception_Bring_Up_Init_ICC(void);
+
+extern void Exception_Bring_Up_Init_IMC(void);
+
+extern void Exception_Bring_Up_Init_MPC(void);
+
+extern kal_char* INT_GetCSCoreName(kal_uint32 core_index);
+
+extern kal_uint32 INT_GetSonicFailCore(void);
+extern kal_uint32 INT_GetSonicFailCoreIndex(void);
+
+#endif /* __CS_EXCEP_HDLR_H__ */
diff --git a/mcu/service/sst/include/cs_excep_hdlr_format.h b/mcu/service/sst/include/cs_excep_hdlr_format.h
new file mode 100644
index 0000000..d7defec
--- /dev/null
+++ b/mcu/service/sst/include/cs_excep_hdlr_format.h
@@ -0,0 +1,132 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   dsp_excep_hdlr.h
+ *
+ * Project:
+ * --------
+ *   UMOLY
+ *
+ * Description:
+ * ------------
+ *   This file provides typedefs and definiton for PS index trace.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+ 
+#ifndef __CS_EXCEP_HDLR_FORMAT_H__
+#define __CS_EXCEP_HDLR_FORMAT_H__
+
+// ----------------- macro definition ---------------
+#define CS_CORE_NUMBER    (3)
+// ----------------- data type Definition -------------------
+typedef enum {
+  CS_EXCEPTION_ASSERTION = 0x45584300,
+  CS_EXCEPTION_FATAL_ERROR,
+  CS_EXCEPTION_CTI_EVENT,
+  CS_EXCEPTION_UNKNOWN
+} CS_EXCEPTION_TYPE_T;
+
+#if defined(__GNUC__)
+typedef struct __attribute__((packed)) {
+#else
+#pragma pack(1)
+typedef struct {
+#endif // __GNUC__
+  unsigned int line_num;
+  unsigned int para1;
+  unsigned int para2;
+  unsigned int para3;
+  unsigned char file_name[64];
+} ASSERTION_INFO_T;
+#if !defined(__GNUC__)
+#pragma pack()
+#endif // __GNUC__
+
+#if defined(__GNUC__)
+typedef struct __attribute__((packed)) {
+#else
+#pragma pack(1)
+typedef struct {
+#endif // __GNUC__
+  unsigned int error_status;
+  unsigned int error_pc;
+  unsigned int error_lr;
+  unsigned int error_address;
+  unsigned int error_code1;
+  unsigned int error_code2;
+} FATAL_ERROR_INFO_T;
+#if !defined(__GNUC__)
+#pragma pack()
+#endif // __GNUC__
+
+#if defined(__GNUC__)
+typedef struct __attribute__((packed)) {
+#else
+#pragma pack(1)
+typedef struct {
+#endif
+  CS_EXCEPTION_TYPE_T except_type;
+  unsigned int except_stat;
+  union {
+    ASSERTION_INFO_T   assert;
+    FATAL_ERROR_INFO_T fatal;
+  }except_content;
+} CORESONIC_EXCEPTION_INFO_T;
+#if !defined(__GNUC__)
+#pragma pack()
+#endif // __GNUC__
+
+typedef struct {
+    unsigned int              core_num;
+    CORESONIC_EXCEPTION_INFO_T core_error[CS_CORE_NUMBER]; 
+} CORESONIC_EXCEPTION_RECORD_T;
+
+
+#endif /* __CS_EXCEP_HDLR_FORMAT_H__ */
\ No newline at end of file
diff --git a/mcu/service/sst/include/cs_trc.h b/mcu/service/sst/include/cs_trc.h
new file mode 100644
index 0000000..e60d91d
--- /dev/null
+++ b/mcu/service/sst/include/cs_trc.h
@@ -0,0 +1,108 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   cs_trc.h
+ *
+ * Project:
+ * --------
+ *   UMOLY_Software
+ *
+ * Description:
+ * ------------
+ *   This file contains definitions for trace on target.
+ *
+ *
+ * Author:
+ * -------
+ *   
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef _CS_TRC_H
+#define _CS_TRC_H  
+
+    TRC_MSG(CS_EX_LOG_ASSERT,             "[SONIC(%s)] Assert fail: %s -%d 0x%x, 0x%x, 0x%x")
+    TRC_MSG(CS_EX_LOG_FATAL,              "[SONIC(%s)] Fatal error : code1:0x%x  code2:0x%x ,Caller Address: 0x%x Product: %s Version: %s BuildTime: %s")
+    TRC_MSG(CS_EX_LOG_EXC,                "[SONIC(%s)] EXCEPTION : Error_type: %s  pc:0x%x  lr:0x%x  addr:0x%x  status:0x%x")
+    
+    TRC_MSG(CS_EX_LOG_PAS_DETAIL_FATAL,   "[SONIC(%s)] Fatal error Detail : [Passive] error_type: %s  code1:0x%x  code2:0x%x  pc:0x%x  address:0x%x  status:0x%x")
+    TRC_MSG(CS_EX_LOG_POS_DETAIL_FATAL,   "[SONIC(%s)] Fatal error Detail : [Positive] code1:0x%x  code2:0x%x  File: %s  Line: %d  Para: 0x%x")
+    
+    TRC_MSG(CS_EX_LOG_DEFAULT,            "[SONIC(%s)] Fatal error: CTI!! (0x%x)")
+	TRC_MSG(CS_EX_LOG_BIN_BUILD_INFO,     "[SONIC(%s)] Project: %s Flavor: %s BuildTime: %s Label: %s")
+	
+    TRC_MSG(CS_EX_LOG_REQEMI_SYNC_FAIL,   "[DSP-Coresonic] [RequestEMIFlush] SYNC flow is not finished!!! (0x%x, 0x%x, 0x%x, 0x%x)")
+    TRC_MSG(CS_EX_LOG_ACTEMI_SYNC_FAIL,   "[DSP-Coresonic] [AckEMIFlushFinish] SYNC flow is not finished!!! (0x%x, 0x%x, 0x%x, 0x%x)")
+    TRC_MSG(CS_EX_LOG_DUMP_SYNC_FAIL,     "[DSP-Coresonic] [INT_DumpSonicExceptionInfo] SYNC flow is not finished!!! (0x%x, 0x%x, 0x%x, 0x%x)")
+    
+    TRC_MSG(CS_EX_LOG_SYNC_HS_STATUS,     "[DSP-Coresonic] [INT_SyncSonicExceptionInfo] CSIF HS result: booted: 0x%x, csif_rdy: 0x%x, hs time : 0x%x")
+	TRC_MSG(CS_EX_LOG_REQEMI_HS_STATUS,   "[DSP-Coresonic] [RequestEMIFlush] CSIF HS result: booted: 0x%x, csif_rdy: 0x%x, hs time : 0x%x")
+	TRC_MSG(CS_EX_LOG_ACTEMI_HS_STATUS,   "[DSP-Coresonic] [AckEMIFlushFinish] CSIF HS result: booted: 0x%x, pm_wait: 0x%x, hs time : 0x%x")
+	TRC_MSG(CS_EX_LOG_REQEMI_HS_FAIL,     "[SONIC(%s)] [RequestEMIFlush] CSIF HS fail (0x%x), and log may be lost")
+	TRC_MSG(CS_EX_LOG_ACTEMI_HS_FAIL,     "[SONIC(%s)] [AckEMIFlushFinish] CSIF HS fail (0x%x), and log may be lost, sleep_cmd: 0x%x")
+	
+    TRC_MSG(CS_EX_LOG_SYNC_FAIL_WARNING,  "Modem Warning: [DSP-Coresonic] WARNING: SYNC flow is not finished!!! (0x%x, 0x%x, 0x%x)")
+	
+#endif //_CS_TRC_H
+
diff --git a/mcu/service/sst/include/dsp_boot_internal.h b/mcu/service/sst/include/dsp_boot_internal.h
new file mode 100644
index 0000000..1c35b44
--- /dev/null
+++ b/mcu/service/sst/include/dsp_boot_internal.h
@@ -0,0 +1,96 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   dsp_boot_internal.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This Module defines the HW initialization.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *
+ *
+ *
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef DSP_BOOT_INTERNAL_H
+#define DSP_BOOT_INTERNAL_H
+#include "dsp_boot.h"
+
+/* MD32 */
+extern kal_int32 MD32_Init();
+extern kal_int32 MD32_Load(DSP_TYPE md32_type);
+extern kal_int32 MD32_Ungate(DSP_TYPE md32_type);
+
+/* SonicCore */
+extern kal_int32 SC_Init();
+extern kal_int32 SC_Load(DSP_TYPE sc_type);
+extern kal_int32 SC_Ungate(DSP_TYPE sc_type);
+
+kal_int32 (*dsp_init[DSP_TYPE_END/DSP_TYPE_INTERVAL])(void) = { \
+    MD32_Init, \
+    SC_Init \
+};
+
+kal_int32 (*dsp_load[DSP_TYPE_END/DSP_TYPE_INTERVAL])(DSP_TYPE) = { \
+    MD32_Load, \
+    SC_Load \
+};
+
+kal_int32 (*dsp_ungate[DSP_TYPE_END/DSP_TYPE_INTERVAL])(DSP_TYPE) = { \
+    MD32_Ungate, \
+    SC_Ungate \
+};
+
+#endif
\ No newline at end of file
diff --git a/mcu/service/sst/include/dsp_cache.h b/mcu/service/sst/include/dsp_cache.h
new file mode 100644
index 0000000..cd5f60c
--- /dev/null
+++ b/mcu/service/sst/include/dsp_cache.h
@@ -0,0 +1,97 @@
+#ifndef __SVC_EX_USIP_CACHE_DUMP_H__
+#define __SVC_EX_USIP_CACHE_DUMP_H__
+
+#include "kal_general_types.h"
+#include "reg_base.h"
+#include "dsp_cache_public.h"
+
+/*******************************************************************************
+  * USIP APB Definition
+  *******************************************************************************/
+
+#if defined(__MD97__)
+    #define USIP0_APB_BASE                    BASE_MADDR_USIP0_0_USIP0
+    #define USIP1_APB_BASE                    BASE_MADDR_USIP1_0_USIP1
+    #define USIP_APB_DBG_EN_OFFSET            0x0
+    #define USIP_APB_MODE_SEL_OFFSET          0x4
+    #define USIP_APB_DBG_INST_OFFSET          0x10
+    #define USIP_APB_DBG_EXECUTE_OFFSET       0x14
+    #define USIP_APB_DBG_WRITE_ADDR_OFFSET    0x18
+    #define USIP_APB_DBG_WRITE_OFFSET         0x1c
+    #define USIP_APB_DBG_STATUS_OFFSET        0x20
+
+    #define USIP_APB_DBG_ATTACH_INST          0x900
+    #define USIP_APB_DBG_REQ_INST             0x811
+    #define USIP_APB_DBG_STATUS_INST          0x803
+    #define USIP_APB_DBG_ADDR_INST            0x801
+    #define USIP_APB_DBG_PM_LOAD_INST         0x840
+    #define USIP_APB_DBG_INSTR_INST           0x802
+    #define USIP_APB_DBG_RESUME_INST          0x812
+
+    #define USIP_CACHE_ALIGN                  0x20
+#elif defined(__MD97P__)
+    #define USIP0_APB_BASE                    BASE_MADDR_USIP0_USIP0
+    #define USIP1_APB_BASE                    BASE_MADDR_USIP1_USIP1
+    #define USIP_APB_DBG_EN_OFFSET            0x0
+    #define USIP_APB_MODE_SEL_OFFSET          0x4
+    #define USIP_APB_DBG_INST_OFFSET          0x10
+    #define USIP_APB_DBG_EXECUTE_OFFSET       0x14
+    #define USIP_APB_DBG_WRITE_ADDR_OFFSET    0x18
+    #define USIP_APB_DBG_WRITE_OFFSET         0x1c
+    #define USIP_APB_DBG_STATUS_OFFSET        0x20
+
+    #define USIP_APB_DBG_ATTACH_INST          0x900
+    #define USIP_APB_DBG_REQ_INST             0x811
+    #define USIP_APB_DBG_STATUS_INST          0x803
+    #define USIP_APB_DBG_ADDR_INST            0x801
+    #define USIP_APB_DBG_PM_LOAD_INST         0x840
+    #define USIP_APB_DBG_INSTR_INST           0x802
+    #define USIP_APB_DBG_RESUME_INST          0x812
+
+    #define USIP_CACHE_ALIGN                  0x20
+#else
+    #error "undefined platform"
+#endif 
+
+/*******************************************************************************
+ * Enum 
+ *******************************************************************************/
+typedef enum {
+	EX_IABT_NONE = 0xA0000000,
+	EX_READ_USIP_IABT_PC_DONE = 0xA0000001,
+	EX_READ_USIP_IABT_PATTERN_DONE = 0xA0000010,
+	EX_ENABLE_USIP_DBG_MODE_GET_ICACHE_CONTENT_START = 0xA0000020,
+	EX_ENABLE_USIP_DBG_MODE_START = 0xA0000030,
+	EX_ENABLE_USIP_DBG_MODE_DONE = 0xA0000040,
+	EX_USIP_ICAHCE_READ_START = 0xA0000050,
+	EX_USIP_ICAHCE_READ_DONE = 0xA0000060,
+	EX_USIP_RESUME_DONE = 0xA0000070
+} EX_USIP_ICACHE_RELATED_Step_Logging_t;
+
+/*******************************************************************************
+ * Macro 
+ *******************************************************************************/
+#define EX_USIP_ICACHE_LOGGING_SYNC_TIMEOUT  2000000
+#define EX_USIP_ICACHE_LOGGING_STEP_SET(sts)  ex_usip_icache_logging_step = (sts)
+
+
+#if defined(__MD97__) && defined(__MTK_TARGET__)
+
+#define MCORE_CLKCTRL_ADDR  0xA40A0040
+#define VCORE_CLKCTRL_ADDR  0xA50A0040
+
+#define MCORE_DCACHE_0_CLK_ON  0x10
+#define MCORE_DCACHE_1_CLK_ON  0x20
+#define MCORE_DCACHE_2_CLK_ON  0x40
+#define MCORE_DCACHE_3_CLK_ON  0x80
+
+#define VCORE_DCACHE_0_CLK_ON  0x1
+#define VCORE_DCACHE_1_CLK_ON  0x2
+#define VCORE_DCACHE_2_CLK_ON  0x4
+#define VCORE_DCACHE_3_CLK_ON  0x8
+
+extern void nr_bb_reg_init(void);
+
+#endif //defined(__MD97__) && defined(__MTK_TARGET__)
+
+#endif
diff --git a/mcu/service/sst/include/dsp_cipher.h b/mcu/service/sst/include/dsp_cipher.h
new file mode 100644
index 0000000..a51b0ae
--- /dev/null
+++ b/mcu/service/sst/include/dsp_cipher.h
@@ -0,0 +1,93 @@
+#ifndef DSP_CIPHER_H
+#define DSP_CIPHER_H
+
+#include "kal_public_api.h"
+#include "sync_data.h"
+#include "reg_base.h"
+#define DSP_CIPHER_REG(ptr)  (*(volatile kal_uint32*)(ptr))
+#define CIPHER_MAGIC		 0xABCDABCD
+
+#if defined(MT6763)|| defined(MT6739) || defined(MT6771) || defined(MT6295M) || defined(MT6765) || defined(MT6761) || defined(MT3967) || defined(MT6779) || defined(MT6297) || defined(MT6885) || defined(MT6873) ||defined(MT6853)  || defined(CHIP10992) || defined(MT6833) || defined(MT6877) || defined(__MD97P__)
+	//rake - DE: Ethan Qian (Petrus_rakesys_global_con), shijie wu
+	#define MD32_RAKE_GLOBAL_CON    BASE_MADDR_RAKESYS_GLOBAL_CON
+	#define MD32_RAKE_PM_CRC         (0x50)
+	#define MD32_RAKE_DM_CRC         (0x54)
+
+	#if defined(MT6763)|| defined(MT6739) || defined(MT6771) || defined(MT6295M) || defined(MT6765) || defined(MT6761) || defined(MT3967) || defined(MT6779) 
+		#define MD32_MDRXAO_MEM_CONFIG  BASE_MADDR_MODEML1_AO_MDRX_P2P_TX
+		#define SCQ_GLOBAL_CON_base   	BASE_MADDR_BRAM_SCQ_GLOBAL_CON
+	#elif defined(MT6297) || defined(MT6885)  || defined(MT6873) || defined(MT6853) || defined(CHIP10992) || defined(MT6833) || defined(MT6877) || defined(__MD97P__)
+		// AOCR - DE: Vincent Hu (MT6297_mdrxao_config), mercury: matthew yin
+		#define MD32_MDRXAO_MEM_CONFIG  BASE_MADDR_MODEML1_AO_U_MDRXAO_CONFIG
+		
+		// scq16 - DE: Playpony (MT6297_md32scq_global_con), mercury: PJ HSU
+		#define SCQ_GLOBAL_CON_base   	BASE_MADDR_INR0_SCQ_GLOBAL_CON
+		
+		// sonic-mCore - Alex Tang
+		#if defined(MT6297)
+			#define MCORE_AO_CR_base   		BASE_MADDR_MCOREPERI_INFRA_TO_MCORE_PAR_AO_CR
+		#elif defined(MT6885) || defined(MT6873) || defined(MT6853) || defined(CHIP10992) || defined(MT6833) || defined(MT6877)
+			#define MCORE_AO_CR_base   		BASE_MADDR_MODEML1_AO_U_MCORE_PAR_AO_CR
+		#endif
+		
+		// sonic-vCore
+		#define VCORE_AO_CR_base   		BASE_MADDR_VCOREAO_VCOREHRAM_PAR_AO_CR
+		
+		// sonic
+		#define MCORE_CIPHER_CFG  	0x0
+		#define MCORE_CIPHER_LOCK_CFG   0x4
+		#define VCORE_CIPHER_CFG  	0x58
+		#define VCORE_CIPHER_LOCK_CFG   0x5C
+		#define CIPHER_KEY_SEL_OFFSET	0x4
+		#define CIPHER_EN_MASK		0x1
+	#else
+		#error "need to define address for new chip"
+	#endif
+
+	// scq16 - DE: Playpony (MT6297_md32scq_global_con), mercury: PJ HSU
+	#define SCQ_PM_CRC32_OFFSET   0x20
+	#define SCQ_DM_CRC32_OFFSET   0x24
+	// AOCR - DE: Vincent Hu (MT6297_mdrxao_config), mercury: matthew yin
+	#define MD32_RAKE_PM_CIPHER_EN   	0xB0
+	#define MD32_RAKE_PM_CIPHER_LOCK 	0xB4
+	#define MD32_SCQ_PM_CIPHER_EN    	0xC0
+	#define MD32_SCQ_PM_CIPHER_LOCK  	0xC4
+
+#else
+	#error "need to define address for new chip"
+#endif
+
+
+// rake
+extern void set_rake_pm_checksum(kal_uint32 pm_chksum);
+extern void set_rake_dm_checksum(kal_uint32 dm_chksum);
+extern kal_uint32 get_rake_pm_checksum();
+extern kal_uint32 get_rake_dm_checksum();
+extern void set_rake_cipher_en();
+extern void set_rake_cipher_lock();
+extern kal_uint32 get_rake_cipher_en();
+extern kal_uint32 get_rake_cipher_lock();
+extern void rake_cipher_en_check();
+
+// scq16
+extern void set_scq16_pm_checksum(kal_uint32 pm_chksum);
+extern void set_scq16_dm_checksum(kal_uint32 dm_chksum);
+extern kal_uint32 get_scq16_pm_checksum();
+extern kal_uint32 get_scq16_dm_checksum();
+extern void set_scq16_cipher_en();
+extern void set_scq16_cipher_lock();
+extern kal_uint32 get_scq16_cipher_en();
+extern kal_uint32 get_scq16_cipher_lock();
+extern void scq16_cipher_en_check();
+
+// sonic
+extern void set_mcore_cipher_en(kal_uint32 en_val, kal_uint32 key_sel);
+extern void set_mcore_cipher_lock();
+extern kal_uint32 get_mcore_cipher_en();
+extern kal_uint32 get_mcore_cipher_key();
+extern void set_vcore_cipher_en(kal_uint32 en_val, kal_uint32 key_sel);
+extern void set_vcore_cipher_lock();
+extern kal_uint32 get_vcore_cipher_en();
+extern kal_uint32 get_vcore_cipher_key();
+
+#endif  /* DSP_CIPHER_H */
diff --git a/mcu/service/sst/include/dsp_control.h b/mcu/service/sst/include/dsp_control.h
new file mode 100644
index 0000000..f32128d
--- /dev/null
+++ b/mcu/service/sst/include/dsp_control.h
@@ -0,0 +1,401 @@
+#ifndef _DSP_CONTROL_H_
+#define _DSP_CONTROL_H_
+
+#if defined(__MD97__) || defined(__MD97P__)
+
+#include "kal_public_api.h"
+#include "dsp_control_public.h"
+#include "dsp_module_based_api_public.h"
+#include "usip_api_public.h"
+#include "rake_api_public.h"
+#include "reg_base.h"
+
+#include "dsp_header_define_cuif_inner_brp.h"
+#include "dsp_header_define_cuif_fec_wbrp.h"
+#include "dsp_header_define_cuif_speech.h"
+#include "dsp_header_define_cmif.h"
+
+/************************************/
+/************* Common ***************/
+/************************************/
+/***** Function Utility *****/
+typedef enum{
+    DSP_CTRL_FALSE,
+    DSP_CTRL_TRUE
+} DSP_CTRL_FALSE_TRUE;
+
+typedef struct{
+    kal_uint32 usip_pc;
+    kal_uint32 usip_status;
+    kal_uint32 usip_tbuf_pointer;
+    kal_uint32 usip_halt;
+} DSP_CTRL_PWR_CHECK_MEMBER;
+
+/***** Pattern Macro *****/
+#define DSP_DEACTIVE_DONE                           0x62933926
+#define DSP_DEACTIVE_INIT                           0x0
+#define ALL_USER_ARE_DEACTIVE                       DSP_CTRL_FALSE
+#define DSP_CTRL_ENABLE_CORE_INIT_VALUE             0xECECECEC
+#define DUTY_USER_INIT_PATTERN                      0x10101010
+#define FIRSTBOOT_CHECK_CUIF_CONNECT_CNT_PATTERN    0x1F
+#define API_CALL_STATUS_INIT_PATTERN                0x0
+
+// uSIP debug ctrl(SW/HW CLK)
+#define USIP_TH0_PERI_CK_DIS                0x4
+#define USIP_TH0_FORCE_CK_DIS               0xC
+#define USIP_TH0_PERI_CK                    0x1
+#define USIP_TH0_FORCE_CK                   0xFF
+#define USIP_TH0_PERI_CK_SW_MODE_REG        *(kal_uint32*)(BASE_MADDR_USIP_CONFG + USIP_TH0_PERI_CK_DIS)
+#define USIP_TH0_FORCE_CK_SW_MODE_REG       *(kal_uint32*)(BASE_MADDR_USIP_CONFG + USIP_TH0_FORCE_CK_DIS)
+
+/***** DCM IDLE MASK*****/
+#define USIP_MASK_L1_DCM_IDLE               0x48
+#define USIP_DCM_MASK                       0x793 
+#define USIP_DCM_MASK_REG                   *(kal_uint32*)(BASE_MADDR_USIP_CONFG + USIP_MASK_L1_DCM_IDLE)
+
+/***** HW Signal Access Macro *****/
+#define USIP_STATUS_CG_CHECK_MASK           0x00000001
+#define USIP_STATUS_WAITE_CHECK_MASK        0x000F0000
+#define USIP_STATUS_PWR_CHECK_BIT_OFFSET    0x00000100
+
+// SCq16 PWR CTRL COMMON
+#define BASE_SCQ16_0_CR                     BASE_MADDR_BRAM_SCQ0_VU_CR
+#define BASE_SCQ16_1_CR                     BASE_MADDR_BRAM_SCQ1_VU_CR
+#define SCQ16_MD32_WAITE_OFFSET             0x24
+#define SCQ16_CORE_FETCH_OFFSET             0x0
+
+// SCq16_0 PWR CTRL
+#define SCQ16_0_MD32_WAITE_ADDR             ((volatile kal_uint32*)(BASE_SCQ16_0_CR + SCQ16_MD32_WAITE_OFFSET))
+#define SCQ16_0_MD32_WAITE                  *((volatile kal_uint32*)(BASE_SCQ16_0_CR + SCQ16_MD32_WAITE_OFFSET))
+#define SCQ16_0_CORE_FETCH                  *((volatile kal_uint32*)(BASE_SCQ16_0_CR + SCQ16_CORE_FETCH_OFFSET))
+
+// SCq16_1 PWR CTRL
+#define SCQ16_1_MD32_WAITE_ADDR             ((volatile kal_uint32*)(BASE_SCQ16_1_CR + SCQ16_MD32_WAITE_OFFSET))
+#define SCQ16_1_MD32_WAITE                  *((volatile kal_uint32*)(BASE_SCQ16_1_CR + SCQ16_MD32_WAITE_OFFSET))
+#define SCQ16_1_CORE_FETCH                  *((volatile kal_uint32*)(BASE_SCQ16_1_CR + SCQ16_CORE_FETCH_OFFSET))
+
+// uSIP PWR CTRL COMMON
+#define USIP_MON_PC_OFFSET                  0x20010
+#define USIP_MON_TBUF_WPTR_OFFSET           0x20014
+#define USIP_STATUS_OFFSET                  0x20018
+
+// uSIP0 PWR CTRL
+#define USIP0_MON_PC_ADDR                   ((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP_INT_DBG + USIP_MON_PC_OFFSET))
+#define USIP0_MON_PC                        *((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP_INT_DBG + USIP_MON_PC_OFFSET))
+#define USIP0_PWR_CTRL_CHECK_ADDR           ((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP_INT_DBG + USIP_STATUS_OFFSET))
+#define USIP0_PWR_CTRL_CHECK                *((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP_INT_DBG + USIP_STATUS_OFFSET))
+
+#define USIP0_MON_TBUF_WPTR_ADDR            ((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP_INT_DBG + USIP_MON_TBUF_WPTR_OFFSET))
+#define USIP0_MON_TBUF_WPTR                 *((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP_INT_DBG + USIP_MON_TBUF_WPTR_OFFSET))
+
+// uSIP1 PWR CTRL
+#define USIP1_MON_PC_ADDR                   ((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP1_INT_DBG + USIP_MON_PC_OFFSET))
+#define USIP1_MON_PC                        *((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP1_INT_DBG + USIP_MON_PC_OFFSET))
+#define USIP1_PWR_CTRL_CHECK_ADDR           ((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP1_INT_DBG + USIP_STATUS_OFFSET))
+#define USIP1_PWR_CTRL_CHECK                *((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP1_INT_DBG + USIP_STATUS_OFFSET))
+
+#define USIP1_MON_TBUF_WPTR_ADDR            ((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP1_INT_DBG + USIP_MON_TBUF_WPTR_OFFSET))
+#define USIP1_MON_TBUF_WPTR                 *((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP1_INT_DBG + USIP_MON_TBUF_WPTR_OFFSET))
+
+// RAKE BOOTSLAVE
+#define RAKE_BOOTSLAVE_OFFSET               0xC
+#define RAKE_BOOTSLAVE_ADDR                 ((volatile kal_uint32*)(BASE_MADDR_RAKESYS_PERICTRL + RAKE_BOOTSLAVE_OFFSET))
+#define RAKE_BOOTSLAVE                      *((volatile kal_uint32*)(BASE_MADDR_RAKESYS_PERICTRL + RAKE_BOOTSLAVE_OFFSET))
+
+// USIP sram type setting
+
+#define USIP_SRAM_TYPE_ADDR                 ((volatile kal_uint32*)(BASE_MADDR_MDPERI_MDSYS_CONFIG_ADR_IF))
+#define USIP_SRAM_TYPE                      *((volatile kal_uint32*)(BASE_MADDR_MDPERI_MDSYS_CONFIG_ADR_IF))
+#define USIP_SRAM_TYPE_MASK                 0x3
+
+
+//SCQ sram type setting
+#define SCQ_SRAM_TYPE_OFFSET                0x4
+#define SCQ_SRAM_TYPE_ADDR                  ((volatile kal_uint32*)(BASE_MADDR_MODEML1_AO_MDRX_P2P_TX + SCQ_SRAM_TYPE_OFFSET))
+#define SCQ_SRAM_TYPE                       *((volatile kal_uint32*)(BASE_MADDR_MODEML1_AO_MDRX_P2P_TX + SCQ_SRAM_TYPE_OFFSET))
+#define SCQ_SRAM_TYPE_MASK                  0x7FF
+
+//RAKE sram type setting
+#define RAKE_SRAM_TYPE_OFFSET               0x10
+#define RAKE_SRAM_TYPE_ADDR                 ((volatile kal_uint32*)(BASE_MADDR_MODEML1_AO_MDRX_P2P_TX + RAKE_SRAM_TYPE_OFFSET))
+#define RAKE_SRAM_TYPE                      *((volatile kal_uint32*)(BASE_MADDR_MODEML1_AO_MDRX_P2P_TX + RAKE_SRAM_TYPE_OFFSET))
+#define RAKE_SRAM_TYPE_MASK                 0xFF
+/***** Function Macro *****/
+
+/***** Enum *****/
+typedef enum{
+    DSP_CTRL_ABORT,
+    DSP_CTRL_DORMANT
+} DSP_CTRL_IRQ_TYPE;
+
+typedef enum{
+    DSP_CTRL_ACTIVATE_ACTION                = 0x0,
+    DSP_CTRL_ACTIVATE_ACTION_AFTER_HWITC    = 0x1,
+    DSP_CTRL_ACTIVATE_CHECK_ACTION          = 0x4,
+    DSP_CTRL_DEACTIVATE_ACTION              = 0x8,
+    DSP_CTRL_DEACTIVATE_ACTION_AFTER_HWITC  = 0x9,
+    DSP_CTRL_DEACTIVATE_CHECK_ACTION        = 0xC,
+    DSP_CTRL_ACTION_NUM                     = 0x4
+} DSP_CTRL_ACTION_CODE;
+
+#define DSP_CTRL_ACTIVATE_ACTION_BIT            (1 << DSP_CTRL_ACTIVATE_ACTION)
+#define DSP_CTRL_ACTIVATE_CHECK_ACTION_BIT      (1 << DSP_CTRL_ACTIVATE_CHECK_ACTION)
+#define DSP_CTRL_DEACTIVATE_ACTION_BIT          (1 << DSP_CTRL_DEACTIVATE_ACTION)
+#define DSP_CTRL_DEACTIVATE_CHECK_ACTION_BIT    (1 << DSP_CTRL_DEACTIVATE_CHECK_ACTION)
+
+
+#define USIP_TH0_PERI_CK_EN_OFFSET              (0x0)
+#define USIP_TH0_PERI_CK_DIS_OFFSET             (0x4)
+#define USIP_TH0_FORCE_CK_EN_OFFSET             (0x8)
+#define USIP_TH0_FORCE_CK_DIS_OFFSET            (0xC)
+
+
+/************************************/
+/************* uSIP *****************/
+/************************************/
+
+/*****cosim only API****/
+void usip_boot(void);
+void usip_power_aware(void);
+void usip_peripheral_clock_enable(kal_uint32);
+void usip_peripheral_clock_disable(kal_uint32);
+void usip_peripheral_clock_force_enable(kal_uint32);
+void usip_peripheral_clock_force_disable(kal_uint32);
+
+DSP_CONTROL_STATUS usip0_thread0_boot_done_check(void);
+DSP_CONTROL_STATUS usip0_thread1_boot_done_check(void);
+DSP_CONTROL_STATUS usip1_thread0_boot_done_check(void);
+
+void rake_ungate(void);
+DSP_CONTROL_STATUS rake_boot_done_check(void);
+
+
+
+/************************************/
+/************* RAKE *****************/
+/************************************/
+#define RAKE_CMIF_BASE_ADDR BASE_MADDR_RAKESYS_CMIF
+#define RAKE_WFI_MASK_OFFSET 0x4
+
+/***** Common API *****/
+
+
+
+
+/************************************/
+/********* module-based APIs ********/
+/************************************/
+#undef L1_MODULE_REGISTER
+#define L1_MODULE_REGISTER(name, wfi, firmware, cb) extern void cb(void);
+
+    #include "L1_module_registration.h"
+
+#undef L1_MODULE_REGISTER
+
+void usip_activate_by_module(DSP_CDIF_CORE_ENUM, L1_MODULE_REGISTRATION, kal_uint32);
+void rake_activate_by_module(L1_MODULE_REGISTRATION, kal_uint32);
+DSP_CONTROL_STATUS usip_activate_done_check_by_module(DSP_CDIF_CORE_ENUM, L1_MODULE_REGISTRATION);
+DSP_CONTROL_STATUS rake_activate_done_check_by_module(L1_MODULE_REGISTRATION);
+void usip_deactivate_by_module(DSP_CDIF_CORE_ENUM, L1_MODULE_REGISTRATION, kal_uint32);
+void rake_deactivate_by_module(L1_MODULE_REGISTRATION, kal_uint32);
+DSP_CONTROL_STATUS usip_deactivate_done_check_by_module(DSP_CDIF_CORE_ENUM, L1_MODULE_REGISTRATION);
+DSP_CONTROL_STATUS rake_deactivate_done_check_by_module(L1_MODULE_REGISTRATION);
+DSP_CONTROL_IDLE_FLAG_STATUS usip_check_idle_flag_by_module(DSP_CDIF_CORE_ENUM, DSP_FIRMWARE_REGISTRATION);
+DSP_CONTROL_IDLE_FLAG_STATUS rake_check_idle_flag_by_module(DSP_CDIF_CORE_ENUM, DSP_FIRMWARE_REGISTRATION);
+void execute_deactivate_irq_cb(L1_MODULE_REGISTRATION);
+
+void dsp_firstboot_activate_by_module(kal_uint32);
+void dsp_activate_by_module(kal_uint32);
+DSP_CONTROL_STATUS dsp_activate_done_check_by_module(kal_uint32);
+void dsp_deactivate_by_module(kal_uint32);
+DSP_CONTROL_STATUS dsp_deactivate_done_check_by_module(kal_uint32);
+kal_uint32 dsp_check_idle_flag_by_module(kal_uint32);
+kal_uint32 dsp_check_idle_flag_by_firmware(kal_uint32);
+
+#else //defined(__MD97__) || defined(__MD97P__)
+/************************************__MD95__*********************************/
+
+#include "kal_public_api.h"
+#include "dsp_control_public.h"
+#include "usip_api_public.h"
+#include "rake_api_public.h"
+#include "reg_base.h"
+
+#include "dsp_header_define_cuif_inner_brp.h"
+#include "dsp_header_define_cuif_fec_wbrp.h"
+#include "dsp_header_define_cuif_speech.h"
+#include "dsp_header_define_cmif.h"
+
+/************************************/
+/************* Common ***************/
+/************************************/
+/***** Function Utility *****/
+typedef enum{
+    DSP_CTRL_FALSE,
+    DSP_CTRL_TRUE
+} DSP_CTRL_FALSE_TRUE;
+
+typedef struct{
+    kal_uint32 usip_pc;
+    kal_uint32 usip_status;
+    kal_uint32 usip_tbuf_pointer;
+    kal_uint32 usip_halt;
+} DSP_CTRL_PWR_CHECK_MEMBER;
+
+/***** Pattern Macro *****/
+#define DSP_DEACTIVE_DONE                           0x62933926
+#define DSP_DEACTIVE_INIT                           0x0
+#define ALL_USER_ARE_DEACTIVE                       DSP_CTRL_FALSE
+#define DSP_CTRL_ENABLE_CORE_INIT_VALUE             0xECECECEC
+#define DUTY_USER_INIT_PATTERN                      0x10101010
+#define FIRSTBOOT_CHECK_CUIF_CONNECT_CNT_PATTERN    0x1F
+#define API_CALL_STATUS_INIT_PATTERN                0x0
+
+// uSIP debug ctrl(SW/HW CLK)
+#define USIP_TH0_PERI_CK_DIS                0x4
+#define USIP_TH0_FORCE_CK_DIS               0xC
+#define USIP_TH0_FORCE_CK_EN                0x8
+#define USIP_TH0_PERI_CK                    0x1
+#define USIP_TH0_FORCE_CK                   0xFF
+#define USIP_DISABLE_ALL_FORCE_ON_CK        0xFFFF
+#define USIP_ENABLE_FORCE_ON_CK             0xFC1C
+#define USIP_TH0_PERI_CK_SW_MODE_REG        *(kal_uint32*)(BASE_MADDR_USIP_CONFG + USIP_TH0_PERI_CK_DIS)
+#define USIP_TH0_FORCE_CK_SW_MODE_REG       *(kal_uint32*)(BASE_MADDR_USIP_CONFG + USIP_TH0_FORCE_CK_DIS)
+#define USIP_ENABLE_FORCE_ON_CK_REG         *(kal_uint32*)(BASE_MADDR_USIP_CONFG + USIP_TH0_FORCE_CK_EN)
+
+/***** DCM IDLE MASK*****/
+#define USIP_MASK_L1_DCM_IDLE               0x48
+#if defined(__MD93__)
+#define USIP_DCM_MASK                       0x19f
+#elif defined(__MD95__)
+#define USIP_DCM_MASK                       0x193
+#else
+#error "not support chip!! Please porting for it!!"
+#endif
+#define USIP_DCM_MASK_REG                   *(kal_uint32*)(BASE_MADDR_USIP_CONFG + USIP_MASK_L1_DCM_IDLE)
+
+/***** HW Signal Access Macro *****/
+#define USIP_STATUS_CG_CHECK_MASK           0x00000001
+#define USIP_STATUS_WAITE_CHECK_MASK        0x000F0000
+#define USIP_STATUS_PWR_CHECK_BIT_OFFSET    0x00000100
+
+// SCq16 PWR CTRL COMMON
+#define BASE_SCQ16_0_CR                     BASE_MADDR_BRAM_SCQ0_VU_CR
+#define BASE_SCQ16_1_CR                     BASE_MADDR_BRAM_SCQ1_VU_CR
+#define SCQ16_MD32_WAITE_OFFSET             0x24
+#define SCQ16_CORE_FETCH_OFFSET             0x0
+
+// SCq16_0 PWR CTRL
+#define SCQ16_0_MD32_WAITE_ADDR             ((volatile kal_uint32*)(BASE_SCQ16_0_CR + SCQ16_MD32_WAITE_OFFSET))
+#define SCQ16_0_MD32_WAITE                  *((volatile kal_uint32*)(BASE_SCQ16_0_CR + SCQ16_MD32_WAITE_OFFSET))
+#define SCQ16_0_CORE_FETCH                  *((volatile kal_uint32*)(BASE_SCQ16_0_CR + SCQ16_CORE_FETCH_OFFSET))
+
+// SCq16_1 PWR CTRL
+#define SCQ16_1_MD32_WAITE_ADDR             ((volatile kal_uint32*)(BASE_SCQ16_1_CR + SCQ16_MD32_WAITE_OFFSET))
+#define SCQ16_1_MD32_WAITE                  *((volatile kal_uint32*)(BASE_SCQ16_1_CR + SCQ16_MD32_WAITE_OFFSET))
+#define SCQ16_1_CORE_FETCH                  *((volatile kal_uint32*)(BASE_SCQ16_1_CR + SCQ16_CORE_FETCH_OFFSET))
+
+// uSIP PWR CTRL COMMON
+#define USIP_MON_PC_OFFSET                  0x20010
+#define USIP_MON_TBUF_WPTR_OFFSET           0x20014
+#define USIP_STATUS_OFFSET                  0x20018
+
+// uSIP0 PWR CTRL
+#define USIP0_MON_PC_ADDR                   ((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP_INT_DBG + USIP_MON_PC_OFFSET))
+#define USIP0_MON_PC                        *((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP_INT_DBG + USIP_MON_PC_OFFSET))
+#define USIP0_PWR_CTRL_CHECK_ADDR           ((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP_INT_DBG + USIP_STATUS_OFFSET))
+#define USIP0_PWR_CTRL_CHECK                *((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP_INT_DBG + USIP_STATUS_OFFSET))
+
+#define USIP0_MON_TBUF_WPTR_ADDR            ((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP_INT_DBG + USIP_MON_TBUF_WPTR_OFFSET))
+#define USIP0_MON_TBUF_WPTR                 *((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP_INT_DBG + USIP_MON_TBUF_WPTR_OFFSET))
+
+// uSIP1 PWR CTRL
+#define USIP1_MON_PC_ADDR                   ((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP1_INT_DBG + USIP_MON_PC_OFFSET))
+#define USIP1_MON_PC                        *((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP1_INT_DBG + USIP_MON_PC_OFFSET))
+#define USIP1_PWR_CTRL_CHECK_ADDR           ((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP1_INT_DBG + USIP_STATUS_OFFSET))
+#define USIP1_PWR_CTRL_CHECK                *((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP1_INT_DBG + USIP_STATUS_OFFSET))
+
+#define USIP1_MON_TBUF_WPTR_ADDR            ((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP1_INT_DBG + USIP_MON_TBUF_WPTR_OFFSET))
+#define USIP1_MON_TBUF_WPTR                 *((volatile kal_uint32*)(BASE_MADDR_MDMCU_USIP1_INT_DBG + USIP_MON_TBUF_WPTR_OFFSET))
+
+// RAKE BOOTSLAVE
+#define RAKE_BOOTSLAVE_OFFSET               0xC
+#define RAKE_BOOTSLAVE_ADDR                 ((volatile kal_uint32*)(BASE_MADDR_RAKESYS_PERICTRL + RAKE_BOOTSLAVE_OFFSET))
+#define RAKE_BOOTSLAVE                      *((volatile kal_uint32*)(BASE_MADDR_RAKESYS_PERICTRL + RAKE_BOOTSLAVE_OFFSET))
+
+// USIP sram type setting
+#define USIP_SRAM_TYPE_ADDR                 ((volatile kal_uint32*)(BASE_MADDR_MDPERI_USIP0_MEM_CONFIG))
+#define USIP_SRAM_TYPE                      *((volatile kal_uint32*)(BASE_MADDR_MDPERI_USIP0_MEM_CONFIG))
+#define USIP_SRAM_TYPE_MASK                 0x3
+
+//SCQ sram type setting
+#define SCQ_SRAM_TYPE_OFFSET                0x4
+#define SCQ_SRAM_TYPE_ADDR                  ((volatile kal_uint32*)(BASE_MADDR_MODEML1_AO_MDRX_P2P_TX + SCQ_SRAM_TYPE_OFFSET))
+#define SCQ_SRAM_TYPE                       *((volatile kal_uint32*)(BASE_MADDR_MODEML1_AO_MDRX_P2P_TX + SCQ_SRAM_TYPE_OFFSET))
+#define SCQ_SRAM_TYPE_MASK                  0x7FF
+
+//RAKE sram type setting
+#define RAKE_SRAM_TYPE_OFFSET               0x10
+#define RAKE_SRAM_TYPE_ADDR                 ((volatile kal_uint32*)(BASE_MADDR_MODEML1_AO_MDRX_P2P_TX + RAKE_SRAM_TYPE_OFFSET))
+#define RAKE_SRAM_TYPE                      *((volatile kal_uint32*)(BASE_MADDR_MODEML1_AO_MDRX_P2P_TX + RAKE_SRAM_TYPE_OFFSET))
+#define RAKE_SRAM_TYPE_MASK                 0xFF
+/***** Function Macro *****/
+
+/***** Enum *****/
+typedef enum{
+    DSP_CTRL_ABORT,
+    DSP_CTRL_DORMANT
+} DSP_CTRL_IRQ_TYPE;
+
+typedef enum{
+    DSP_CTRL_ACTIVATE_ACTION                = 0x0,
+    DSP_CTRL_ACTIVATE_ACTION_AFTER_HWITC    = 0x1,
+    DSP_CTRL_ACTIVATE_CHECK_ACTION          = 0x4,
+    DSP_CTRL_DEACTIVATE_ACTION              = 0x8,
+    DSP_CTRL_DEACTIVATE_ACTION_AFTER_HWITC  = 0x9,
+    DSP_CTRL_DEACTIVATE_CHECK_ACTION        = 0xC,
+    DSP_CTRL_ACTION_NUM                     = 0x4
+} DSP_CTRL_ACTION_CODE;
+
+#define DSP_CTRL_ACTIVATE_ACTION_BIT            (1 << DSP_CTRL_ACTIVATE_ACTION)
+#define DSP_CTRL_ACTIVATE_CHECK_ACTION_BIT      (1 << DSP_CTRL_ACTIVATE_CHECK_ACTION)
+#define DSP_CTRL_DEACTIVATE_ACTION_BIT          (1 << DSP_CTRL_DEACTIVATE_ACTION)
+#define DSP_CTRL_DEACTIVATE_CHECK_ACTION_BIT    (1 << DSP_CTRL_DEACTIVATE_CHECK_ACTION)
+
+/************************************/
+/************* uSIP *****************/
+/************************************/
+
+/***** Common API *****/
+DSP_CONTROL_IDLE_FLAG_STATUS usip_check_idle_flag(DSP_CDIF_CORE_ENUM, kal_uint32);
+
+/***** Activate Relatives *****/
+void usip_activate(DSP_CDIF_CORE_ENUM, kal_uint32);
+
+/***** Deactivate Relatives *****/
+void usip_deactivate(DSP_CDIF_CORE_ENUM, kal_uint32);
+USIP_CONTROL_STATUS usip_deactive_done_check(DSP_CDIF_CORE_ENUM, kal_uint32);
+
+
+/************************************/
+/************* RAKE *****************/
+/************************************/
+#define RAKE_CMIF_BASE_ADDR BASE_MADDR_RAKESYS_CMIF
+#define RAKE_WFI_MASK_OFFSET 0x4
+
+/***** Common API *****/
+DSP_CONTROL_IDLE_FLAG_STATUS rake_check_idle_flag(RAKE_API_USER);
+
+/***** Activate Relatives *****/
+void rake_activate(RAKE_API_USER);
+
+/***** Deactivate Relatives *****/
+void rake_deactivate(RAKE_API_USER, CMIFZI_CTRL);
+RAKE_CONTROL_STATUS rake_deactive_done_check(RAKE_API_USER);
+
+/* Check Boot Done API*/
+RAKE_BOOTDONECHECK_RETVALUE RAKE_BootDoneCheck(RAKE_API_USER);
+
+#endif //defined(__MD97__) || defined(__MD97P__)
+#endif
+
diff --git a/mcu/service/sst/include/dsp_dbg_ctrl.h b/mcu/service/sst/include/dsp_dbg_ctrl.h
new file mode 100644
index 0000000..17a89d2
--- /dev/null
+++ b/mcu/service/sst/include/dsp_dbg_ctrl.h
@@ -0,0 +1,47 @@
+#ifndef __SVC_DSP_DEBUG_CONTROL_H__
+#define __SVC_DSP_DEBUG_CONTROL_H__
+
+#include "drv_comm.h"
+#include "reg_base.h"
+
+/*******************************************************************************
+ * SCQ DBG APB CR Definition
+ *******************************************************************************/
+#if defined(__MD93__) || defined(__MD95__)
+#define SCQ0_APB_BASE                 (BASE_MADDR_MDPERI_MD_DBGSYS2 + 0xC000)
+#define SCQ1_APB_BASE                 (BASE_MADDR_MDPERI_MD_DBGSYS2 + 0xD000)
+#elif defined(__MD97__) || defined(__MD97P__)
+#define SCQ0_APB_BASE                 (BASE_MADDR_VDSP_1_MD32SCQ)
+#define SCQ1_APB_BASE                 (BASE_MADDR_VDSP_2_MD32SCQ)
+#define SCQ2_APB_BASE                 (BASE_MADDR_VDSP_3_MD32SCQ)
+#define SCQ3_APB_BASE                 (BASE_MADDR_VDSP_4_MD32SCQ)
+#else
+    #error "Unsupported project!!"
+#endif
+
+/*******************************************************************************
+ * MACRO Definition 
+ *******************************************************************************/
+#define SCQ_APB_DBG_EN_OFFSET         0x0
+#define SCQ_APB_MODE_SEL_OFFSET       0x4
+#define SCQ_APB_DBG_INST_OFFSET       0x10
+#define SCQ_APB_DBG_EXECUTE_OFFSET    0x14
+
+#if defined(__MD93__) || defined(__MD95__)
+#define SCQ_APB_DBG_STATUS_OFFSET     0x20
+#elif defined (__MD97__) || defined(__MD97P__)
+#define SCQ_APB_DBG_STATUS_OFFSET     0x24
+#else
+    #error "Unsupported project!!"
+#endif
+
+#define SCQ_APB_DBG_ATTACH_INST       0x900
+#define SCQ_APB_DBG_REQ_INST          0x811
+#define SCQ_APB_DBG_STATUS_INST       0x803
+#define SCQ_APB_DBG_RESUME_INST       0x812
+
+#if defined(__SCQ16_SUPPORT_CTI_RESTART__)
+    /* TODO: Add code for 97 CTI restart when HW ready */
+#endif
+
+#endif
diff --git a/mcu/service/sst/include/dsp_dbgc.h b/mcu/service/sst/include/dsp_dbgc.h
new file mode 100644
index 0000000..73cd52e
--- /dev/null
+++ b/mcu/service/sst/include/dsp_dbgc.h
@@ -0,0 +1,24 @@
+#ifndef __DSP_DBGC_H__
+#define __DSP_DBGC_H__
+
+
+#if defined(__MD97__)
+#include "kal_public_api.h"
+#include "sync_data.h"
+#include "reg_base.h"
+
+#define DSP_DBGC_REG(ptr)  (*(volatile kal_uint32*)(ptr))
+
+#define DBGC_BASE                      (BASE_MADDR_MCORE0_DBGC)
+#define DBGC_IDLE_SIGNAL_SET_REG       (DBGC_BASE + 0x1C4)
+#define DBGC_IDLE_SIGNAL_CLR_REG       (DBGC_BASE + 0x1C8)
+#define DBGC_IDLE_SIGNAL_STATUS_REG    (DBGC_BASE + 0x1CC)
+#define DSP_MCORE_THREAD_NUMBER        (0x4)
+
+
+#else /* Not MD97 */
+
+// let it empty, because only MD97 has the DBGC module
+#endif
+
+#endif  /* __DSP_DBGC_H__ */
diff --git a/mcu/service/sst/include/dsp_eintc.h b/mcu/service/sst/include/dsp_eintc.h
new file mode 100644
index 0000000..8ab4451
--- /dev/null
+++ b/mcu/service/sst/include/dsp_eintc.h
@@ -0,0 +1,21 @@
+#ifndef DSP_EINTC_H
+#define DSP_EINTC_H
+
+#include "kal_public_api.h"
+#include "sync_data.h"
+#include "reg_base.h"
+#define DSP_EINTC_REG(ptr)  (*(volatile kal_uint32*)(ptr))
+
+#if defined(MT6297) || defined(MT6885) || defined(MT6873) || defined(MT6853) || defined(CHIP10992) || defined(MT6833) || defined(MT6877)
+	#define EINTC_BASE                 BASE_MADDR_MCORE0_EINTC
+	#define EINTC_SET_IDLE_SIGNAL      0x1C4
+	#define EINTC_CLR_IDLE_SIGNAL      0x1C8
+	#define EINTC_IDLE_SIGNAL_STATUS   0x1CC
+	#define DSP_MCORE_THREAD_NUMBER    0x4
+#elif defined(__MD95__)
+#else
+	#error "need to define address for new chip"
+#endif
+
+
+#endif  /* DSP_EINTC_H */
diff --git a/mcu/service/sst/include/dsp_excep_def.h b/mcu/service/sst/include/dsp_excep_def.h
new file mode 100644
index 0000000..5246a32
--- /dev/null
+++ b/mcu/service/sst/include/dsp_excep_def.h
@@ -0,0 +1,25 @@
+#ifndef __DSP_EXCEP_DEF_H__
+#define __DSP_EXCEP_DEF_H__
+
+#if defined(MT6771) || defined(MT6295M) || defined(MT3967) || defined(MT6779) || defined(MT6297) || defined(MT6885) || defined(__MD97__) || defined(__MD97P__)
+typedef enum{
+	DSP_COMMON_REGION,
+	BRP_LTE_ROCODE,
+	BRP_FDD_ROCODE,
+	FEC_TX_C2K_ROCODE,
+	FEC_TX_WCDMA_ROCODE,
+	FEC_TX_LTE_ROCODE,
+	FEC_RX_C2K_ROCODE,
+	FEC_RX_WCDMA_ROCODE,
+	SCQ16_LTE_ROCODE,
+	SCQ16_FDD_ROCODE,
+	SCQ16_TDD_ROCODE,
+	SCQ16_C2K_ROCODE,
+	RAKE_FDD_ROCODE,
+	RAKE_C2K_ROCODE
+}DSP_EX_DDL_MODE;
+#else
+	#error "Undefined project name..."
+#endif
+
+#endif /* __DSP_EXCEP_DEF_H__ */
diff --git a/mcu/service/sst/include/dsp_file.h b/mcu/service/sst/include/dsp_file.h
new file mode 100644
index 0000000..d76721b
--- /dev/null
+++ b/mcu/service/sst/include/dsp_file.h
@@ -0,0 +1,142 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   dsp_file.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This Module defines the HW initialization.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *
+ *
+ *
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/*******************************************************************************
+ * Include header files.
+ *******************************************************************************/
+#ifndef DSP_FILE_H
+#define DSP_FILE_H
+//#include "md32_file.h"
+#include "md32_bin_info.h"
+
+
+
+
+
+
+
+#ifndef __DSP_PBP__
+#include "kal_general_types.h"
+
+kal_uint32 dsp_fread(kal_uint32 *buf, kal_uint32 off, kal_uint32 len, DSP_TYPE type);
+kal_uint32 dsp_fwrite(kal_uint32 *buf, kal_uint32 off, kal_uint32 len, DSP_TYPE type);
+kal_uint32 *get_dsp_ptr(kal_uint32 off, DSP_TYPE type);
+kal_uint32 dsp_chksum(kal_uint32 off, kal_uint32 len, DSP_TYPE type);
+kal_uint32 cal_chksum(kal_uint32 base, kal_uint32 len);
+kal_bool dsp_exst();
+kal_uint32 get_msonic_ex_log_addr();
+kal_uint32 get_vsonic_ex_log_addr();
+
+/* if the following enum changes, we need to sync with DE */
+typedef enum{
+    BRP_PM,
+    BRP_DM,
+    DFE_PM,
+    DFE_DM,
+    RAKE_PM,
+    RAKE_DM,
+    
+    ICC_PM = 0x1000,
+    ICC_ICM,
+    IMC_PM,
+    IMC_ICM,
+    MPC_PM,
+    MPC_ICM,
+} DSP_DEST_MEM;
+
+/* if the following enum changes, we need to change the file name index mapping table file */
+typedef enum{
+    BRP_PM_DAT,
+    BRP_DM_DAT,
+    DFE_PM_DAT,
+    DFE_DM_DAT,
+    RAKE_PM_DAT,
+    RAKE_DM_DAT,
+    BRP_COM_PM_DAT,
+    BRP_COM_DM_DAT,
+    BRP_FDD_PM_DAT,
+    BRP_FDD_DM_DAT,
+    BRP_TDD_PM_DAT,
+    BRP_TDD_DM_DAT,
+    BRP_LTE_PM_DAT,
+    BRP_LTE_DM_DAT,
+
+    ICC_PM_DAT = 0x1000,
+    ICC_ICM_DAT,
+    IMC_PM_DAT,
+    IMC_ICM_DAT,
+    MPC_PM_DAT,
+    MPC_ICM_DAT,
+} DSP_HEX_FILE_IDX;
+
+kal_uint32 dsp_backdoor_download(DSP_DEST_MEM dest, kal_uint32 offset, \
+        DSP_HEX_FILE_IDX file_index);
+
+
+#endif /* DSP_PBP */
+
+#endif /* DSP_FILE_H */
diff --git a/mcu/service/sst/include/ex_BEE_trc.h b/mcu/service/sst/include/ex_BEE_trc.h
new file mode 100644
index 0000000..c899ce9
--- /dev/null
+++ b/mcu/service/sst/include/ex_BEE_trc.h
@@ -0,0 +1,388 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   ex_handler_trc.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This file defines exception debugging trace.
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+    TRC_MSG(SST_EXC_WATCHDOG_RESET_ENTER, "[EXC][COMMON] Enter Watchdog reset")
+    TRC_MSG(SST_EXC_WATCHDOG_RESET_EXIT, "[EXC][COMMON] Exit Watchdog reset")
+
+    TRC_MSG(SST_EXC_WATCHDOG_RESET_EH_ENTER, "[EXC][COMMON]%s Enter Watchdog reset")
+    TRC_MSG(SST_EXC_WATCHDOG_RESET_EH_EXIT, "[EXC][COMMON]%s Exit Watchdog reset")
+    
+    TRC_MSG(SST_EXC_WATCHDOG_DISABLE_ENTER, "[EXC][COMMON] Enter Watchdog disable")
+    TRC_MSG(SST_EXC_WATCHDOG_DISABLE_EXIT, "[EXC][COMMON] Exit Watchdog disable")
+ 
+    TRC_MSG(SST_EXC_FLUSH_LOGGING_PORT_EXIT, "[EXC][COMMON] Exit dhl_flush_logging_port_for_exception()")
+    TRC_MSG(SST_EXC_NE_FLUSH_LOGGING_PORT_EXIT, "[EXC][COMMON][Nested] Exit dhl_flush_logging_port_for_exception()")
+
+    TRC_MSG(SST_EXC_CCCI_HANDSHAKING_ENTER, "[EXC][COMMON] Enter ccci_exception_handshake()")
+    TRC_MSG(SST_EXC_CCCI_HANDSHAKING_EXIT, "[EXC][COMMON] Exit ccci_exception_handshake()")
+
+    TRC_MSG(SST_EXC_RESET_HARDWARE_ENTER, "[EXC][COMMON] Enter ex_reset_hw()")
+    TRC_MSG(SST_EXC_RESET_HARDWARE_EXIT, "[EXC][COMMON] Exit ex_reset_hw()")
+    
+    TRC_MSG(SST_EXC_TL1_FORCESTALL_ENTER, "[EXC][COMMON] Enter TL1_ForceStall()")
+    TRC_MSG(SST_EXC_TL1_FORCESTALL_EXIT, "[EXC][COMMON] Exit TL1_ForceStall()")
+
+    TRC_MSG(SST_EXC_L1D_PAUSEDSP_ENTER, "[EXC][COMMON] Enter L1D_PauseDSP()")
+    TRC_MSG(SST_EXC_L1D_PAUSEDSP_EXIT, "[EXC][COMMON] Exit L1D_PauseDSP()")
+
+    TRC_MSG(SST_EXC_L1AUDIO_RESETDEVICE_ENTER, "[EXC][COMMON] Enter L1Audio_ResetDevice()")
+    TRC_MSG(SST_EXC_L1AUDIO_RESETDEVICE_EXIT, "[EXC][COMMON] Exit L1Audio_ResetDevice()")
+    
+    TRC_MSG(SST_EXC_DUMP_SLAVE_LOG_ENTER, "[EXC][COMMON] Enter dhl_cc_exception_dump_slave_log()")
+    TRC_MSG(SST_EXC_DUMP_SLAVE_LOG_EXIT, "[EXC][COMMON] Exit dhl_cc_exception_dump_slave_log()")
+    TRC_MSG(SST_EXC_NE_DUMP_SLAVE_LOG_ENTER, "[EXC][COMMON][Nested] Enter dhl_cc_exception_dump_slave_log()")
+    TRC_MSG(SST_EXC_NE_DUMP_SLAVE_LOG_EXIT, "[EXC][COMMON][Nested] Exit dhl_cc_exception_dump_slave_log()")
+
+    TRC_MSG(SST_EXC_HS_ENTER, "[EXC][COMMON] Enter ex_int_cc_handshake(%d)")
+    TRC_MSG(SST_EXC_HS_EXIT, "[EXC][COMMON] Exit ex_int_cc_handshake(%d)")
+
+    TRC_MSG(SST_EXC_OUTPUT_CADEFA_ENTER, "[EXC][COMMON] Enter ex_cadefa()")
+    TRC_MSG(SST_EXC_OUTPUT_CADEFA_EXIT, "[EXC][COMMON] Exit ex_cadefa()")
+    
+    TRC_MSG(SST_EXC_OUTPUT_USIP_CADEFA_ENTER, "[EXC][COMMON] Enter ex_usip_cadefa()")
+    TRC_MSG(SST_EXC_OUTPUT_USIP_CADEFA_EXIT, "[EXC][COMMON] Exit ex_usip_cadefa()")
+    
+    TRC_MSG(SST_EXC_OUTPUT_MD32_CADEFA_ENTER, "[EXC][COMMON] Enter ex_md32_cadefa()")
+    TRC_MSG(SST_EXC_OUTPUT_MD32_CADEFA_EXIT, "[EXC][COMMON] Exit ex_md32_cadefa()")
+    
+    TRC_MSG(SST_EXC_OUTPUT_SCQ_CADEFA_ENTER, "[EXC][COMMON] Enter ex_scq_cadefa()")
+    TRC_MSG(SST_EXC_OUTPUT_SCQ_CADEFA_EXIT, "[EXC][COMMON] Exit ex_scq_cadefa()")
+        
+    TRC_MSG(SST_EXC_OUTPUT_SONIC_CADEFA_ENTER, "[EXC][COMMON] Enter ex_sonic_cadefa()")
+    TRC_MSG(SST_EXC_OUTPUT_SONIC_CADEFA_EXIT, "[EXC][COMMON] Exit ex_sonic_cadefa()")
+
+    TRC_MSG(SST_EXC_INVOKE_SST_ENGINE_ENTER, "[EXC][COMMON] Enter INT_InvokeSSTEngine()")
+    TRC_MSG(SST_EXC_INVOKE_SST_ENGINE_EXIT, "[EXC][COMMON] Exit INT_InvokeSSTEngine()")
+    
+    TRC_MSG(SST_EXC_EMM_WRITE_EX_RECORD_ENTER, "[EXC][COMMON] Enter EMM_Write_ExceptRecord()")
+    TRC_MSG(SST_EXC_EMM_WRITE_EX_RECORD_EXIT, "[EXC][COMMON] Exit EMM_Write_ExceptRecord()")
+    
+    TRC_MSG(SST_EXC_SWLA_PRINT_LOWRAM_ENTER, "[EXC][COMMON] Enter SLA_Print_low_RAM_SWLA()")
+    TRC_MSG(SST_EXC_SWLA_PRINT_LOWRAM_EXIT, "[EXC][COMMON] Exit SLA_Print_low_RAM_SWLA()")
+
+    TRC_MSG(SST_EXC_OUTPUT_EXCEPTION_RECORD_ENTER, "[EXC][COMMON] Enter ex_output_log()")
+    TRC_MSG(SST_EXC_OUTPUT_EXCEPTION_RECORD_EXIT, "[EXC][COMMON] Exit ex_output_log()")
+    
+    TRC_MSG(SST_EXC_OUTPUT_USIP_EXCEPTION_RECORD_ENTER, "[EXC][COMMON] Enter ex_output_usip_log()")
+    TRC_MSG(SST_EXC_OUTPUT_USIP_HS_FAILED, "usip HS failed [%d]")
+    TRC_MSG(SST_EXC_OUTPUT_USIP_EXCEPTION_RECORD_EXIT, "[EXC][COMMON] Exit ex_output_usip_log()")
+    
+    TRC_MSG(SST_EXC_OUTPUT_MD32_EXCEPTION_RECORD_ENTER, "[EXC][COMMON] Enter ex_output_md32_log()")
+    TRC_MSG(SST_EXC_OUTPUT_MD32_HS_FAILED, "md32 HS failed [%d]")
+    TRC_MSG(SST_EXC_OUTPUT_MD32_EXCEPTION_RECORD_EXIT, "[EXC][COMMON] Exit ex_output_md32_log()")
+
+    TRC_MSG(SST_EXC_OUTPUT_SONIC_EXCEPTION_RECORD_ENTER, "[EXC][COMMON] Enter ex_output_sonic_log()")
+    TRC_MSG(SST_EXC_OUTPUT_SONIC_HS_FAILED, "sonic HS failed [%d]")
+    TRC_MSG(SST_EXC_OUTPUT_SONIC_EXCEPTION_RECORD_EXIT, "[EXC][COMMON] Exit ex_output_sonic_log()")
+
+    TRC_MSG(SST_EXC_PASS_CCCI_EXCINFO_ENTER, "[EXC][COMMON] Enter ccci_exception_info_passed()")
+    TRC_MSG(SST_EXC_PASS_CCCI_EXCINFO_EXIT, "[EXC][COMMON] Exit ccci_exception_info_passed()")
+
+    TRC_MSG(SST_EXC_FLC_DEBUG_INFO_ENTER, "[EXC][COMMON] Enter flc2_debug_assert_callback()")
+    TRC_MSG(SST_EXC_FLC_DEBUG_INFO_EXIT, "[EXC][COMMON] Exit flc2_debug_assert_callback()")
+
+    TRC_MSG(SST_EXC_RMPU_DEBUG_INFO_ENTER, "[EXC][COMMON] Enter emimpu_dump_status()")
+    TRC_MSG(SST_EXC_RMPU_DEBUG_INFO_EXIT, "[EXC][COMMON] Exit emimpu_dump_status()")
+
+    TRC_MSG(SST_EXC_INIT_FDD_TABLE_ENTER, "[EXC][COMMON] Enter Initialize_FDD_tables()")
+    TRC_MSG(SST_EXC_INIT_FDD_TABLE_EXIT, "[EXC][COMMON] Exit Initialize_FDD_tables()")
+
+    TRC_MSG(SST_EXC_SAVE_EXCEPTION_RECORD_ENTER, "[EXC][COMMON] Enter ex_save_log()")
+    TRC_MSG(SST_EXC_SAVE_EXCEPTION_RECORD_EXIT, "[EXC][COMMON] Exit ex_save_log()")
+
+    TRC_MSG(SST_EXC_FS_UNLOCK_ALL_ENTER, "[EXC][COMMON] Enter FS_UnlockAll()")
+    TRC_MSG(SST_EXC_FS_UNLOCK_ALL_EXIT, "[EXC][COMMON] Exit FS_UnlockAll()")
+
+    TRC_MSG(SST_EXC_FS_SHUTDOWN_ENTER, "[EXC][COMMON] Enter FS_ShutDown()")
+    TRC_MSG(SST_EXC_FS_SHUTDOWN_EXIT, "[EXC][COMMON] Exit FS_ShutDown()")
+
+    TRC_MSG(SST_EXC_NVRAM_WRITE_EXC_ENTER, "[EXC][COMMON] Enter nvram_write_exception(%d, 0x%x, 0x%x)")
+    TRC_MSG(SST_EXC_NVRAM_WRITE_EXC_EXIT, "[EXC][COMMON] Exit nvram_write_exception()")
+    
+    TRC_MSG(SST_EXC_EMM_WRITE_ENTER, "[EXC][COMMON] Enter EMM_Write_ExceptRecord()")
+    TRC_MSG(SST_EXC_EMM_WRITE_EXIT, "[EXC][COMMON] Exit EMM_Write_ExceptRecord()")
+    
+    TRC_MSG(SST_EXC_RESET_EXCSP_ENTER, "[EXC][COMMON] Enter INT_ExceptionResetExcSP()")
+    TRC_MSG(SST_EXC_RESET_EXCSP_EXIT, "[EXC][COMMON] Exit INT_ExceptionResetExcSP()")
+    
+    TRC_MSG(SST_EXC_CLEAN_RES_PROT_ENTER, "[EXC][COMMON] Enter ex_clean_res_prot()")
+    TRC_MSG(SST_EXC_CLEAN_RES_PROT_EXIT, "[EXC][COMMON] Exit ex_clean_res_prot()")
+    
+    TRC_MSG(SST_EXC_UNGUARD_STACKSPACE_ENTER, "[EXC][COMMON] Enter kal_unguard_stack_space()")
+    TRC_MSG(SST_EXC_UNGUARD_STACKSPACE_EXIT, "[EXC][COMMON] Exit kal_unguard_stack_space()")
+
+    TRC_MSG(SST_EXC_NESTED_PROCESS_ENTER, "[EXC][COMMON] Enter ex_nested_process()")
+    TRC_MSG(SST_EXC_NESTED_PROCESS_EXIT, "[EXC][COMMON] Exit ex_nested_process()")
+    
+    TRC_MSG(SST_EXC_INIT_DUMP_ENTER, "[EXC][COMMON] Enter ex_init_dump()")
+    TRC_MSG(SST_EXC_INIT_DUMP_EXIT, "[EXC][COMMON] Exit ex_init_dump()")
+
+    TRC_MSG(SST_EXC_REMOVE_SENSITIVE_ENTER, "[EXC][COMMON] Enter ex_remove_sensitive_for_dump()")
+    TRC_MSG(SST_EXC_REMOVE_SENSITIVE_EXIT, "[EXC][COMMON] Exit ex_remove_sensitive_for_dump()")
+
+    TRC_MSG(SST_EXC_INIT_BBREG_DUMP_ENTER, "[EXC][COMMON] Enter ex_init_bbreg_dump()")
+    TRC_MSG(SST_EXC_INIT_BBREG_DUMP_EXIT, "[EXC][COMMON] Exit ex_init_bbreg_dump()")
+
+    TRC_MSG(SST_EXC_INIT_MINI_DUMP_ENTER, "[EXC][COMMON] Enter ex_init_mini_dump()")
+    TRC_MSG(SST_EXC_INIT_MINI_DUMP_EXIT, "[EXC][COMMON] Exit ex_init_mini_dump()")
+    
+    TRC_MSG(SST_EXC_INIT_REAPPEAR_LOG_ENTER, "[EXC][COMMON] Enter ex_reappear_log()")
+    TRC_MSG(SST_EXC_INIT_REAPPEAR_LOG_EXIT, "[EXC][COMMON] Exit ex_reappear_log()")
+
+    TRC_MSG(SST_EXC_EX_REBOOT4MP_ENTER, "[EXC][COMMON] Enter ex_reboot4mp()")
+    TRC_MSG(SST_EXC_EX_REBOOT4MP_EXIT, "[EXC][COMMON] Exit ex_reboot4mp()")
+
+    TRC_MSG(SST_EXC_SYSMEM_TO_BE_DUMPED, "[EXC][COMMON] sys_mem_xxx.bin to be dumped [%d]: (0x%x, 0x%x)")
+    TRC_MSG(SST_EXC_SYSMEM_TO_BE_DUMPED_FOR_MINI, "[EXC][COMMON] sys_mem_xxx.bin to be dumped for mini [%d]: (0x%x, 0x%x)")
+    TRC_MSG(SST_EXC_SLAVE_SYSMEM_TO_BE_DUMPED, "[EXC][COMMON] slave_sys_mem_0x%08x.bin to be dumped [%d]: (0x%x, 0x%x)")
+
+    TRC_MSG(SST_EXC_DHLLOGGING_ENTER, "[EXC][COMMON] Enter dhl_call_exception_custom_logging at %dus")
+    TRC_MSG(SST_EXC_DHLLOGGING_EXIT, "[EXC][COMMON] Exit dhl_call_exception_custom_logging at %dus")
+    TRC_MSG(SST_EXC_HANDOVER2TST, "[EXC][COMMON] Handover to TST exception handler")
+    
+    TRC_MSG(SST_EXC_READY2REBOOT, "[EXC][COMMON] Ready to silent reboot")
+    
+    TRC_MSG(SST_EXC_REMOVE_SENSITIVE_USER_CALLBACK_ENTER, "[EXC][COMMON] Enter sensitive-removing callback, Index:%d, Taskname:%s")
+    TRC_MSG(SST_EXC_REMOVE_SENSITIVE_USER_CALLBACK_EXIT, "[EXC][COMMON] Exit sensitive-removing callback, Index:%d, Taskname:%s, Elapsedtime:%dus")
+
+    TRC_MSG(SST_EXC_REMOVE_SENSITIVE_CTRLBUFF_ENTER, "[EXC][COMMON] Enter sensitive-removing: kal_clear_all_sensitive_buff_data()") 
+    TRC_MSG(SST_EXC_REMOVE_SENSITIVE_CTRLBUFF_EXIT, "[EXC][COMMON] Exit sensitive-removing: kal_clear_all_sensitive_buff_data(), Elapsedtime:%dus")
+
+    TRC_MSG(SST_EXC_REMOVE_SENSITIVE_QBM_ENTER, "[EXC][COMMON] Enter sensitive-removing: qbm_clear_all_sensitive_data()") 
+    TRC_MSG(SST_EXC_REMOVE_SENSITIVE_QBM_EXIT, "[EXC][COMMON] Exit sensitive-removing: qbm_clear_all_sensitive_data(), Elapsedtime:%dus")
+
+    TRC_MSG(SST_EXC_REMOVE_SENSITIVE_FL2_ENTER, "[EXC][COMMON] Enter sensitive-removing: fl2_ent_mask_peer_buff_for_miniDump()") 
+    TRC_MSG(SST_EXC_REMOVE_SENSITIVE_FL2_EXIT, "[EXC][COMMON] Exit sensitive-removing: fl2_ent_mask_peer_buff_for_miniDump(), Elapsedtime:%dus")
+
+    TRC_MSG(SST_EXC_REMOVE_SENSITIVE_STACK_ENTER, "[EXC][COMMON] Enter sensitive-removing stack, Index:%d")
+    TRC_MSG(SST_EXC_REMOVE_SENSITIVE_STACK_EXIT, "[EXC][COMMON] Exit sensitive-removing stack, Index:%d")
+
+    TRC_MSG(SST_EXC_REMOVE_SENSITIVE_DETECT_ERROR, "[EXC][COMMON] sensitive-removing, detect errror happened! Exception Count:%d")
+
+    TRC_MSG(SST_EXC_REMOVE_SENSITIVE_DEBUG_STACK_INFO, "[EXC][COMMON] Exit sensitive-removing stack,sp:0x%x, start:0x%x, size:0x%x")
+
+    TRC_MSG(SST_EXC_SWITCH_WDT_PHASE2, "[EXC][COMMON] Do ex_switchWDT_phase2()")
+    
+    TRC_MSG(SST_EXC_BBREG_DUMP_COUNT, "[EXC][COMMON] BB register dump count: %d")
+    TRC_MSG(SST_EXC_BBREG_DUMP_OWNER, "[EXC][COMMON] BB register dump owner: %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c")
+    TRC_MSG(SST_EXC_BBREG_DUMP_CALLBACK_FUNC_ENTER, "[EXC][COMMON] Enter BB register dump callback, address: 0x%x")
+    TRC_MSG(SST_EXC_BBREG_DUMP_CALLBACK_FUNC_EXIT, "[EXC][COMMON] Exit BB register dump callback, address: 0x%x")
+    TRC_MSG(SST_EXC_BBREG_DUMP_SKIP, "[EXC][COMMON] Skip this dump")    
+    TRC_MSG(SST_EXC_BBREG_DUMP_SKIP2, "[EXC][COMMON] Callback (0x%x) caused nested exception -> skip this dump")
+    TRC_MSG(SST_EXC_BBREG_DUMP_TO_BE_DUMPED, "[EXC][COMMON] bb_mem_xxx.bin to be dumped [%d]: (0x%x, 0x%x, %d)")
+    TRC_MSG(SST_EXC_BBREG_DUMP_LARGE, "[EXC][COMMON] bb_mem size is larger than %d KB: (base, len)=(0x%x, 0x%x)")
+    TRC_MSG(SST_EXC_BBREG_DUMP_OVERLAP_SYS, "[EXC][COMMON] bb_mem (0x%x, 0x%x) overlap sys_mem (0x%x, 0x%x)")
+    TRC_MSG(SST_EXC_BBREG_DUMP_TOP_NUM, "[EXC][COMMON] top%d bb_mem (0x%x, 0x%x)")
+
+    TRC_MSG(SST_EXC_MINIDUMP_SYMBOL_OWNER, "[EXC][COMMON][MINIDUMP] symbol/area owner: %s")
+    TRC_MSG(SST_EXC_MINIDUMP_SYMBOL_CLEAN, "[EXC][COMMON][MINIDUMP] symbol/area cleaned: 0x%08x - 0x%08x, %s")
+    TRC_MSG(SST_EXC_MINIDUMP_SYMBOL_NESTED, "[EXC][COMMON][MINIDUMP] symbol/area 0x%08x - 0x%08x, %s, caused nested exception, SKIP it")
+
+    TRC_MSG(SST_EXC_L1CORE_BBREG_DUMP_OWNER, "[EXC][COMMON][L1CORE] BB register dump owner: %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c")   
+    TRC_MSG(SST_EXC_L1CORE_BBREG_DUMP_TO_BE_DUMPED, "[EXC][COMMON][L1CORE] bb_mem_xxx.bin to be dumped [%d]: (0x%x, 0x%x, %d)")
+    
+    TRC_MSG(SST_EXC_HANDLE_DUMP_REGION_ENTER, "[EXC][COMMON] Enter SST_HandleDumpRegion(addr=0x%08x, len=0x%x)")
+    TRC_MSG(SST_EXC_HANDLE_DUMP_REGION_EXIT, "[EXC][COMMON] Exit SST_HandleDumpRegion(addr=0x%08x, len=0x%x, operation result=%s)")
+    TRC_MSG(SST_EXC_HANDLE_DUMP_REGION_OP_CACHED, "[EXC][COMMON] SST_HandleDumpRegion: Do cache operation")
+    TRC_MSG(SST_EXC_HANDLE_DUMP_REGION_OP_TIMEOUT, "[EXC][COMMON]Timeout(> %dus): Start: %dus, End= %dus, Duration = %dus")
+    
+    TRC_MSG(SST_EXC_HANDLE_EMIMPU_OUTPUT_ADDR, "[EXC][EMIMPU] MasterID:%x(%s)  ViolationAddr:%x(%s)")
+    TRC_MSG(SST_EXC_HANDLE_EMIMPU_OUTPUT_REGION, "[EXC][EMIMPU] Region:%d  Domain:%d   Out-of-Range:%d")
+
+    TRC_MSG(SST_EXC_BBREG_OUTPUT, "[EXC][COMMON][BBREG_OUTPUT] address=0x%08x  value=0%08x, sub_idx=%d, fill_cnt=%d")
+    TRC_MSG(SST_EXC_QUERY_BBREG_ENTER, "[EXC][COMMON]ex_query_bbreg_info(buf_ptr=0%08x, start_idx=%d, num=%d)")
+    TRC_MSG(SST_EXC_QUERY_BBREG_EXIT, "[EXC][COMMON]ex_query_bbreg_info() return fill_cnt=%d")
+    TRC_MSG(SST_EXC_QUERY_BBREG_SKIP, "[EXC][COMMON] skip_cnt(%d)+traverser->num(%d)+prv_fill_cnt(%d) <= start_idx(%d) => skip_cnt=%d")
+    TRC_MSG(SST_EXC_COPY_BBREG_START_IDX, "[EXC][COMMON] COPY_BBREG start idx=%d")
+    TRC_MSG(SST_EXC_QUERY_BBREG_UPDATE_SKIP, "[EXC][COMMON] prv_fill_cnt: %d, this traverser->num: %d")
+
+    TRC_MSG(SST_EXC_AFOUND_ENTER, "[EXC][COMMON] Enter ex_output_afound()")
+    TRC_MSG(SST_EXC_AFOUND_EXIT, "[EXC][COMMON] Exit ex_output_afound()")
+
+    TRC_MSG(SST_EXC_SEC_CHANNEL_DEINIT_ENTER, "[EXC][COMMON] Enter SST_SSF_Deinit()")
+    TRC_MSG(SST_EXC_SEC_CHANNEL_DEINIT_EXIT, "[EXC][COMMON] Exit SST_SSF_Deinit()")
+
diff --git a/mcu/service/sst/include/ex_cs_excep_hdlr.h b/mcu/service/sst/include/ex_cs_excep_hdlr.h
new file mode 100644
index 0000000..d891ef3
--- /dev/null
+++ b/mcu/service/sst/include/ex_cs_excep_hdlr.h
@@ -0,0 +1,124 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   ex_cs_excep_hdlr.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *   This file provides sonic related APIs
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+ 
+#ifndef __EX_CS_EXCEP_HDLR_H__
+#define __EX_CS_EXCEP_HDLR_H__
+
+#include "ex_cs_excep_hdlr_format.h"
+
+#include "reg_base.h"       /* for BASE_MADDR_MCOREPERI_INFRA_MML1_MCORESYS_SHDM1*/
+
+#include "dsp_file_public.h"       /* DSP_DUMP_CORE_TYPE */
+
+#include "ex_public.h"      /* for EX_TRACE_TYPE */
+
+
+
+/*
+ * if define MCU_ACCESS_SONIC_EVEN_HS_FAIL, MCU will keep accessing MCU/Sonic EX SHM
+ * even if MCU/Sonic fail to sync.
+ */
+#define MCU_ACCESS_SONIC_EVEN_HS_FAIL   (1)
+
+
+typedef enum
+{
+    SONIC_M0_FAIL_BIT_MASK = (1<<0),
+    SONIC_V0_FAIL_BIT_MASK = (1<<1),
+} EX_SONIC_CORE_BIT_MASK_TYPE;
+
+
+// ----------------- macro definition ---------------
+/* Please use EX_SONIC_SYNC_TIME in cc_ex_item.h */
+//#define EX_SONIC_EX_SYNC_TIMEOUT      0x200000
+
+
+
+// ----------------- data type Definition -------------------
+
+
+
+
+// ----------------- function declaration -------------------
+
+kal_bool INT_SyncExSonicExceptionInfo(void);
+void INT_GetExSonicExceptionRecord(EX_SONIC_EXCEPTION_RECORD_T *record_ptr);
+void INT_GetExSonicFailCoreMask(kal_uint32 *fail_core_mask, kal_uint32 *fail_thread_mask);
+void INT_GetExSonicFailCoreIndex(kal_uint32 *fail_core_index, kal_uint32 *fail_thread_index);
+void INT_GetExSonicDumpMemoryInfo(DSP_DUMP_CORE_TYPE core_type, kal_uint32 **info, kal_uint32 *count, kal_uint8* region_config);
+void INT_GetExSonicDebugDumpMemoryInfo(DSP_DUMP_CORE_TYPE core_type, kal_uint32 **info, kal_uint32 *count, kal_uint8* region_config);
+kal_uint32 INT_GetNRDSPMCUViewMappingInfo(DSP_DUMP_CORE_TYPE core_type, kal_uint32 addr);
+kal_char* INT_GetExSonicCoreName(kal_uint32 core_index);
+void INT_DumpExSonicExceptionInfo(EX_TRACE_TYPE trace_type, kal_char* sys_info_str, kal_uint32 len);
+
+
+
+
+#endif /* __EX_CS_EXCEP_HDLR_H__ */
diff --git a/mcu/service/sst/include/ex_cs_excep_hdlr_format.h b/mcu/service/sst/include/ex_cs_excep_hdlr_format.h
new file mode 100644
index 0000000..0f256df
--- /dev/null
+++ b/mcu/service/sst/include/ex_cs_excep_hdlr_format.h
@@ -0,0 +1,189 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   ex_cs_excep_hdlr_format.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *   This file provides sonic related APIs
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+ 
+#ifndef __EX_CS_EXCEP_HDLR_FORMAT_H__
+#define __EX_CS_EXCEP_HDLR_FORMAT_H__
+
+
+//#include "sonic_ex_common_def.h"
+
+
+
+// ----------------- macro definition ---------------
+#define EX_SONIC_MSONIC_CORE_NUM            (1)
+#define EX_SONIC_VSONIC_CORE_NUM            (1)
+#define EX_SONIC_TOTAL_CORE_NUM             (EX_SONIC_MSONIC_CORE_NUM + EX_SONIC_VSONIC_CORE_NUM)
+
+
+#if defined(MT6297)
+#define EX_SONIC_PER_MSONIC_THREAD_NUM      (4)
+#define EX_SONIC_PER_VSONIC_THREAD_NUM              (4)
+#define EX_SONIC_MAX_MSONIC_VSONIC_THREAD_NUM               (4)  /* max(EX_SONIC_PER_MSONIC_THREAD_NUM, EX_SONIC_PER_VSONIC_THREAD_NUM) */
+#elif defined(MT6885) || defined(CHIP10992)
+#define EX_SONIC_PER_MSONIC_THREAD_NUM      (4)
+#define EX_SONIC_PER_VSONIC_THREAD_NUM              (3)
+#define EX_SONIC_MAX_MSONIC_VSONIC_THREAD_NUM               (4)  /* max(EX_SONIC_PER_MSONIC_THREAD_NUM, EX_SONIC_PER_VSONIC_THREAD_NUM) */
+#elif defined(MT6833) || defined(__PALMER_SIMULATION__) || defined(MT6877) /* "defined(__PALMER_SIMULATION__)" is before "defined(MT6853)" */
+#define EX_SONIC_PER_MSONIC_THREAD_NUM      (3)
+#define EX_SONIC_PER_VSONIC_THREAD_NUM              (2)
+#define EX_SONIC_MAX_MSONIC_VSONIC_THREAD_NUM               (3)  /* max(EX_SONIC_PER_MSONIC_THREAD_NUM, EX_SONIC_PER_VSONIC_THREAD_NUM) */
+#elif defined(MT6873) || defined(MT6853)
+#define EX_SONIC_PER_MSONIC_THREAD_NUM      (4)
+#define EX_SONIC_PER_VSONIC_THREAD_NUM              (2)
+#define EX_SONIC_MAX_MSONIC_VSONIC_THREAD_NUM               (4)  /* max(EX_SONIC_PER_MSONIC_THREAD_NUM, EX_SONIC_PER_VSONIC_THREAD_NUM) */
+#else
+#error "please do new project CPU info porting"
+#endif
+#define EX_SONIC_MSONIC_THREAD_NUM          (EX_SONIC_MSONIC_CORE_NUM * EX_SONIC_PER_MSONIC_THREAD_NUM)
+#define EX_SONIC_VSONIC_THREAD_NUM          (EX_SONIC_VSONIC_CORE_NUM * EX_SONIC_PER_VSONIC_THREAD_NUM)
+#define EX_SONIC_TOTAL_THREAD_NUM           (EX_SONIC_MSONIC_THREAD_NUM + EX_SONIC_VSONIC_THREAD_NUM)
+
+#define EX_SONIC_EX_LOG_SIZE                (sizeof(EX_SonicLog))
+
+#define EX_SONIC_INVALID_IDX                ((kal_uint32)0xFF)
+
+
+
+#if defined(MT6297)
+#define EX_SONIC_SHM_ADDR                 ((kal_uint32)BASE_MADDR_MCOREPERI_INFRA_MML1_MCORESYS_SHDM1)
+#elif defined(MT6885)|| defined(MT6873) || defined(MT6853) || defined(MT6833) || defined(__PALMER_SIMULATION__) || defined(MT6877) || defined(CHIP10992)
+#define EX_SONIC_SHM_ADDR                 ((kal_uint32)BASE_MADDR_MCOREPERI_INFRA_L2TCM0)
+#else
+#error "not support chip!"
+#endif
+
+
+#define EX_SONIC_NO_FAIL_CORE_THREAD        (0xFFFFFFFF)
+
+#define EX_SONIC_ASSERTION_INFO_FILE_NAME_LEN       (56)
+
+#define EX_SONIC_MOF_NAME_LEN                       (4)
+#define EX_SONIC_INVALID_MOF_NAME                   "NULL"
+
+// ----------------- data type Definition -------------------
+
+typedef enum{
+    EX_SONIC_EXCEPTION_NONE = 0, 
+    EX_SONIC_EXCEPTION_ASSERT_LINE,
+    EX_SONIC_EXCEPTION_ASSERT_EXT,
+    EX_SONIC_EXCEPTION_FATAL_ERROR,
+    EX_SONIC_EXCEPTION_CTI,
+    EX_SONIC_EXCEPTION_CUSTOM_ASSERT_ADDR,
+    EX_SONIC_EXCEPTION_CUSTOM_ASSERT_MOFID,
+    EX_SONIC_EXCEPTION_CUSTOM_ASSERT_MODID,
+    EX_SONIC_EXCEPTION_UNKNOWN = 0xEEEEEEEE,
+    EX_SONIC_EXCEPTION_END = 0xFFFFFFFF
+}EX_SONIC_EXCEPTION_TYPE_T;
+
+
+typedef enum{
+    EX_SONIC_FAIL_CORE_NONE = 0, 
+    EX_SONIC_FAIL_CORE_M0,
+    EX_SONIC_FAIL_CORE_V0,
+    EX_SONIC_FAIL_CORE_END = 0xFFFFFFFF
+}EX_SonicFailCore;
+
+/* max 100 bytes, plz check EX_SONIC_CORE_SIZE */
+typedef struct {
+  unsigned int line_num;
+  unsigned int para1;
+  unsigned int para2;
+  unsigned int para3;
+  unsigned char file_name[EX_SONIC_ASSERTION_INFO_FILE_NAME_LEN];
+  char *filepath_ptr;
+  unsigned int custom_param;
+  unsigned char mof_name[4];
+  unsigned int lr;
+} EX_SONIC_ASSERTION_INFO_T;
+
+
+typedef struct {
+  unsigned int error_code1;
+  unsigned int error_code2;
+  unsigned int offending_address;
+} EX_SONIC_FATAL_ERROR_INFO_T;
+
+
+typedef struct {
+  EX_SONIC_EXCEPTION_TYPE_T except_type;
+  unsigned int except_stat;
+  union {
+    EX_SONIC_ASSERTION_INFO_T   assert;
+    EX_SONIC_FATAL_ERROR_INFO_T fatal;
+  }except_content;
+} EX_SONIC_EXCEPTION_INFO_T;
+
+
+/* note we use core # rather than thread # */
+typedef struct {
+    unsigned int              core_num;
+    EX_SONIC_EXCEPTION_INFO_T core_error[EX_SONIC_TOTAL_CORE_NUM]; 
+} EX_SONIC_EXCEPTION_RECORD_T;
+
+
+
+// ----------------- function declaration -------------------
+
+
+
+
+#endif /* __EX_CS_EXCEP_HDLR_FORMAT_H__ */
diff --git a/mcu/service/sst/include/ex_cs_excep_internal_api.h b/mcu/service/sst/include/ex_cs_excep_internal_api.h
new file mode 100644
index 0000000..4e366d2
--- /dev/null
+++ b/mcu/service/sst/include/ex_cs_excep_internal_api.h
@@ -0,0 +1,86 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   ex_cs_excep_internal_api.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *   This file provides sonic related APIs (SST module only)
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+ 
+#ifndef __EX_CS_EXCEP_INTERNAL_API_H__
+#define __EX_CS_EXCEP_INTERNAL_API_H__
+
+#include "sonic_ex_common_def.h"
+
+
+// ----------------- macro definition ---------------
+
+// ----------------- data type Definition -------------------
+
+// ----------------- function declaration -------------------
+EX_SonicLog * ex_sonic_get_ex_log_ptr_by_sonic_thread_index(kal_uint32 sonic_thread_idx);
+
+
+
+#endif /* __EX_CS_EXCEP_INTERNAL_API_H__ */
diff --git a/mcu/service/sst/include/ex_item.h b/mcu/service/sst/include/ex_item.h
new file mode 100644
index 0000000..390f0d7
--- /dev/null
+++ b/mcu/service/sst/include/ex_item.h
@@ -0,0 +1,1671 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   ex_item.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *	Header file for exception handling
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _EX_ITEM_H
+#define _EX_ITEM_H
+
+#if !defined(__OFFLINE_EX_LOG_PARSER__)
+#include "kal_general_types.h"
+#include "reg_base.h"
+#include "intrCtrl.h"
+#include "kal_public_defs.h"
+#include "ex_public.h"
+#include "SST_mem_utility.h"
+#if defined(__MIPS_MMU_EXIST__)
+#include "mips_mmu.h"
+#endif
+#include "mpu_public.h"
+#else
+#include "ex_item_types.h"
+#include "cpu_info.h"
+#endif /*__OFFLINE_EX_LOG_PARSER__*/
+
+/*******************************************************************************
+ * Enum Type Definition
+ *******************************************************************************/
+
+
+/* exception enter category */
+typedef enum
+{
+    EXCEPTION_ENTER_CATEGORY_NO_EXCEPTION = 0,
+    EXCEPTION_ENTER_CATEGORY_TLBREFILL,
+    EXCEPTION_ENTER_CATEGORY_CACHEERR,
+    EXCEPTION_ENTER_CATEGORY_GENERAL,
+    EXCEPTION_ENTER_CATEGORY_NMI,
+    EXCEPTION_ENTER_CATEGORY_CTI,
+    EXCEPTION_ENTER_CATEGORY_DORMANT,
+    EXCEPTION_ENTER_CATEGORY_EXCEPTION_IN_ASM_BOOT,
+#if !defined(__OFFLINE_EX_LOG_PARSER__) && !defined(_MSC_VER)
+} exception_enter_category;
+#else
+} exception_enter_category_format;
+typedef kal_uint8 exception_enter_category;
+#endif
+
+typedef enum
+{
+    /* mips exception codes in cause[exccode] */
+    INTERRUPT_EXCEPTION                = 0x0,
+    TLB_MOD_EXCEPTION                  = 0x1,
+    TLB_MISS_LOAD_EXCEPTION            = 0x2,
+    TLB_MISS_STORE_EXCEPTION           = 0x3,
+    ADDRESS_ERROR_LOAD_EXCEPTION       = 0x4,
+    ADDRESS_ERROR_STORE_EXCEPTION      = 0x5,
+    INSTR_BUS_ERROR                    = 0x6,
+    DATA_BUS_ERROR                     = 0x7,
+    SYSTEM_CALL_EXCEPTION              = 0x8,
+    BREAKPOINT_EXCEPTION               = 0x9,
+    RESERVED_INSTRUCTION_EXCEPTION     = 0xA,
+    COPROCESSORS_UNUSABLE_EXCEPTION    = 0xB,
+    INTEGER_OVERFLOW_EXCEPTION         = 0xC,
+    TRAP_EXCEPTION                     = 0xD,
+    MSA_FLOATING_POINT_EXCEPTION       = 0xE,
+    FLOATING_POINT_EXCEPTION           = 0xF,
+    COPROCESSOR_2_IS_1_EXCEPTION       = 0x10,
+    COR_EXTEND_UNUSABLE_EXCEPTION      = 0x11,
+    COPROCESSOR_2_EXCEPTION            = 0x12,
+    TLB_READ_INHIBIT_EXCEPTION         = 0x13,
+    TLB_EXECUTE_INHIBIT_EXCEPTION      = 0x14,
+    MSA_UNUSABLE_EXCEPTION             = 0x15,
+    MDMX_EXCEPTION                     = 0x16,
+    WATCH_EXCEPTION                    = 0x17,
+    MCHECK_EXCEPTION                   = 0x18,
+    THREAD_EXCEPTION                   = 0x19,
+    DSP_UNUSABLE_EXCEPTION             = 0x1A,
+    RESERVED_27_EXCEPTION              = 0x1B,
+    RESERVED_28_EXCEPTION              = 0x1C,
+    MPU_NOT_ALLOW_EXCEPTION            = 0x1D,
+    CACHE_ERROR_EXCEPTION_DBG_MODE     = 0x1E,
+    RESERVED_31_EXCEPTION              = 0x1F,
+
+    /* exception types for nmi and cache error exception vectors */
+    NMI_EXCEPTION                      = 0x20,
+    CACHE_ERROR_EXCEPTION              = 0x21,
+
+    /* These are used to replace TLB_MISS_LOAD/STORE_EXCEPTION
+     * codes when using tlb refill exception vector.
+     * TLB_MISS_LOAD/STORE_EXCEPTION code is used for tlb invalid */
+    TLB_REFILL_LOAD_EXCEPTION          = 0x22,
+    TLB_REFILL_STORE_EXCEPTION         = 0x23,
+
+    END_CPU_EXCEPTION_TYPE             = 0x2F,
+
+    STACKACCESS_EXCEPTION              = 0x30,
+	SYS_FATALERR_EXT_TASK_EXCEPTION    = 0x31,
+	SYS_FATALERR_EXT_BUF_EXCEPTION     = 0x32,
+    /* Assertion */
+    ASSERT_FAIL_EXCEPTION              = 0x50,
+    ASSERT_DUMP_EXTENDED_RECORD        = 0x51,
+    ASSERT_FAIL_NATIVE                 = 0x52,
+    ASSERT_CUSTOM_ADDR                 = 0x53,
+    ASSERT_CUSTOM_MODID                 = 0x54,
+    ASSERT_CUSTOM_MOFID                 = 0x55,
+    /* cross core triggered */
+    CC_INVALID_EXCEPTION               = 0x60,
+//    CC_CS_EXCEPTION                    = 0x61,
+    CC_MD32_EXCEPTION                  = 0x62,
+//    CC_C2K_EXCEPTION                   = 0x63,
+//    CC_VC_EXCEPTION                    = 0x64,
+    CC_USIP_EXCEPTION                   = 0x65,
+    CC_SCQ_EXCEPTION                    = 0x66,
+    CC_SONIC_EXCEPTION                    = 0x67,
+    /* HW triggered */
+    EMI_MPU_VIOLATION_EXCEPTION        = 0x70,
+
+    AP_EXCEPTION                        = 0x80,
+
+    NUM_EXCEPTION,
+    END_EXCEPTION_TYPE                 = 0xFFFF
+#if !defined(__OFFLINE_EX_LOG_PARSER__) && !defined(_MSC_VER)
+} exception_type;
+#else
+} exception_type_format;
+typedef kal_uint16 exception_type;
+#endif
+
+typedef enum ex_maincontent_type_t
+{
+    EX_MAINCONTENT_TYPE_ASSERT             = 0,
+    EX_MAINCONTENT_TYPE_FATAL,
+    EX_MAINCONTENT_TYPE_CUSTOM_ASSERT
+#if !defined(__OFFLINE_EX_LOG_PARSER__) && !defined(_MSC_VER)
+} EX_MAINCONTENT_TYPE_T;
+#else
+} EX_MAINCONTENT_TYPE_T_FORMAT;
+typedef kal_uint8 EX_MAINCONTENT_TYPE_T;
+#endif /*__OFFLINE_EX_LOG_PARSER__*/
+
+
+
+#define INTSRAM_CODE_CORRUPT "ISPRAM"
+#define DYNINTSRAM_CODE_CORRUPT "DYNISPRAM"
+#define VECTOR_TABLE_CORRUPT "INTVECT"
+#define L2SRAM_C_CODE_CORRUPT  "C_L2SRAM"
+#define L2SRAM_NC_CODE_CORRUPT  "NC_L2SRAM"
+#define LOCK_WAITED_TOO_LONG_CORRUPT   "WAITLOCK"
+#define POSSIBLE_DEADLOCK_CORRUPT  "DEADLOCK"
+#define LOCK_HELD_TOO_LONG_CORRUPT   "HELDLOCK"
+#define CACHE_CORRUPT   "CACHECOR"
+#define L2CACHE_LOCK_CORRUPT   "L2$LOCK"
+#define DYNL2CACHE_LOCK_CORRUPT   "DYNL2$L"
+#define MPU_CORRUPT   "MPU"
+typedef enum
+{
+    Healthy = 0,
+    ISPRAMCorrupted = 1,
+    ISPRAMDynamicRegionCorrupted = 2,
+    SystemStackCorrupted = 3,
+    TaskStackCorrupted = 4,
+    HISRStackCorrupted = 5,
+    VectorTableCorrupted = 6,
+    L2SRAMCachedCorrupted = 7,
+    L2SRAMNonCachedCorrupted = 8,
+    SharedInternalSRAMCorrupted = 9,
+    LockWaitedTooLongCorrupted = 10,
+    PossibleDeadlockCorrupted = 11,
+    LockHeldTooLongCorrupted = 12,
+    CacheCorrupted = 13,
+    L2CacheLockCorrupted = 14,
+    DynamicL2CacheLockCorrupted = 15,
+    MPUCorrupted = 16,
+    StackFrameCorrupted = 17,
+#if !defined(__OFFLINE_EX_LOG_PARSER__) && !defined(_MSC_VER)
+} EX_DIAGNOSIS_T;
+#else
+} EX_DIAGNOSIS_T_FORMAT;
+typedef kal_uint8 EX_DIAGNOSIS_T;
+#endif
+
+typedef enum
+{
+    EX_AUTO_STEP                              = 0,
+    EX_BEGIN                                  = 0,
+
+    // exception enter part
+    EX_SAVE_MDCIRQ_STATUS_BEFORE_CTI          = 0x1,
+    EX_TRIGGER_CTI                            = 0x2,
+    EX_SAVE_MDCIRQ_STATUS_AFTER_CTI           = 0x3,
+    EX_BACKUP_EX_REGISTERS                    = 0x4,
+    EX_STOP_SLA                               = 0x5,
+    EX_SSS_PF_EXCP                            = 0x6,
+    EX_RESTORE_IRQ_MASK_BACKUP                = 0x7,
+    EX_SWITCH_WDT_PHASE1                      = 0x8,
+    EX_SAVE_CORE_CONTEXT                      = 0x9,
+    EX_UPDATE_NON_OFFENDING_CONTEXT           = 0xA,
+    EX_KICK_WDT                               = 0xB,
+    EX_DUMP_MPU                               = 0xC,
+    EX_SET_EX_MPU                             = 0xD,
+    EX_WAIT_FOR_OTHER_CORES                   = 0xE,
+    EX_MDCIRQ_MASK_ALL                        = 0xF,
+    EX_HANDLE_WATCH_REG                       = 0x10,
+    EX_CHANGE_DI_TC                           = 0x11,
+    EX_HALT_OTHER_TC_CLEAR_EXL                = 0x12,
+    EX_RELEASE_OS_LOCKS                       = 0x13,
+    EX_BACKUP_EX_COUNT                        = 0x14,
+    EX_ENTER_EXCEPTION_SETUP_DONE             = 0x15,
+    EX_ENTER_EXCEPTION_PHASE2                 = 0x16,
+    EX_SAVE_OFFENDING_CACHE_LINES             = 0x17,
+    EX_CM2_REGION_DUMP                        = 0x18,
+    EX_ENTER_EXCEPTION_PHASE3                 = 0x19,
+    EX_GET_BREAK_CODE                         = 0x1A,
+    
+    //exception handling part
+    EX_KAL_ASSERT_HANDLER                     = 0x30,
+    EX_KAL_FATAL_ERROR_HANDLER_INT            = 0x31,
+    EX_KAL_EXCEPTION_HANDLER                  = 0x32,
+    EX_KAL_ECT_QUERY                          = 0x33,
+    EX_KAL_CTI_HANDLER                        = 0x34,
+    EX_EXCEPTION_HANDLER                      = 0x35,
+
+    //system data collection part
+    EX_INIT_PCMON                             = 0x40,
+    EX_KICK_WDT2                              = 0x41,
+    EX_GET_PDAMON                             = 0x42,
+    EX_WRITE_OFFENDING_PCMON_TO_EMM           = 0x43,
+    EX_KICK_WDT16                             = 0x44,
+    EX_INIT_BUSMON                            = 0x45,
+    EX_START_PDAMON                           = 0x46,
+    EX_INIT_EX_OVERVIEW                       = 0x47,
+    EX_PREPARE_PARAM                          = 0x48,
+    EX_INIT_LOG                               = 0x49,
+    EX_KICK_WDT3                              = 0x4A,
+    EX_INIT_MCU_SYSINFO                       = 0x4B,
+    EX_BUSDRV_GET_DUMP_INFO                   = 0x4C,
+    EX_KICK_WDT4                              = 0x4D,
+    EX_DUMP_BUSMPU_ERR                        = 0x4E,
+    EX_DUMP_BUSMPU_IRQ_STS                    = 0x4F,
+    EX_KICK_WDT5                              = 0x50,
+    EX_INIT_DSM                               = 0x51,
+    EX_KICK_WDT6                              = 0x52,
+    EX_INIT_MPU                               = 0x53,
+    EX_KICK_WDT7                              = 0x54,
+    EX_WAIT_USIP                              = 0x55,
+    EX_WAIT_MD32                              = 0x56,
+    EX_WAIT_SONIC                             = 0x57,
+    EX_WAIT_SAP                               = 0x58,
+    EX_INIT_DONE                              = 0x59,
+
+    //writing data to exrecord & shm
+    EX_POST_INIT_EXRECORD                     = 0x70,
+    //autosteps
+    EX_DEFINE_MAIN_REASON_DONE                = 0x7A,
+    EX_COPY_DVFS_EX_DATA                      = 0x7B,
+    EX_HW_DATA_SAVE_DONE                      = 0x7C,
+    EX_POST_INIT_EXRECORD_DONE                = 0x7D,
+
+    // external communication
+    EX_CC_EXT_COMM                            = 0x100,
+    EX_CC_EXT_COMM_OPEN_PORT                  = 0x110,
+    EX_CC_EXT_COMM_OPEN_PORT_DONE             = 0x13F,
+    EX_CC_EXT_COMM_CCCI_HANDSHAKE             = 0x140,
+    //autosteps
+    EX_CC_EXT_COMM_CCCI_HANDSHAKE_DONE        = 0x16F,
+    EX_CC_EXT_COMM_OUTPUT_META                = 0x170,
+    //autosteps
+    EX_CC_EXT_COMM_OUTPUT_META_DONE           = 0x180,
+    EX_CC_EXT_COMM_FLUSH_PORT                 = 0x181,
+    //autosteps
+    EX_CC_EXT_COMM_FLUSH_PORT_PART1           = 0x190,
+    EX_CC_EXT_COMM_FLUSH_PORT_PART2           = 0x1A0,
+    EX_CC_EXT_COMM_FLUSH_PORT_PART3           = 0x1B0,
+    EX_CC_EXT_COMM_FLUSH_PORT_PART4           = 0x1C0,
+    EX_CC_EXT_COMM_FLUSH_PORT_PART5           = 0x1D0,
+    //autosteps
+    EX_CC_EXT_COMM_FLUSH_PORT_DONE            = 0x1E0,
+    EX_CC_EXT_COMM_DONE                       = 0x1FF,
+    
+    // process
+    EX_PROCESS                                = 0x200,
+    EX_L1_AUDIO_RESET_DEVICE                  = 0x201,
+    EX_L1D_PAUSE_DSP                          = 0x202,
+    EX_KICK_WDT14                             = 0x203,
+    EX_TL1_FORCE_STALL                        = 0x204,
+    EX_KICK_WDT15                             = 0x205,
+    EX_MSG_OUTPUT                             = 0x206,
+    EX_OUTPUT_LOG                             = 0x207,
+    EX_USIP_CADEFA                            = 0x208,
+    EX_MD32_CADEFA                            = 0x209,
+    EX_SONIC_CADEFA                           = 0x20A,
+    EX_SONIC_CADEFA_DONE                      = 0x20B,
+    EX_OUTPUT_USIP_LOG                        = 0x20C,
+    EX_OUTPUT_MD32_LOG                        = 0x20D,
+    EX_OUTPUT_SONIC_LOG                       = 0x20E,
+    EX_OUTPUT_SONIC_LOG_DONE                  = 0x20F,
+    EX_FLC2DEBUG_ASSERT_CALLBACK              = 0x210,
+    EX_FLC2DEBUG_ASSERT_CALLBACK_DONE         = 0x211,
+    EX_DHL_CALL_EXCEPTION_CUSTOM_LOGGING      = 0x212,
+    EX_DHL_CALL_EXCEPTION_CUSTOM_LOGGING_DONE = 0x213,
+    EX_INFO_SAVE                              = 0x214,
+    INITIALIZE_FDD_TABLES                     = 0x215,
+    INITIALIZE_FDD_TABLES_DONE                = 0x216,
+    EX_SAVE_LOG                               = 0x217,
+    EX_SAVE_LOG_DONE                          = 0x218,
+    EX_PROCESS_DONE                           = 0x240,
+    
+    
+    // 1st non-offending vpe
+    EX_START_DSP_COMMUNICATION                = 0x300,
+    EX_INIT_DSP                               = 0x301,
+    EX_INIT_USIP                              = 0x302,
+    //autosteps
+    EX_KICK_WDT8                              = 0x30C,
+    EX_INIT_USIP_DONE                         = 0x30D,
+    EX_INIT_MD32                              = 0x30E,
+    //autosteps
+    EX_KICK_WDT9                              = 0x318,
+    EX_INIT_MD32_DONE                         = 0x319,
+    EX_INIT_SONIC                             = 0x31A,
+    //autosteps
+    EX_KICK_WDT10                             = 0x324,
+    EX_INIT_SONIC_DONE                        = 0x325,
+    EX_INIT_DSP_DONE                          = 0x326,
+
+    // 2nd non-offending vpe
+    EX_START_HW_COMMUNICATION                 = 0x400,
+    EX_INIT_STOP_HW                           = 0x401,
+    EX_ASM_STOP                               = 0x402,
+    EX_ASM_STOP_DONE                          = 0x403,
+    EX_DIGIRF_MIPI_PATH_STOP                  = 0x404,
+    EX_DIGIRF_MIPI_PATH_STOP_DONE             = 0x405,
+    EX_SCC_STOP                               = 0x406,
+    EX_SCC_STOP_DONE                          = 0x407,
+    EX_HW_DUMP                                = 0x408,
+    EX_DVFS_EX_DATA_READ                      = 0x409,
+    EX_HW_DUMP_DONE                           = 0x40A,
+    EX_DSP_EX_INIT                            = 0x40B,
+    EX_DSP_EX_INIT_DONE                       = 0x40C,
+    EX_INIT_STOP_HW_DONE                      = 0x40B,
+
+    // rest of the non-offending vpe
+    EX_START_INT_OFFSHOOT                     = 0x450,
+
+    // nested exception specific steps
+    EX_NESTED_LOG_INIT                        = 0x500,
+    EX_NESTED_PDAMON_INIT                     = 0x501,
+    EX_START_NESTED_PDAMON                    = 0x502,
+    EX_START_NESTED_PDAMON_DONE               = 0x503,
+    EX_NESTED_PROCESS                         = 0x504,
+    EX_NESTED_PROCESS_DONE                    = 0x505,
+
+    // reboot
+    EX_EX_REBOOT                              = 0x600,
+    EX_REMOVE_SENSITIVE_FOR_DUMP              = 0x601,
+    EX_KICK_WDT11                             = 0x602,
+    EX_SSF_DEINIT                             = 0x603,
+    EX_RESET_EXCP_SP                          = 0x604,
+    EX_WRITE_EXRECORD                         = 0x605,
+    
+    // reboot mp (silent reboot)
+    EX_EX_REBOOT_MP                           = 0x700,
+    EX_CCCI_INFO_PASSED_4MP                   = 0x780,
+    //autosteps
+    EX_CCCI_INFO_PASSED_4MP_DONE              = 0x790,
+
+
+    EX_EX_REBOOT_MP_DONE                      = 0x606,
+    EX_INIT_DUMP                              = 0x607,
+    EX_KICK_WDT12                             = 0x608,
+    EX_CCCI_INFO_PASSED                       = 0x609,
+    //autosteps
+    EX_CCCI_INFO_PASSED_DONE                  = 0x619,
+    EX_KICK_WDT13                             = 0x61A,
+    EX_SWITCH_WDT_PHASE2                      = 0x61B,
+    EX_CHECK_ELT_TRACES                       = 0x61C,
+#if defined(CHIP10992)
+    EX_CLEAN_CACHE_BEFORE_HANDOVER            = 0x61D,
+    EX_CLEAN_CACHE_BEFORE_ON_DEMAND           = 0x61E,
+#endif
+    //Ex flow complete step for silent reboot
+    EX_HANDOVER_MP                            = 0x7EF,
+
+    //Ex flow complete step for memdump
+    EX_HANDOVER                               = 0x7FF,
+
+    //Ex flow complete step for non-offending vpes
+    EX_ON_DEMAND                              = 0x7FF,
+
+    EX_RESET_HANDOVER                         = 0x8EF,
+
+#if !defined(__OFFLINE_EX_LOG_PARSER__) && !defined(_MSC_VER)
+} exception_flow_index;
+#else
+} exception_flow_index_format;
+typedef kal_uint16 exception_flow_index;
+#endif
+
+typedef enum {
+    AFOUND_NO_OUTPUT = 0x0,
+    AFOUND_TO_TRACE = 0x1,
+    AFOUND_TO_EXRECORD = 0x2
+} afound_output_types;
+
+/*******************************************************************************
+ * Constant Definition - Common
+ *******************************************************************************/
+/* structure usage */
+#define EX_UNIT_NAME_LEN 8
+#define NBR_TC_PER_CORE     (SYS_MCU_NUM_TC/SYS_MCU_NUM_CORE)
+#define NBR_VPE_PER_CORE    (SYS_MCU_NUM_VPE/SYS_MCU_NUM_CORE)
+#define NBR_CORE            (SYS_MCU_NUM_CORE)
+#define TOTAL_VPE_COUNT     (SYS_MCU_NUM_VPE)
+#define TOTAL_VICTIM_VPE_COUNT (TOTAL_VPE_COUNT - 1)
+
+#define SST_GET_VPE_ID(core,tc) ((core)*NBR_VPE_PER_CORE + (tc)/(NBR_TC_PER_CORE/NBR_VPE_PER_CORE))
+
+/* Use real vpe count for these*/
+#define EX_WAIT_VPE_MASK     ((1 << SYS_MCU_NUM_VPE) - 1)
+#define EXCEPTION_ENTER_MASK ((1 << SYS_MCU_NUM_VPE) - 1)
+/* This is hardcoded to max nbr of tlbs in interaptiv.
+ * Can be reduced to match correct count of tlbs in hw if we know tlbs wont increase after that */
+#define NUMBER_OF_TLBS 64
+
+#if defined(__MIPS_I7200__)
+#define NBR_OF_WATCH_REGS 8
+#define NBR_OF_KSCRATCH_REGS 6
+#else
+#define NBR_OF_WATCH_REGS 4
+#define NBR_OF_KSCRATCH_REGS 3
+#endif
+
+
+/*******************************************************************************
+ * Data Structure Definition - Common
+ *******************************************************************************/
+/*******************************************************************************
+ * Macro API Definition - Common
+ *******************************************************************************/
+#define EX_GET_COREID_BY_VPEID(VPEID) (VPEID/NBR_VPE_PER_CORE)
+#define EX_GET_COREVPEID_BY_VPEID(VPEID) (VPEID % NBR_VPE_PER_CORE)
+#if defined(__MD97__) || defined(__MD97P__)
+/* For Gen97 Shaolin Configuration: 6 TCs per Core. (2:2:2) */
+#define EX_GET_MAINTC_BY_VPEID(VPEID) (EX_GET_COREVPEID_BY_VPEID(VPEID) * 2)
+#else
+#error No config yet
+#endif
+/***************************** -structure start- *******************************/
+//PRAGMA_BEGIN_PACK_STRUCT
+/* Exception header, used to track the exception type */
+typedef struct ex_exception_record_header_t
+{
+    exception_type ex_type;                  /* offset: 0x, length:  2 */
+    kal_uint8      ex_offending_vpe_id;      /* offset: 0x, length:  1 */
+    kal_uint8      ex_offending_tc_id;       /* offset: 0x, length:  1 */
+    kal_uint8      ex_nvram;                 /* offset: +0x, length: 1 - for nvram */
+    kal_uint8      ex_serial_num;            /* offset: +0x, length: 1 - for nvram */
+    boot_mode_type boot_mode;                /* offset: +0x, length: 1 - normal mode/meta mode... */
+    kal_uint8      boot_status;              /* offset: +0x, length: 1 - early stage or not */
+    kal_uint32     ex_total_core;            /* offset: 0x, length:  4 - how many cores in mcu */
+} EX_HEADER_T;
+
+/* SW load information */
+#define EX_SWLABEL_LEN 32
+#define EX_SWPRJ_LEN 32
+#define EX_SWFLAVOR_LEN 32
+#define EX_SWBUILDTIME_LEN 16
+typedef struct ex_sw_loadinfo_t
+{
+    kal_char    sw_label[EX_SWLABEL_LEN];
+    kal_char    sw_project_name[EX_SWPRJ_LEN];
+    kal_char    sw_flavor[EX_SWFLAVOR_LEN];
+    kal_char    sw_buildtime[EX_SWBUILDTIME_LEN];
+} EX_LOADINFO_T;
+
+
+/* First Offender information */
+typedef struct _ex_timestamp_struct
+{
+    kal_uint32 USCNT;      /* offset: +0x, length: 4 */  /* us counter saved exception occuring time */
+    kal_uint32 frameno;    /* offset: +0x, length: 4 */  /* frameno saved exception occuring time */
+} ex_timestamp_struct;
+typedef struct _ex_basic_offending_info_t
+{
+    ex_timestamp_struct ex_timestamp;                         /* offset: +0x, length: */
+    kal_char            execution_unit[EX_UNIT_NAME_LEN];     /* offset: +0x, length: */
+    kal_uint32          processing_lisr;                      /* offset: +0x, length: */
+    kal_uint32          stack_ptr;                            /* offset: +0x, length: */
+    kal_uint32          lr;                                   /* offset: +0x, length: */
+    kal_uint32          pc;                                   /* offset: +0x, length: */
+    kal_uint8           tc_status;                            /* offset: +0x, length: */
+    kal_uint8           pad[3];                               /* offset: +0x, length: */
+} EX_BASIC_OFFENDING_INFO_T;
+
+/* Environment information */
+typedef struct ex_diagnosis_info_t
+{   /* Diagnosis information for Healthy Check */
+    kal_char         healthy_check_owner[EX_UNIT_NAME_LEN];   /* offset: +0x, length: 8 */
+    EX_DIAGNOSIS_T   corrupted_owner;                         /* offset: +0x, length: 1 */
+    kal_uint8        ELM_status;                              /* offset: +0x, length: 1 */
+    kal_uint8        pad[2];                                  /* offset: +0x, length: 2 */
+} EX_DIAGNOSISINFO_T;
+typedef struct ex_environment_info_t
+{
+    kal_uint32  interrupt_mask[2];                            /* offset: +0x, length: 8 */
+    EX_DIAGNOSISINFO_T  diagnosis;                            /* offset: +0x, length: 12 */
+    kal_uint32  force_dump;                                   /* offset: +0x, length: 4 */
+} EX_ENVINFO_T;
+
+
+/*******************************************************************************
+ * Data Structure Definition - general cpu info
+ *******************************************************************************/
+typedef struct _ex_gpr_reg_t
+{
+    kal_uint32 ZERO;
+    kal_uint32 AT;
+    kal_uint32 V0;
+    kal_uint32 V1;
+    kal_uint32 A0;
+    kal_uint32 A1;
+    kal_uint32 A2;
+    kal_uint32 A3;
+    kal_uint32 T0;
+    kal_uint32 T1;
+    kal_uint32 T2;
+    kal_uint32 T3;
+    kal_uint32 T4;
+    kal_uint32 T5;
+    kal_uint32 T6;
+    kal_uint32 T7;
+    kal_uint32 S0;
+    kal_uint32 S1;
+    kal_uint32 S2;
+    kal_uint32 S3;
+    kal_uint32 S4;
+    kal_uint32 S5;
+    kal_uint32 S6;
+    kal_uint32 S7;
+    kal_uint32 T8;
+    kal_uint32 T9;
+    kal_uint32 K0;
+    kal_uint32 K1;
+    kal_uint32 GP;
+    kal_uint32 SP;
+    kal_uint32 FP_OR_S8;
+    kal_uint32 RA;
+} EX_GPR_REG_T;
+
+/* NOTE: if changing this struct, please chagne SAVE_EX_CPU_REG_T @ ex_hdlr_gcc.S macro as well */
+typedef struct _ex_cpu_reg_t
+{
+    EX_GPR_REG_T GPR;
+    kal_uint32 hi;
+    kal_uint32 lo;
+    kal_uint32 status;
+    kal_uint32 cause;
+    kal_uint32 EPC;
+    kal_uint32 ErrorEPC;
+    kal_uint32 BadVAddr;
+    kal_uint32 Count;
+    kal_uint32 VPEControl;
+    kal_uint32 Context;
+    kal_uint32 ContextConfig;
+    kal_uint32 EntryHi;
+    kal_uint32 ErrCtl;
+#if defined(__MIPS_I7200__)
+    kal_uint32 BadInstr;
+    kal_uint32 BadInstrX;
+#endif
+} EX_CPU_REG_T;
+
+// Dormant Save
+typedef struct _ex_min_cpu_reg_t
+{
+    kal_uint32 RA;
+    kal_uint32 status;
+    kal_uint32 EPC;
+    kal_uint32 cause;
+    kal_uint32 SP;
+    kal_uint32 BadVAddr;
+    kal_uint32 reserved0;
+    kal_uint32 reserved1;
+} EX_CPU_MIN_REG_T;
+
+typedef struct _ex_tc_reg_t
+{
+    EX_GPR_REG_T GPR;
+    kal_uint32 hi;
+    kal_uint32 lo;
+    /* Thread Context per-TC */
+    kal_uint32 TCStatus;
+    kal_uint32 TCBind;
+    kal_uint32 TCRestart;
+    kal_uint32 TCHalt;
+    kal_uint32 TCContext;
+    kal_uint32 TCSchedule;
+#if defined(__MIPS_IA__)
+    kal_uint32 TCScheFBack;
+    kal_uint32 TCOpt;
+#endif
+    kal_uint32 UserLocal;
+    kal_uint32 LLAddr;
+    kal_uint32 EntryHi;
+    kal_uint32 Status;
+#if defined(__MIPS_I7200__)
+    kal_uint32 BatchCacheOpStatus;
+#endif
+#if defined(__MIPS_IA__)
+    kal_uint32 PerfCtl0;
+    kal_uint32 PerfCtl1;
+
+#endif
+    kal_uint32 PerfCnt0;
+    kal_uint32 PerfCnt1;
+#if defined(__MIPS_I7200__)
+    kal_uint32 PerfCnt2;
+    kal_uint32 PerfCnt3;
+#endif
+} EX_TC_REG_T;
+
+typedef struct _ex_vpe_reg_t
+{
+    /* Thread Context per-VPE */
+    kal_uint32 SRSConf0;
+    kal_uint32 SRSCtl;
+    kal_uint32 SRSMap;
+
+    /* Configuration and Status */
+    kal_uint32 Config;
+    kal_uint32 Config2;
+    kal_uint32 Config5;
+    kal_uint32 Config7;
+    kal_uint32 EBase;
+    kal_uint32 IntCtl;
+
+    /*TLB Management */
+    kal_uint32 Index;
+    kal_uint32 EntryLo0;
+    kal_uint32 EntryLo1;
+    kal_uint32 Context;
+    kal_uint32 ContextConfig;
+    kal_uint32 PageMask;
+    kal_uint32 PageGrain;
+    kal_uint32 Wired;
+    kal_uint32 BadVAddr;
+
+    /* Memory Segmentation */
+    kal_uint32 SegCtl0;
+    kal_uint32 SegCtl1;
+    kal_uint32 SegCtl2;
+
+    /* Exception Control */
+    kal_uint32 Cause;
+    kal_uint32 EPC;
+    kal_uint32 ErrorEPC;
+#if defined(__MIPS_I7200__)
+    kal_uint32 BadInstr;
+    kal_uint32 BadInstrX;
+    kal_uint32 BEVVA;
+#endif
+
+    /* Timer */
+    kal_uint32 Count;
+    kal_uint32 Compare;
+
+    /* Cache Management */
+    kal_uint32 ITagLo;
+    kal_uint32 IDataLo;
+    kal_uint32 IDataHi;
+    kal_uint32 DTagLo;
+    kal_uint32 DTagHi;
+    kal_uint32 DDataLo;
+#if defined(__MIPS_IA__)
+    kal_uint32 L23TagLo;
+    kal_uint32 L23DataLo;
+    kal_uint32 L23DataHi;
+#endif
+    kal_uint32 ErrCtl;
+    kal_uint32 CacheErr;
+
+    /* VPE Management per-VPE */
+    kal_uint32 VPEControl;
+    kal_uint32 VPEConf0;
+    kal_uint32 VPEConf1;
+#if defined(__MIPS_IA__)
+    kal_uint32 VPESchedule;
+    kal_uint32 VPEScheFBack;
+#endif
+    kal_uint32 VPEOpt;
+
+
+    /* Performance Monitoring */
+    /* Debug and Trace */
+    kal_uint32 Debug;
+    kal_uint32 DEPC;
+    kal_uint32 WatchLo[NBR_OF_WATCH_REGS];
+    kal_uint32 WatchHi[NBR_OF_WATCH_REGS];
+    kal_uint32 YQMask;
+#if defined(__MIPS_I7200__)
+    kal_uint32 KScratch[NBR_OF_KSCRATCH_REGS];
+#endif
+}EX_VPE_REG_T;
+
+typedef struct _ex_cm2_error_info_t
+{
+    kal_uint32 ErrorMask;
+    kal_uint32 ErrorCause;
+    kal_uint32 ErrorAddr;
+    kal_uint32 ErrorMult;
+} EX_CM2_ERROR_INFO_T;
+
+typedef struct _ex_core_reg_t
+{
+    /* VPE Management per-CORE */
+    kal_uint32 MVPControl;
+    kal_uint32 MVPConf0;
+    kal_uint32 MVPConf1;
+    kal_uint32 CDMMBase;
+#if defined(__MIPS_I7200__)
+    kal_uint32 BatchCacheOpControl;
+    kal_uint32 SRAMCoreControl;
+#endif
+    EX_VPE_REG_T vperegs[NBR_VPE_PER_CORE];
+    EX_TC_REG_T tcregs[NBR_TC_PER_CORE];
+} EX_CORE_REG_T;
+
+typedef struct _ex_core_info_t
+{
+    /* VPE Management per-CORE */
+    kal_uint32 MVPControl;
+    kal_uint32 MVPConf0;
+    kal_uint32 MVPConf1;
+    kal_uint32 CDMMBase;
+#if defined(__MIPS_I7200__)
+    kal_uint32 BatchCacheOpControl;
+    kal_uint32 SRAMCoreControl;
+#endif
+} EX_CORE_INFO_T;
+
+#if !defined(__OFFLINE_EX_LOG_PARSER__)
+#define EX_CACHE_LINES_SAVED 4
+typedef struct _ex_interaptiv_t
+{
+   EX_CORE_REG_T coreregs[NBR_CORE];
+   EX_CM2_ERROR_INFO_T cm2_error_info;
+   void *cm2_reg_dump;
+   /* struct CPC_State? */
+   /* struct GIC_State? */
+   /* struct ITC_State? */
+
+   struct l1_icache_line offending_l1_icache_data[EX_CACHE_LINES_SAVED];
+   struct l2_cache_line offending_l2_icache_data[EX_CACHE_LINES_SAVED];
+#if defined(__MIPS_MMU_EXIST__)
+   MIPS_MMU_INFO_T tlbs[SYS_MCU_NUM_VPE][NUMBER_OF_TLBS];
+#endif
+} EX_INTERAPTIV_T;
+#endif /* !__OFFLINE_EX_LOG_PARSER__ */
+
+typedef struct _ex_info_t
+{
+    EX_CPU_REG_T *SST_Exception_Regs;
+    kal_uint32 SST_Exception_Timestamp;
+    kal_uint32 SST_Exception_GLB_Timestamp;
+    exception_enter_category ExceptionEnterCategory;
+    kal_uint16 global_exception_flag;
+    kal_uint8 vpeid;
+    kal_uint8 tcid;
+} EX_INFO_T;
+
+
+/*******************************************************************************
+ * Data Structure Definition - FULL_OFFENDING_INFO for the 1st offender
+ *******************************************************************************/
+#define EX_STACK_DUMP_LEN 7
+typedef struct _ex_full_offending_info_t
+{
+    EX_TC_REG_T             tc_info;
+    EX_VPE_REG_T            vpe_info;
+    EX_CORE_INFO_T          core_info;
+    exception_enter_category  ex_enter_category;
+    kal_uint8               pad[3];
+    kal_uint32              stack_dump[EX_STACK_DUMP_LEN];
+} EX_FULL_OFFENDING_INFO_T;
+
+/*******************************************************************************
+ * Data Structure Definition - VICTIM_INFO
+ *******************************************************************************/
+typedef struct _ex_victim_info_t
+{
+    kal_uint8               vpeid;
+    kal_uint8               tcid;
+    exception_enter_category  ex_enter_category;
+    kal_uint16               global_exception_flag;
+    kal_uint32              sst_exception_timestamp;
+    kal_uint32              offendingPC;
+    EX_CPU_REG_T            cpu_info;
+} EX_VICTIM_INFO_T;
+
+typedef struct _ex_ne_info_t
+{
+    exception_enter_category  ex_enter_category;
+    kal_uint16               global_exception_flag;
+    kal_uint32              sst_exception_timestamp;
+    kal_uint32              offendingPC;
+    EX_CPU_REG_T            cpu_info;
+} EX_NE_INFO_T;
+
+/*******************************************************************************
+ * Data Structure Definition - Fatal Error in general
+ *******************************************************************************/
+
+#define EX_FATALERR_ANALYSIS_OWNER_LEN 8
+#define EX_FATALERR_ANALYSIS_CORE_LEN  7
+#define EX_FATALERR_DESCRIPTION_PARAM_LEN 16
+#define EX_FATALERR_ANALYSIS_PARAM_LEN 40
+#define EX_FATALERR_GUIDELINE_PARAM_LEN 16
+
+typedef struct ex_fatalerror_code_t
+{
+    kal_uint32 code1;
+    kal_uint32 code2;
+    kal_uint32 code3;
+} EX_FATALERR_CODE_T;
+
+typedef struct ex_analysis_t
+{
+    kal_char    offender[EX_UNIT_NAME_LEN];
+    kal_bool    is_cadefa_supported;
+    kal_uint8   pad[7];
+
+    // TODO: remove
+    kal_uint32 trace;
+    kal_uint8 param[EX_FATALERR_ANALYSIS_PARAM_LEN];
+} EX_ANALYSIS_T;
+
+typedef struct ex_description_t
+{
+    kal_uint32 trace;
+    kal_uint8 param[EX_FATALERR_DESCRIPTION_PARAM_LEN];
+} EX_DESCRIPTION_T;
+
+typedef struct ex_guideline_t
+{
+    kal_uint32 trace;
+    kal_uint8 param[EX_FATALERR_GUIDELINE_PARAM_LEN];
+} EX_GUIDELINE_T;
+
+
+/*******************************************************************************
+ * Data Structure Definition - Fatal Error extended
+ *******************************************************************************/
+
+#define EX_CTRLBUFF_SRCFILE_LEN 32 /* filename */
+typedef struct
+{
+    kal_char ex_his_owner[EX_UNIT_NAME_LEN];                        /* control buffer owner */
+    kal_char ex_his_source[EX_CTRLBUFF_SRCFILE_LEN]; /* source file */
+    kal_uint32 ex_his_line;                          /* line number */
+    kal_uint32 ex_his_count;                         /* number of identical entries */
+} EX_CTRLBUFF_HISTORY_T;
+
+typedef struct
+{
+    kal_uint32 ex_buf_RTOS_header1;  /* RTOS overhead 1, 0: allocated, else next pointer */
+    kal_uint32 ex_buf_RTOS_header2;  /* RTOS overhead 2, pointer to its control block */
+    kal_uint32 ex_buf_KAL_header1; /* KAL overhead 1, header (0xF1F1F1F1) */
+    kal_uint32 ex_buf_KAL_header2; /* KAL overhead 2, task ID */
+    kal_uint32 ex_buf_KAL_header3; /* KAL overhead 3, pointer to its control block) */
+    kal_uint32 ex_buf_poolID;      /* Buffer pointer */
+    kal_uint32 ex_buf_KAL_footer1; /* KAL footer: 0xF2F2F2F2 */
+    kal_uint32 ex_buf_KAL_footer2; /* KAL footer appended after size requested */
+} EX_CTRLBUFF_COMMON_T;
+
+typedef struct
+{
+    kal_char ex_buf_source[EX_CTRLBUFF_SRCFILE_LEN];  /* Source file name */
+    kal_uint32 ex_buf_line;                           /* line number */
+} EX_CTRLBUFF_OWNER_T;
+
+typedef union
+{
+    EX_CTRLBUFF_HISTORY_T history; /* length: 32 */
+    EX_CTRLBUFF_COMMON_T common;   /* length: 32 */
+} EX_CTRLBUFF_INFO_T;
+
+typedef struct
+{
+    kal_uint32 ex_ctrlbuf_size;           /* offset: +0x13C, length: 4 */   /* control buffer size per entry */
+    kal_uint32 ex_ctrlbuf_num;            /* offset: +0x140, length: 4 */   /* total number of entries */
+    EX_CTRLBUFF_INFO_T ex_ctrlbuf_top;    /* offset: +0x144, length: 32 */   /* top occupation history node */
+    EX_CTRLBUFF_INFO_T ex_ctrlbuf_second; /* offset: +0x164, length: 32 */   /* second occupation history node */
+    EX_CTRLBUFF_INFO_T ex_ctrlbuf_third;  /* offset: +0x184, length: 32 */   /* third occupation history node */
+    EX_CTRLBUFF_OWNER_T ex_monitor[3];    /* offset: +0x1A4, length: 48 */
+    kal_uint32 ex_reserved[2];            /* offset: +0x1D4, length: 16 */   /* reserved */
+} EX_CTRLBUFF_T;
+
+typedef struct
+{
+    module_type ex_his_module;  /* module ID */
+    kal_uint8 ex_his_source[EX_UNIT_NAME_LEN]; /* timer name */
+    kal_uint32 ex_his_hf;       /* es buffer handling function */
+    kal_uint32 ex_his_count;    /* number of identical entries */
+} EX_ESBUFF_HISTORY_T;
+
+typedef struct
+{
+    kal_uint32 ex_esbuf_size;              /* offset: +0x13C, length: 4 */   /* event scheduler buffer size per entry */
+    kal_uint32 ex_esbuf_num;               /* offset: +0x140, length: 4 */   /* total number of entries */
+    EX_ESBUFF_HISTORY_T ex_esbuf_top;      /* offset: +0x144, length: 20 */   /* top occupation history node */
+    EX_ESBUFF_HISTORY_T ex_esbuf_second;   /* offset: +0x158, length: 20 */   /* second occupation history node */
+    EX_ESBUFF_HISTORY_T ex_esbuf_third;    /* offset: +0x16C, length: 20 */   /* third occupation history node */
+} EX_ESBUFF_T;
+
+typedef struct
+{
+    kal_uint16 ex_q_src_mod;        /* source module ID */
+    kal_uint8 ex_q_count;           /* total number of identical message */
+    kal_uint8 ex_q_config_entry;    /* total number of entries */
+    kal_uint16 ex_q_msg_id;         /* message ID */
+    kal_uint16 ex_q_cur_mes_no;     /* tatal number of messages left in queue */
+} EX_QUEUE_T;
+
+typedef struct
+{
+    kal_char ex_task_name[EX_UNIT_NAME_LEN];       /* task name */
+    kal_char ex_task_stack_gp[8];     /* guard pattern:STACK_END */
+    kal_uint32 ex_task_cur_status;    /* task current status, eg. RUNNING, READY etc */
+    EX_QUEUE_T ex_task_external_q;    /* task external queue */
+    EX_QUEUE_T ex_task_internal_q;    /* task internal queue */
+    kal_uint32 ex_reserved;           /* reserved */
+} EX_TASKINFO_T;
+
+
+
+/*******************************************************************************
+ * Constant Definition and Exported Type - Fatal Error
+ *******************************************************************************/
+
+#define EX_MAX_TASK_DUMP 4
+#define EX_QUEUE_TRACK 20
+typedef struct ex_fatalerror_t
+{
+    EX_FATALERR_CODE_T error_code;                 /* offset: +0x, length: */
+    EX_ANALYSIS_T analysis;                        /* offset: +0x, length:  */
+
+    union
+    {
+        EX_CTRLBUFF_T ctrl_buff;                   /* offset: +0x, length:  */
+        EX_ESBUFF_T es_buff;                       /* offset: +0x, length: */
+        EX_TASKINFO_T task_info[EX_MAX_TASK_DUMP]; /* offset: +0x, length:  */
+    } info;
+
+    kal_uint32  ext_queue_pending_cnt;
+    kal_uint32  ext_queue_pending[EX_QUEUE_TRACK];
+    EX_DESCRIPTION_T description;                  /* offset: +0x, length: */
+    EX_GUIDELINE_T guideline;                      /* offset: +0x, length: */
+} EX_FATALERR_T;
+
+typedef struct ex_nested_fatalerror_t
+{
+    EX_FATALERR_CODE_T error_code;                 /* offset: +0x, length: */
+} EX_NE_FATALERR_T;
+
+
+/*******************************************************************************
+ * Constant Definition and Exported Type - Assert Failure
+ *******************************************************************************/
+#define EX_HEADER_SIZE                sizeof(EX_HEADER_T)
+#define EX_SWVER_LEN                  sizeof(EX_LOADINFO_T)
+#define EX_ENVINFO_SIZE               sizeof(EX_ENVINFO_T)
+#define EX_BASIC_OFFENDING_INFO_SIZE  sizeof(EX_BASIC_OFFENDING_INFO_T)
+#define EX_FULL_OFFENDING_INFO_SIZE   sizeof(EX_FULL_OFFENDING_INFO_T)
+#define EX_TOTAL_VICTIM_INFO_SIZE     ((sizeof(EX_VICTIM_INFO_T))*TOTAL_VICTIM_VPE_COUNT)
+
+#define EX_ASSERTFAIL_FILEPATH_LEN 256
+#define EX_ASSERTFAIL_FILENAME_LEN 64
+#define EX_GUARD_LEN 4
+#define EX_ASSERTFAIL_SIZE EX_ASSERTFAIL_FILEPATH_LEN + \
+                           EX_ASSERTFAIL_FILENAME_LEN + \
+                           sizeof(kal_uint32) * 4 + \
+                           EX_GUARD_LEN
+
+
+#define EX_ASSERTFAIL_DUMP_LEN  ((EX_LOG_SIZE - (EX_HEADER_SIZE + EX_SWVER_LEN + \
+                                 EX_BASIC_OFFENDING_INFO_SIZE +  EX_ENVINFO_SIZE + \
+                                 EX_FULL_OFFENDING_INFO_SIZE + \
+                                 EX_ASSERTFAIL_SIZE + EX_TOTAL_VICTIM_INFO_SIZE)) & ~(4-1))
+
+
+typedef struct ex_assert_fail_t
+{
+    kal_char filepath[EX_ASSERTFAIL_FILEPATH_LEN];
+    kal_char filename[EX_ASSERTFAIL_FILENAME_LEN];  /* offset: +0xD8, length: 64 */
+    kal_uint32 linenumber;                          /* offset: +0xF0, length: 4 */
+    kal_uint32 parameters[3];                       /* offset: +0xF4, length: 12 */
+    kal_uint8 dump[EX_ASSERTFAIL_DUMP_LEN];         /* offset: +0x100, length: 244 */
+    kal_uint32 custom_param;                        /* offset: +0x1FC, length: 4 */
+} EX_ASSERTFAIL_T;
+
+typedef struct ex_nested_assert_fail_t
+{
+    kal_char filename[EX_ASSERTFAIL_FILENAME_LEN];  /* length: 64 */
+    kal_uint32 linenumber;                          /* length: 4 */
+} EX_NE_ASSERTFAIL_T;
+
+
+/*******************************************************************************
+ * Globally Exported Data Structure
+ *******************************************************************************/
+typedef union
+{
+    EX_FATALERR_T fatalerr;
+    EX_ASSERTFAIL_T assert;
+} EX_CONTENT_T;
+
+typedef union
+{
+    EX_NE_FATALERR_T fatalerr;
+    EX_NE_ASSERTFAIL_T assert;
+} EX_NE_CONTENT_T;
+
+/* Standard strutcure of an exception log */
+typedef struct ex_exception_log_t
+{
+    EX_HEADER_T                  header;                          /* offset: +0x0 length: */
+    EX_LOADINFO_T                load_info;                       /* offset: +0x, length: */
+    EX_BASIC_OFFENDING_INFO_T    basic_info;
+    EX_ENVINFO_T                 envinfo;                         /* offset: , length:  */
+    EX_FULL_OFFENDING_INFO_T     full_info;
+    EX_CONTENT_T                 content;                         /* offset: , length:  */
+    EX_VICTIM_INFO_T             victim_info[TOTAL_VICTIM_VPE_COUNT];
+} EX_LOG_T;
+
+typedef struct ex_nested_exception_log_t
+{
+    exception_type ex_type;
+    EX_NE_INFO_T   info;
+    EX_NE_CONTENT_T content;
+} EX_NE_LOG_T;
+
+/* parameter to ex_init_log */
+typedef struct
+{
+    exception_type type;
+    kal_bool ext;
+    kal_uint32 *code1;
+    kal_uint32 *code2;
+    kal_uint32 *code3;
+    kal_uint32 e1;
+    kal_uint32 e2;
+    kal_uint32 e3;
+    ASSERT_DUMP_PARAM_T *dump_param;
+    kal_uint32 custom_param;
+} EX_INIT_LOG_PARAM_T;
+
+/*******************************************************************************
+ * ELT nvram reading format
+ *******************************************************************************/
+/*==========================================*/
+/* NOTE: The structure is frozen; offset of content should be FIXED. */
+/*==========================================*/
+/* TODO */
+
+
+/***************************** -structure end- *******************************/
+//PRAGMA_END_PACK_STRUCT
+/*******************************************************************************
+ * Globally Exported macro
+ *******************************************************************************/
+#define EX_LOG_DESCRIPTION_PARAM ex_log_ptr->content.fatalerr.description.param
+#define EX_LOG_ANALYSIS_PARAM ex_log_ptr->content.fatalerr.analysis.param
+#define EX_LOG_ANALYSIS_OWNER ex_log_ptr->content.fatalerr.analysis.offender
+#define EX_LOG_ANALYSIS_CADEFA ex_log_ptr->content.fatalerr.analysis.is_cadefa_supported
+#define EX_LOG_GUIDELINE_PARAM ex_log_ptr->content.fatalerr.guideline.param
+#if !defined(__MTK_TARGET__) || (defined(__MTK_TARGET__) && defined(DRV_DEBUG))
+#define SET_EX_STEP(x)
+#define GET_EX_STEP()
+#define GET_NE_STEP()
+#define GET_EX_STEP_BY_VPE(vpe)
+#define GET_NE_STEP_BY_VPE(vpe)
+#define SET_HS(core, status)
+#define GET_HS(core)
+#else
+#define SET_EX_STEP(x)                         ex_set_step_logging(x)
+#define GET_EX_STEP()                          ex_get_step_logging(kal_get_current_vpe_id(), KAL_FALSE)
+#define GET_NE_STEP()                          ex_get_step_logging(kal_get_current_vpe_id(), KAL_TRUE)
+#define GET_EX_STEP_BY_VPE(vpe)                ex_get_step_logging((kal_uint32)vpe, KAL_FALSE)
+#define GET_NE_STEP_BY_VPE(vpe)                ex_get_step_logging((kal_uint32)vpe, KAL_TRUE)
+#define SET_HS(core, status)                   ex_set_value((kal_uint32*)ex_##core##_hs_ptr, status)
+#define GET_HS(core)                           ex_get_value((kal_uint32*)ex_##core##_hs_ptr)
+#endif /* !defined(__MTK_TARGET__) || (defined(__MTK_TARGET__) && defined(DRV_DEBUG)) */
+
+
+/*******************************************************************************
+ * Globally Exported Function Prorotype
+ *******************************************************************************/
+
+extern void ex_init_log();
+extern kal_uint32 ex_get_corenum();
+extern void ex_init_nested_log(kal_uint32 ex_category);
+extern void ex_post_init_log();
+extern void ex_define_main_reason();
+extern void ex_save_log();
+extern void ex_output_log(void);
+extern kal_int8 ex_init_ctrl_buff_log(kal_uint32 *target_ptr, kal_uint32 code1, kal_uint32 code2, kal_char **offender_source_file_full_name);
+extern kal_int8 ex_init_es_buff_log(kal_uint32 *target_ptr);
+extern void ex_memory_dump_init(void);
+extern void ex_output_loadinfo(kal_bool is_meta);
+extern kal_bool ex_isNested(void);
+extern kal_uint32* INT_GetExlog(void);
+extern kal_bool ex_IsSupport_OnlineSST_For_GAT(kal_int32 code1);
+extern void ex_output_afound(afound_output_types output_types);
+
+#ifdef __MTK_TARGET__
+extern void ex_reset_hw(void);
+extern void ex_reboot(void);
+
+extern void ex_init_step_logging(void);
+extern void ex_set_step_logging(kal_uint16 start_step);
+extern void ex_fire_extern_step_logging(kal_uint32 info);
+extern kal_bool INT_IsAnyCore_Enter_Exception();
+extern void INT_EnterExceptionForOtherCore();
+extern kal_uint32 sst_get_main_exception_vpe(void);
+extern kal_uint32 sst_get_main_exception_core(void);
+
+extern kal_bool ex_init_pcmon();
+extern kal_bool ex_init_nested_pcmon();
+extern void ex_init_dsm();
+extern void ex_hw_dump();
+extern void ex_hw_data_save();
+extern void KickWDT();
+extern void ex_switchWDT_phase1();
+
+#if defined(__TST_MODULE__)
+extern void ex_reappear_log(void);
+extern void ex_cadefa(kal_bool bypass_nested, kal_bool is_meta);
+extern void ex_cadefa_common(kal_bool bypass_nested, kal_bool bLocalCore, EX_LOG_T * log_ptr);
+extern void ex_output_for_meta(void);
+#else
+#define ex_reappear_log()
+#define ex_cadefa(bypass_nested, kal_meta)
+#define ex_cadefa_common(bypass_nested, bLocalCore, log_ptr)
+#define ex_output_for_meta()
+#endif /* __TST_MODULE__ */
+
+#endif  /* __MTK_TARGET__ */
+
+#ifdef __STACK_ALIGN_MPU__
+kal_uint32 ex_stack_overflow_check_by_mpu(void);
+#endif
+
+extern kal_uint8 sst_increment_exception_count();
+extern void ex_backup_exception_count();
+/*******************************************************************************
+ * Globally Exported variables
+ *******************************************************************************/
+extern EX_LOG_T *ex_log_ptr;
+#if defined(__MTK_TARGET__)
+extern kal_atomic_int32 SST_occupied_core_op_atomic[];
+extern kal_uint32 sst_dc_offshoot_vpeid;
+extern kal_uint32 sst_hw_offshoot_vpeid;
+extern kal_uint32 INT_Exception_Type;
+extern kal_uint32 sst_offending_coreid;
+extern kal_uint32 sst_offending_vpeid;
+extern kal_uint32 sst_offending_tcid;
+extern kal_uint32 INT_Exception_GLBTS;
+
+extern void sst_snprintf(char *s, kal_uint32 size, const char *template, ...);
+#else
+#define sst_snprintf kal_snprintf
+#endif /* __MTK_TARGET__ */
+
+
+#endif /* _EX_ITEM_H */
+
+
diff --git a/mcu/service/sst/include/ex_mem_manager.h b/mcu/service/sst/include/ex_mem_manager.h
new file mode 100644
index 0000000..76bb58b
--- /dev/null
+++ b/mcu/service/sst/include/ex_mem_manager.h
@@ -0,0 +1,344 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2001
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   ex_memory_manager.h
+ *
+ * Project:
+ * --------
+ *   Moly
+ *
+ * Description:
+ * ------------
+ *   
+ *
+ * Author:
+ * -------
+ *  
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef __EX_MEM_MANAGER_H__
+#define __EX_MEM_MANAGER_H__
+
+
+
+
+#if !defined(__ASSEMBLER__)
+#include "ex_mem_manager_public.h"
+
+/*******************************************************************************
+ * Define data structure.
+ *******************************************************************************/
+typedef enum {
+    EMM_QUERY_FAIL = 0x1,
+    EMM_CHECK_FAIL = 0x2,
+    EMM_NO_CCCI_FAIL = 0x4,
+    EMM_PERMISSION_FAIL = 0x8,
+    EMM_UNSUPPORTED_SRC_TYPE_FAIL = 0x10,
+    EMM_CHECK_SUCCESS = 0x80,
+} EMM_QUERY_RESULT;
+
+typedef enum {
+    EMM_BUF_INMD_FROM_AP = 0x1,
+    EMM_BUF_EXMD_STATIC,
+    EMM_BUF_MAX,
+} EMM_BUF_SOURCE;
+
+#define EMM_MINIMUM_SIZE        (sizeof(kal_uint32))
+
+#if defined(__MD97__) || defined(__MD97P__)
+#define EMM_EXRECORD_LEN        (1024*10)
+/*EMM BOOTUPSTARTUPTRACE_START 76 bytes from EMM Debug info start*/
+#define EMM_BOOTUPTRACE_START   (EMM_EXRECORD_LEN+76)
+
+#define EMM_DBGINFO_LEN         1024
+#define EMM_USERDIRINFO_LEN     (3*1024)
+#define EMM_BOOTUPTRACE_LEN     (3*1024)
+
+#define EMM_IDLETASK_SIZE       (352/EMM_MINIMUM_SIZE)
+#define EMM_SLP_SIZE            (68/EMM_MINIMUM_SIZE)
+#define EMM_DORMANT_SIZE        (96/EMM_MINIMUM_SIZE)
+#define EMM_ELM_SIZE            (300/EMM_MINIMUM_SIZE)
+#define EMM_BUS_SIZE            (8*12/EMM_MINIMUM_SIZE)
+#define EMM_SWLA_SIZE           (1440/EMM_MINIMUM_SIZE)
+#define EMM_NVRAM_DBG_SIZE      (616/EMM_MINIMUM_SIZE)
+#else
+#error No config yet
+#endif
+
+
+#define EMM_INFO_TOTAL_LEN      (EMM_DBGINFO_LEN+EMM_USERDIRINFO_LEN)
+
+
+/* dont use SYS_MCU_NUM_CORE SYS_MCU_NUM_VPE here because there might different
+ * value for different variant in same generation. use here max value
+ * for this generation */
+#if defined(__MD97__) || defined(__MD97P__)
+#define EMM_CORENUM              4
+#define EMM_VPENUM               3  // per core
+#else
+#error No config yet
+#endif
+
+
+#define EMM_BLOCKNUM             (EMM_CORENUM)
+#define EMM_BOOTUPTRACE_BLOCKLEN (((EMM_BOOTUPTRACE_LEN/EMM_BLOCKNUM)>>2)<<2)
+
+#define EMM_EXRECORD_WORDLEN          (EMM_EXRECORD_LEN/EMM_MINIMUM_SIZE)
+#define EMM_BOOTUPTRACE_BLOCKWORDLEN  (EMM_BOOTUPTRACE_BLOCKLEN/EMM_MINIMUM_SIZE)
+#define EMM_DBGINFO_WORDLEN           (EMM_DBGINFO_LEN/EMM_MINIMUM_SIZE)
+#define EMM_USERDIRINFO_WORDLEN       (EMM_USERDIRINFO_LEN/EMM_MINIMUM_SIZE)
+
+
+#define EMM_INDICATOR 0x12345678    /* magic num */
+
+#define EMM_DIRINFO_GUARD_PATTERN_START(_index) ((0xEDEC << 16) | _index)
+#define EMM_DIRINFO_GUARD_PATTERN_END(_index)   ((0xCEDE << 16) | _index)
+
+#define EMM_HS2_TRACE_START_PATTERN 0x48533230
+
+typedef struct _EMM_INFO {
+    EMM_BUF_SOURCE  bufSourceType;
+    kal_uint32      u32Mainbuf_Addr;
+    kal_uint32      bufLen;
+
+    kal_uint32      *pexRecord;
+    kal_uint32      exRecordLen;
+
+    kal_uint32      *pBootupTraceInfo[EMM_BLOCKNUM];
+    kal_uint32      BootupTraceWordLen[EMM_BLOCKNUM];
+    
+    kal_uint32      *pdbgInfo;
+    kal_uint32      dbgInfoWordLen;
+
+    kal_uint32      *pUserDirInfo;  //user direct info
+    kal_uint32      userDirInfoWordLen; //user direct info
+    
+    kal_uint8       bootTraceFinish;
+    kal_uint8       resultFail;
+} EMM_INFO;
+
+typedef struct {
+    kal_uint32 magic_number;
+    kal_uint32 last_write_index[EMM_CORENUM*EMM_VPENUM];
+    kal_uint32 last_write_vpe;
+    kal_uint32 reserved[2]; // make header 16 byte alignment for better looks
+    kal_uint32 log[EMM_INDEX_MAX];
+} EMM_DBGINFO_STRUC;
+
+typedef struct _EMM_BUF_CONTENT {
+    kal_uint32  exRecord[EMM_EXRECORD_WORDLEN];
+    kal_uint32  dbgInfo[EMM_DBGINFO_WORDLEN];
+} EMM_BUF_CONTENT;
+
+typedef struct _EMM_SWLA_PAIR {
+    kal_char name[4];
+    kal_uint32 timestamp;
+	kal_uint8 core_id;
+	kal_uint8 tc_id;
+	kal_uint8  reserved[2];
+} EMM_SWLA_PAIR;
+
+#if defined (__HIF_CCCI_SUPPORT__) && defined(__CCCI_PRODUCT_TYPE_THIN_MODEM__)
+typedef enum _SAP_SHM_QUERY_RESULT {
+    SAP_SHM_EXRECORD_QUERY_FAIL = 0x1,
+    SAP_SHM_EXRECORD_CHECKING_FAIL = 0x2,
+    SAP_SHM_MEMDUMP_QUERY_FAIL = 0x4,
+    SAP_SHM_MEMDUMP_CHECKING_FAIL = 0x8
+} SAP_SHM_QUERY_RESULT;
+
+typedef struct _SAP_SHM {
+    kal_uint32 ex_addr;   // small ap exception record @ SHM
+    kal_uint32 ex_size;
+    kal_uint32 mem_addr;  // small ap 64 MB memory
+    kal_uint32 mem_size;
+    SAP_SHM_QUERY_RESULT resultFail;
+} SAP_SHM;
+
+#define THIN_MODEM_SHM_SAP_EX_STATUS_OFFSET 8
+#define THIN_MODEM_SHM_MD_EX_STATUS_OFFSET 12
+extern SAP_SHM sap_shm;
+#endif
+
+#define EMM_BUS_SYSINFO_PAD_COMPENSATE_SIZE (\
+    /*sizeof(pattern)*/          EMM_MINIMUM_SIZE + \
+    /*sizeof(last_write_index)*/ EMM_MINIMUM_SIZE * (EMM_CORENUM*EMM_VPENUM) + \
+    /*sizeof(last_write_vpe)*/   EMM_MINIMUM_SIZE + \
+    /*sizeof(reserved[2])*/      EMM_MINIMUM_SIZE * 2 + \
+    /*sizeof(EMM_SYSINFO)*/      EMM_MINIMUM_SIZE * EMM_INDEX_MAX \
+    )
+
+typedef struct _EMM_BUF_SYSINFO {
+    kal_uint32 pattern;
+    kal_uint32 last_write_index[EMM_CORENUM*EMM_VPENUM];
+    kal_uint32 last_write_vpe;
+    kal_uint32 reserved[2];
+    kal_uint32 EMM_SYSINFO[EMM_INDEX_MAX];
+    kal_uint32 pad[(EMM_DBGINFO_LEN - EMM_BUS_SYSINFO_PAD_COMPENSATE_SIZE)/EMM_MINIMUM_SIZE];
+    kal_uint32 EDE_IDLETASK_HEAD;
+    kal_uint32 EDE_IDLETASK_STEP[EMM_IDLETASK_SIZE];
+    kal_uint32 EDE_IDLETASK_TAIL;
+    kal_uint32 EDE_SLP_HEAD;
+    kal_uint32 EDE_SLP_STEP[EMM_SLP_SIZE];
+    kal_uint32 EDE_SLP_TAIL;
+    kal_uint32 EDE_DOR_HEAD;
+    kal_uint32 EDE_DOR_STEP[EMM_DORMANT_SIZE];
+    kal_uint32 EDE_DOR_TAIL;
+    kal_uint32 EDE_ELM_HEAD;
+    kal_uint32 EDE_ELM_STEP[EMM_ELM_SIZE];
+    kal_uint32 EDE_ELM_TAIL;
+    kal_uint32 EDE_BUS_HEAD;
+    kal_uint32 EDE_BUS_STEP[EMM_BUS_SIZE];
+    kal_uint32 EDE_BUS_TAIL;
+    kal_uint32 EDE_SWLA_HEAD;
+    EMM_SWLA_PAIR EDE_SWLA[EMM_CORENUM][EMM_SWLA_SIZE*EMM_MINIMUM_SIZE/sizeof(EMM_SWLA_PAIR)/EMM_CORENUM];
+    kal_uint32 EDE_SWLA_TAIL;
+    kal_uint32 EDE_NVRAM_DBG_HEAD;
+    kal_uint32 EDE_NVRAM_DBG[EMM_NVRAM_DBG_SIZE];
+    kal_uint32 EDE_NVRAM_DBG_TAIL;
+} EMM_SYSINFO_STRUC;
+
+#endif /* __ASSEMBLER__ */
+#endif /* __EX_MEM_MANAGER_H__ */
+
diff --git a/mcu/service/sst/include/ex_trc.h b/mcu/service/sst/include/ex_trc.h
new file mode 100644
index 0000000..d7439c5
--- /dev/null
+++ b/mcu/service/sst/include/ex_trc.h
@@ -0,0 +1,336 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   ex_trc.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This file contains definitions for trace on target.
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef _EX_TRC_H
+#define _EX_TRC_H
+#ifndef GEN_FOR_PC
+#include "kal_public_defs.h"
+#endif /* GEN_FOR_PC */
+#include "kal_trace.h"
+#if !defined(GEN_FOR_PC)
+#if defined(__TST_MODULE__) || defined(__CUSTOM_RELEASE__)
+#endif /* TST Trace Defintion */
+#endif
+#if !defined(GEN_FOR_PC) && !defined(__MAUI_BASIC__)
+#include"ex_trc_mod_ex_log_utmd.h"
+#endif
+#endif    /* _EX_TRC_H */
diff --git a/mcu/service/sst/include/ex_trc_mod_ex_log_utmd.json b/mcu/service/sst/include/ex_trc_mod_ex_log_utmd.json
new file mode 100644
index 0000000..8ff00d7
--- /dev/null
+++ b/mcu/service/sst/include/ex_trc_mod_ex_log_utmd.json
@@ -0,0 +1,1734 @@
+{
+  "endGen": "-", 
+  "legacyParameters": {}, 
+  "module": "MOD_EX_LOG", 
+  "startGen": "Legacy", 
+  "traceClassDefs": [
+    {
+      "TRACE_INFO": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_INFO"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_WARNING": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_WARNING"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_ERROR": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_ERROR"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_FUNC": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_FUNC"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_STATE": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_STATE"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_1": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_2": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_3": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_4": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_5": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_6": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_7": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_8": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_9": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_10": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }
+  ], 
+  "traceDefs": [
+    {
+      "EX_LOG_SPLIT_ENV_INFO": {
+        "apiType": "index", 
+        "format": "========================= Basic Environment Info ===========================", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ENVINFO_FACTORY_BOOT": {
+        "apiType": "index", 
+        "format": "boot mode: factory mode", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ENVINFO_NORMAL_BOOT": {
+        "apiType": "index", 
+        "format": "boot mode: normal mode", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ENVINFO_USBMS_BOOT": {
+        "apiType": "index", 
+        "format": "boot mode: USBMS mode", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ENVINFO_UNKNOWN_BOOT_MODE": {
+        "apiType": "index", 
+        "format": "boot mode: unknown mode", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ENVINFO_EARLY_STAGE": {
+        "apiType": "index", 
+        "format": "- under init stage(early stage)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ENVINFO_UNDER_SCHEDULING": {
+        "apiType": "index", 
+        "format": "- under scheduling", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ENVINFO_TOTAL_CORE_NUM": {
+        "apiType": "index", 
+        "format": "total core num: %u", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_SW_VER": {
+        "apiType": "index", 
+        "format": "software version: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_SW_PROJECT": {
+        "apiType": "index", 
+        "format": "software project: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_SW_BUILDTIME": {
+        "apiType": "index", 
+        "format": "build time: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_SPLIT_BASIC_OFFENDING_INFO": {
+        "apiType": "index", 
+        "format": "========================= Basic offending VPE info ===========================", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_OFFENDING_INFO": {
+        "apiType": "index", 
+        "format": "Offending VPE: %u, Offending TC: %u", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TYPE_EX_TYPE": {
+        "apiType": "index", 
+        "format": "Exception type: %Mexception_type", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_BASIC_TIMESTAMP": {
+        "apiType": "index", 
+        "format": "exception timestamp: USCNT = 0x%08X, GLB_TS = 0x%08X, frameno = %u", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_BASIC_EXECUTIONUNIT": {
+        "apiType": "index", 
+        "format": "execution unit: %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_BASIC_STACIPOINTER": {
+        "apiType": "index", 
+        "format": "stack pointer: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_BASIC_LR": {
+        "apiType": "index", 
+        "format": "lr: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_BASIC_PC": {
+        "apiType": "index", 
+        "format": "offending pc: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_BASIC_TC_STATUS": {
+        "apiType": "index", 
+        "format": "task status: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_BASIC_PROCESSING_LISR": {
+        "apiType": "index", 
+        "format": "processing_lisr: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_SPLIT_SYS_ENV_INFO": {
+        "apiType": "index", 
+        "format": "========================= System Environment Info ===========================", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ENVINFO_INTERRUPT_MASK": {
+        "apiType": "index", 
+        "format": "interrupt mask: 0x%08X 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ENVINFO_ELM_STATUS": {
+        "apiType": "index", 
+        "format": "ELM status: %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_HEALTH_CHECK_TITLE": {
+        "apiType": "index", 
+        "format": "[System Healthy Check]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_HEALTHY": {
+        "apiType": "index", 
+        "format": "diagnosis: healthy", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_INTSRAMCORRUPT": {
+        "apiType": "index", 
+        "format": "diagnosis: ISPRAM corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_SHAREDINTSRAMCORRUPT": {
+        "apiType": "index", 
+        "format": "diagnosis: shared internal SRAM corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_L2SRAMCCORRUPT": {
+        "apiType": "index", 
+        "format": "diagnosis: cached L2SRAM corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_L2SRAMNCCORRUPT": {
+        "apiType": "index", 
+        "format": "diagnosis: non-cached L2SRAM corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_SYSSTACKCORRUPT": {
+        "apiType": "index", 
+        "format": "diagnosis: system stack corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_TASKSTACKCORRUPT": {
+        "apiType": "index", 
+        "format": "diagnosis: task stack corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_HISRSTACKCORRUPT": {
+        "apiType": "index", 
+        "format": "diagnosis: HISR stack corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_VECTORTABLECORRUPT": {
+        "apiType": "index", 
+        "format": "diagnosis: Interrupt Vector corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_LOCKWAITEDTOOLONG": {
+        "apiType": "index", 
+        "format": "diagnosis: some lock has been waited too long", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_CACHECORRUPT": {
+        "apiType": "index", 
+        "format": "diagnosis: instruction cache corruption", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_CACHECORRUPT_2": {
+        "apiType": "index", 
+        "format": "Please note that it might be cross core access if corruption address is in ispram", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_DEADLOCK": {
+        "apiType": "index", 
+        "format": "diagnosis: System deadlocked", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_HELDTOOLONG": {
+        "apiType": "index", 
+        "format": "diagnosis: some lock has been held too long", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_L2CACHELOCKCORRUPT": {
+        "apiType": "index", 
+        "format": "diagnosis: Static L2Cache lock area corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_DYNAMICL2CACHELOCKCORRUPT": {
+        "apiType": "index", 
+        "format": "diagnosis: Dynamic L2Cache lock area corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_MPUCORRUPT": {
+        "apiType": "index", 
+        "format": "diagnosis: MPU settings corrupted", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_MPUCORRUPT_SEGMENT": {
+        "apiType": "index", 
+        "format": "First corrupted segment is %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_MPUCORRUPT_REGION": {
+        "apiType": "index", 
+        "format": "First corrupted region is %d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DIAGNOSIS_OWNER": {
+        "apiType": "index", 
+        "format": "owner: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DEADLOCK_OUTPUT_OWNER_SL": {
+        "apiType": "index", 
+        "format": "    %dus: spinlock(0x%x) %s obtained by %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DEADLOCK_OUTPUT_OWNER_ITC": {
+        "apiType": "index", 
+        "format": "    %dus: HW ITC(0x%x) %Mkal_itc_lock_id obtained by %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DEADLOCK_OUTPUT_LOCK_SL": {
+        "apiType": "index", 
+        "format": "    %dus: %s started waiting spinlock(0x%x) %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_DEADLOCK_OUTPUT_LOCK_ITC": {
+        "apiType": "index", 
+        "format": "    %dus: %s started waiting HW ITC(0x%x) %Mkal_itc_lock_id", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_HELDLOCK_OUTPUT_LOCK_SL": {
+        "apiType": "index", 
+        "format": "    %s has been holding spinlock(0x%x) %s for %dus when exception occured", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_HELDLOCK_OUTPUT_LOCK_ITC": {
+        "apiType": "index", 
+        "format": "    %s has been holding HW ITC(0x%x) %Mkal_itc_lock_id for %dus when exception occured", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_WAITLOCK_OUTPUT_LOCK_SL": {
+        "apiType": "index", 
+        "format": "    %s has been waiting spinlock(0x%x) %s for %dus when exception occured", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DIAGINFO_WAITLOCK_OUTPUT_LOCK_ITC": {
+        "apiType": "index", 
+        "format": "    %s has been waiting HW ITC(0x%x) %Mkal_itc_lock_id for %dus when exception occured", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_SPLIT_OFFENDING_VPE_ANALYSIS": {
+        "apiType": "index", 
+        "format": "========================= Offending VPE Analysis ===========================", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ASSERT_FILENAME": {
+        "apiType": "index", 
+        "format": "filename: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ASSERT_FULLPATH": {
+        "apiType": "index", 
+        "format": "path: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ASSERT_LINE": {
+        "apiType": "index", 
+        "format": "line: %u", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ASSERT_EXT1": {
+        "apiType": "index", 
+        "format": "ext1: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ASSERT_EXT2": {
+        "apiType": "index", 
+        "format": "ext2: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ASSERT_EXT3": {
+        "apiType": "index", 
+        "format": "ext3: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ASSERT_ADDR": {
+        "apiType": "index", 
+        "format": "offending address: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ASSERT_MODID": {
+        "apiType": "index", 
+        "format": "offending module id: %Mmodule_type", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ASSERT_MOFID": {
+        "apiType": "index", 
+        "format": "offending module id: %Mmof_index_type", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ASSERT_DUMP_TITLE": {
+        "apiType": "index", 
+        "format": "dump:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ASSERT_DUMP": {
+        "apiType": "index", 
+        "format": "    0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_FATALERR_MSG": {
+        "apiType": "index", 
+        "format": "[%d] fatal error (0x%x): %Mkal_error_str - %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_FATALERR_ERROR_CODE1": {
+        "apiType": "index", 
+        "format": "fatal error code 1: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_FATALERR_ERROR_CODE2": {
+        "apiType": "index", 
+        "format": "fatal error code 2: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_FATALERR_ERROR_CODE3": {
+        "apiType": "index", 
+        "format": "fatal error code 3: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CC_EX_MSG": {
+        "format": "[%d] Cross Triggered Exception by %s : ect status(0x%08X)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_SIZE": {
+        "apiType": "index", 
+        "format": "ctrl buff size = %u", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_NUM": {
+        "apiType": "index", 
+        "format": "# of ctrl buff entries = %u", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_TOP": {
+        "apiType": "index", 
+        "format": "top occupier", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_PREV": {
+        "apiType": "index", 
+        "format": "previous buffer pointer", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_COMMON_RTOS_HEADER1": {
+        "apiType": "index", 
+        "format": "    RTOS header 1 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_COMMON_RTOS_HEADER2": {
+        "apiType": "index", 
+        "format": "    RTOS header 2 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_COMMON_KAL_HEADER1": {
+        "apiType": "index", 
+        "format": "    KAL header 1 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_COMMON_KAL_HEADER2": {
+        "apiType": "index", 
+        "format": "    KAL header 2 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_COMMON_KAL_HEADER3": {
+        "apiType": "index", 
+        "format": "    KAL header 3 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_COMMON_BUFF_POOLID": {
+        "apiType": "index", 
+        "format": "    buffer pool id = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_COMMON_KAL_FOOTER1": {
+        "apiType": "index", 
+        "format": "    kal footer 1 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_COMMON_KAL_FOOTER2": {
+        "apiType": "index", 
+        "format": "    kal footer 2 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_COMMON_FILENAME": {
+        "apiType": "index", 
+        "format": "    source = %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_COMMON_LR": {
+        "apiType": "index", 
+        "format": "    Caller Address = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_COMMON_LINE": {
+        "apiType": "index", 
+        "format": "    line = %u", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_HISTORY_OWNER": {
+        "apiType": "index", 
+        "format": "    owner = %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_HISTORY_FILENAME": {
+        "apiType": "index", 
+        "format": "    filename = %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_HISTORY_LINE": {
+        "apiType": "index", 
+        "format": "    line = %u", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_HISTORY_LR": {
+        "apiType": "index", 
+        "format": "    Caller Address = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_HISTORY_COUNT": {
+        "apiType": "index", 
+        "format": "    count = %u", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_SECOND": {
+        "apiType": "index", 
+        "format": "second occupier", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_CURR": {
+        "apiType": "index", 
+        "format": "current buffer pointer", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_THIRD": {
+        "apiType": "index", 
+        "format": "third occupier", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CTRLBUF_NEXT": {
+        "apiType": "index", 
+        "format": "next buffer pointer", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ESBUF_SIZE": {
+        "apiType": "index", 
+        "format": "es buff size = %u", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ESBUF_NUM": {
+        "apiType": "index", 
+        "format": "# of es buff entries = %u", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ESBUF_HISTORY_TIMERNAME": {
+        "apiType": "index", 
+        "format": "    event scheduler name = %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ESBUF_HISTORY_MODULEID": {
+        "apiType": "index", 
+        "format": "    dest module id = %Mmodule_type", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ESBUF_HISTORY_HANDLEFUNC": {
+        "apiType": "index", 
+        "format": "    handler function address = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ESBUF_HISTORY_COUNT": {
+        "apiType": "index", 
+        "format": "    count = %u", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ESBUF_TOP": {
+        "apiType": "index", 
+        "format": "top occupier", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ESBUF_SECOND": {
+        "apiType": "index", 
+        "format": "second occupier", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ESBUF_THIRD": {
+        "apiType": "index", 
+        "format": "third occupier", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TASK_INFO_NAME": {
+        "apiType": "index", 
+        "format": "TaskName = %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TASK_INFO_STACK_GP": {
+        "apiType": "index", 
+        "format": "TaskStackGuardPattern = %c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TASK_INFO_STATUS": {
+        "apiType": "index", 
+        "format": "task current status = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TASK_INFO_EXTQ": {
+        "apiType": "index", 
+        "format": "task external queue", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TASK_INFO_Q_SRC_MOD_ID": {
+        "apiType": "index", 
+        "format": "    src mod id = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TASK_INFO_Q_QCOUNT": {
+        "apiType": "index", 
+        "format": "    # of identical msg = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TASK_INFO_Q_MSG_ID": {
+        "apiType": "index", 
+        "format": "    msg id = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TASK_INFO_Q_CUR_MSG_NO": {
+        "apiType": "index", 
+        "format": "    # of pending msg = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TASK_INFO_Q_CONFIG_ENTRY": {
+        "apiType": "index", 
+        "format": "    # of queue entries = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TASK_INFO_INTQ": {
+        "apiType": "index", 
+        "format": "task internal queue", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ENVINFO_EXT_Q_PENDING_CNT": {
+        "apiType": "index", 
+        "format": "number of messages in the external queue: %u", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ENVINFO_EXT_Q_PENDING_TITLE": {
+        "apiType": "index", 
+        "format": "messages in the external queue:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_ENVINFO_EXT_Q_PENDING": {
+        "apiType": "index", 
+        "format": "    %Mmsg_type", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_SPLIT_FULL_OFFENDING_INFO": {
+        "apiType": "index", 
+        "format": "========================= Detailed Offending VPE Info ===========================", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_FULL_OFFENDING_INFO_ENTRY_TYPE": {
+        "apiType": "index", 
+        "format": "Entry Type = %Mexception_enter_category", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CPU_GPR_REG_TITLE": {
+        "apiType": "index", 
+        "format": "[CPU Register Info] (MIPS o32/p32 Name)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CPU_REG_1": {
+        "apiType": "index", 
+        "format": "R0 (ZERO) = 0x%08X, R1 (AT)   = 0x%08X, R2 (V0/T4)= 0x%08X, R3 (V1/T5)= 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CPU_REG_2": {
+        "apiType": "index", 
+        "format": "R4 (A0)   = 0x%08X, R5 (A1)   = 0x%08X, R6 (A2)   = 0x%08X, R7 (A3)   = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CPU_REG_3": {
+        "apiType": "index", 
+        "format": "R8 (T0/A4)= 0x%08X, R9 (T1/A5)= 0x%08X, R10(T2/A6)= 0x%08X, R11(T3/A7)= 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CPU_REG_4": {
+        "apiType": "index", 
+        "format": "R12(T4/T0)= 0x%08X, R13(T5/T1)= 0x%08X, R14(T6/T2)= 0x%08X, R15(T7/T3)= 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CPU_REG_5": {
+        "apiType": "index", 
+        "format": "R16(S0)   = 0x%08X, R17(S1)   = 0x%08X, R18(S2)   = 0x%08X, R19(S3)   = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CPU_REG_6": {
+        "apiType": "index", 
+        "format": "R20(S4)   = 0x%08X, R21(S5)   = 0x%08X, R22(S6)   = 0x%08X, R23(S7)   = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CPU_REG_7": {
+        "apiType": "index", 
+        "format": "R24(T8)   = 0x%08X, R25(T9)   = 0x%08X, R26(K0)   = 0x%08X, R27(K1)   = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CPU_REG_8": {
+        "apiType": "index", 
+        "format": "R28(GP)   = 0x%08X, R29(SP)   = 0x%08X, R30(S8)   = 0x%08X, R31(RA)   = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_HILO": {
+        "apiType": "index", 
+        "format": "HI        = 0x%08X, LO        = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_EXCTRL_REG_TITLE": {
+        "apiType": "index", 
+        "format": "[Exception Control Info]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_EXCTRL": {
+        "apiType": "index", 
+        "format": "Cause     = 0x%08X, EPC       = 0x%08X, ErrorEPC = 0x%08X, (Status = 0x%08X)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_EXCBAD": {
+        "apiType": "index", 
+        "format": "BadInstr  = 0x%08X, BadInstrX = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CFG_STATUS_REG_TITLE": {
+        "apiType": "index", 
+        "format": "[Configuration and Status Info]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_CFG1": {
+        "apiType": "index", 
+        "format": "EBase  = 0x%08X, Status  = 0x%08X, IntCtrl  = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_CFG2": {
+        "apiType": "index", 
+        "format": "Config = 0x%08X, Config2 = 0x%08X, Config5  = 0x%08X, Config7 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TC_REG_TITLE": {
+        "apiType": "index", 
+        "format": "[Thread Context Info]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_TC1": {
+        "apiType": "index", 
+        "format": "TCStatus  = 0x%08X, TCBind     = 0x%08X, TCRestart  = 0x%08X, TCHalt = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_TC2": {
+        "apiType": "index", 
+        "format": "TCContext = 0x%08X, TCSchedule = 0x%08X, TCScheFBack= 0x%08X, TCOpt  = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_TC3": {
+        "apiType": "index", 
+        "format": "SRSConf0  = 0x%08X, SRSCtl     = 0x%08X, SRSMap     = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_VPE_INFO_TITLE": {
+        "apiType": "index", 
+        "format": "[VPE Management Info]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_VPE1": {
+        "apiType": "index", 
+        "format": "VPEControl = 0x%08X, VPEConf0    = 0x%08X, VPEConf1 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_VPE2": {
+        "apiType": "index", 
+        "format": "VPESchedule= 0x%08X, VPEScheFBack= 0x%08X, VPEOpt   = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_VPE3": {
+        "apiType": "index", 
+        "format": "MVPControl = 0x%08X, MVPConf0    = 0x%08X, MVPConf1 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_VPE4": {
+        "apiType": "index", 
+        "format": "VPEControl = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TLB_INFO_TITLE": {
+        "apiType": "index", 
+        "format": "[TLB Management Info]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_TLB1": {
+        "apiType": "index", 
+        "format": "Index   = 0x%08X, EntryLo0     = 0x%08X, EntryLo1 = 0x%08X, EntryHi   = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_TLB2": {
+        "apiType": "index", 
+        "format": "Context = 0x%08X, ContextConfig= 0x%08X, PageMask = 0x%08X, PageGrain = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_TLB3": {
+        "apiType": "index", 
+        "format": "Wired   = 0x%08X, BadVAddr     = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_TLB4": {
+        "apiType": "index", 
+        "format": "EntryHi = 0x%08X, Context = 0x%08X, ContextConfig = 0x%08X, BadVAddr = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_MEMSEG_INFO_TITLE": {
+        "apiType": "index", 
+        "format": "[Memory Segmentation Info]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_MEMSEG": {
+        "apiType": "index", 
+        "format": "SegCtl0 = 0x%08X, SegCtl1 = 0x%08X, SegCtl2 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_CACHEMGT_INFO_TITLE": {
+        "apiType": "index", 
+        "format": "[Cache Management Info]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_CMGT1": {
+        "apiType": "index", 
+        "format": "ITagLo   = 0x%08X, IDataLo   = 0x%08X, IDataHi   = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_CMGT2": {
+        "apiType": "index", 
+        "format": "DTagLo   = 0x%08X, DTagHi    = 0x%08X, DDataLo   = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_CMGT3": {
+        "apiType": "index", 
+        "format": "L23TagLo = 0x%08X, L23DataLo = 0x%08X, L23DataHi = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_CMGT4": {
+        "apiType": "index", 
+        "format": "ErrCtl   = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_CMGT5": {
+        "apiType": "index", 
+        "format": "BCOpCtl  = 0x%08X, BCOpStatus= 0x%08X, CoreCtrl  = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TIMER_INFO_TITLE": {
+        "apiType": "index", 
+        "format": "[Timer Info]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_TIMER": {
+        "apiType": "index", 
+        "format": "Count = 0x%08X, Compare = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_COUNT": {
+        "apiType": "index", 
+        "format": "Count = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DBGTRC_INFO_TITLE": {
+        "apiType": "index", 
+        "format": "[Debug and Trace Register Info]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_DBGTRC1": {
+        "apiType": "index", 
+        "format": "WatchLo0 = 0x%08X, WatchLo1 = 0x%08X, WatchLo2 = 0x%08X, WatchLo3 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_DBGTRC2": {
+        "apiType": "index", 
+        "format": "WatchHi0 = 0x%08X, WatchHi1 = 0x%08X, WatchHi2 = 0x%08X, WatchHi3 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_DBGTRC3": {
+        "apiType": "index", 
+        "format": "Debug = 0x%08X, DEPC = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_DBGTRC4": {
+        "apiType": "index", 
+        "format": "WatchLo4 = 0x%08X, WatchLo5 = 0x%08X, WatchLo6 = 0x%08X, WatchLo7 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_DBGTRC5": {
+        "apiType": "index", 
+        "format": "WatchHi4 = 0x%08X, WatchHi5 = 0x%08X, WatchHi6 = 0x%08X, WatchHi7 = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_UMOD_INFO_TITLE": {
+        "apiType": "index", 
+        "format": "[User Mode Support Info]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_UMOD": {
+        "apiType": "index", 
+        "format": "YQMask = 0x%08X, LLAddr = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_MMAP_INFO_TITLE": {
+        "apiType": "index", 
+        "format": "[Memory Mapped Info]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_REG_MMAP": {
+        "apiType": "index", 
+        "format": "CDMMBase = 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_STACKDUMP_INFO_TITLE": {
+        "apiType": "index", 
+        "format": "[Stack Info]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_FULLINFO_STACKDUMP_TITLE": {
+        "apiType": "index", 
+        "format": "stack dump:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_FULLINFO_STACKDUMP": {
+        "apiType": "index", 
+        "format": "    [ADDR:0x%08X]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_SPLIT_VICTIM_VPE_INFO": {
+        "apiType": "index", 
+        "format": "========================= Victim VPE Info ===========================", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_VICTIM_BASIC_INFO": {
+        "apiType": "index", 
+        "format": "Victim VPE: %u, TC: %u, order: 0x%x, USCNT: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TYPE_EX_ENTER_TYPE": {
+        "apiType": "index", 
+        "format": "Exception type: %Mexception_enter_category", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TYPE_EX_ENTER_TYPE_NMI": {
+        "apiType": "index", 
+        "format": "Please note!! This vpe could not receive CTI interrupt so most likely it had interrupt disabled for long time", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_TYPE_EX_ENTER_TYPE_GEN_REFILL": {
+        "apiType": "index", 
+        "format": "Please note!! This vpe had simultaneous exception", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_NEWLINE": {
+        "apiType": "index", 
+        "format": "", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_L1_TIMING_CHECK_ASSERT1": {
+        "format": "L1 timing check fail.", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "EX_LOG_L1_TIMING_CHECK_ASSERT2": {
+        "format": "Use the stack dump to find out who disables IRQ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_HIT_BP": {
+        "format": "BreakPoint(0x%08X) is hit", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_HIT_WP_TBC": {
+        "format": "WritePoint(Unknown) is hit at address 0x%08X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_HIT_WP": {
+        "format": "WritePoint(0x%08X) is hit at address 0x%08X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MDDBG_HIT_Debug": {
+        "format": "[%d]0x%08X, 0x%08X, 0x%08X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "EX_LOG_SPLIT_EXTEND_INFO": {
+        "apiType": "index", 
+        "format": "========================= Extra Info ===========================", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_PCMON_TITLE": {
+        "apiType": "index", 
+        "format": "PCMON Info:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_PCMON_PIPED_PCPAIR_TITLE": {
+        "apiType": "index", 
+        "format": "Piped IA:[PC, TC, FRC]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_PCMON_PIPED_PCPAIR": {
+        "apiType": "index", 
+        "format": "(PC)[ADDR:0x%08X], TC: %u, FRC: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_PCMON_PCPAIR_TITLE": {
+        "apiType": "index", 
+        "format": "PC History:[PC->PC, FRC, TAG]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_PCMON_PCPAIR": {
+        "apiType": "index", 
+        "format": "(PC)[ADDR:0x%08X] -> (PC)[ADDR:0x%08X], FRC: 0x%08X, TAG: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_PCMON_PIPED_PDPAIR_TITLE": {
+        "apiType": "index", 
+        "format": "Piped DA:[PC, Data Address, TC, FRC]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_PCMON_PIPED_PDPAIR": {
+        "apiType": "index", 
+        "format": "(PC)[ADDR:0x%08X], (DATA ADDR)0x%08X, TC: %u, FRC: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_PCMON_PDPAIR_TITLE": {
+        "apiType": "index", 
+        "format": "DC History:[PC, Data Address, FRC, TAG]", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_PCMON_PDPAIR": {
+        "apiType": "index", 
+        "format": "(PC)[ADDR:0x%08X], (DATA ADDR)0x%08X, FRC: 0x%08X, TAG: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_BUSERR_TITLE": {
+        "apiType": "index", 
+        "format": "Bus Info:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_BUSERR_VALUE": {
+        "apiType": "index", 
+        "format": "    0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_BUSMPUERR_TITLE": {
+        "apiType": "index", 
+        "format": "Bus MPU Info:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },  
+    {
+      "EX_LOG_BUSMPUERR_IOCU_VIO_ADDR": {
+        "apiType": "index", 
+        "format": "    IOCU_VIO_ADDR: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_BUSMPUERR_IRQSTS_VIO_MPU": {
+        "apiType": "index", 
+        "format": "    %s: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_LOG_EMIMPUERR_MCU_TITLE": {
+        "apiType": "index", 
+        "format": "EMI MPU Info:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_EMIMPUERR_MCU": {
+        "apiType": "index", 
+        "format": "    %s: 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "EX_LOG_PLLINFO_TITLE": {
+        "apiType": "index", 
+        "format": "PLL Info:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_PLLINFO_VAR": {
+        "apiType": "index", 
+        "format": "    %s: 0x%08X (%d)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DVFS_TITLE": {
+        "apiType": "index", 
+        "format": "DVFS Info:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DVFS_VAR": {
+        "apiType": "index", 
+        "format": "    %s: 0x%08X (%d)", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_MDMPU_TITLE": {
+        "apiType": "index", 
+        "format": "MDMPU Info:", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_MDMPU_VAR1": {
+        "apiType": "index", 
+        "format": "    coreid=%d, ASCR= 0x%08X, CONFIG= 0x%08X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_MDMPU_VAR2": {
+        "apiType": "index", 
+        "format": "    RI= 0x%02X, WI= 0x%02X, XI= 0x%02X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_MDMPU_VAR3": {
+        "apiType": "index", 
+        "format": "    Enable= 0x%02X, MATCH= 0x%02X, NUM= 0x%02X", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_SPLIT": {
+        "apiType": "index", 
+        "format": "======================================================================", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "EX_LOG_DUMMY": {
+        "apiType": "index", 
+        "format": "", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_Separator": {
+        "apiType": "index", 
+        "format": "******************************************", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_AFOUND_Label": {
+        "apiType": "index", 
+        "format": "Label: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_AFOUND_SWVersion": {
+        "apiType": "index", 
+        "format": "SWVersion: %s %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_AFOUND_BuildTime": {
+        "apiType": "index", 
+        "format": "BuildTime: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_AFOUND_DSPBuildTime": {
+        "apiType": "index", 
+        "format": "DSP_BuildTime: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_AFOUND_ExceptionSource": {
+        "apiType": "index", 
+        "format": "ExceptionSource: %s%s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_AFOUND_ExceptionCategory": {
+        "apiType": "index", 
+        "format": "ExceptionCategory: %MEX_MAINCONTENT_TYPE_T", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_AFOUND_BriefException": {
+        "apiType": "index", 
+        "format": "BriefException: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_AFOUND_ExceptionTimestamp": {
+        "apiType": "index", 
+        "format": "ExceptionTimestamp: %u", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_AFOUND_HandlingOrder": {
+        "apiType": "index", 
+        "format": "HandlingOrder: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_AFOUND_1_OffendingFile": {
+        "apiType": "index", 
+        "format": "1_OffendingFile: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_AFOUND_2_OffendingAddress": {
+        "apiType": "index", 
+        "format": "2_OffendingAddress: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_AFOUND_3_Offender": {
+        "apiType": "index", 
+        "format": "3_Offender: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "SST_AFOUND_4_Helper": {
+        "apiType": "index", 
+        "format": "4_Helper: (%s)Default_%s%s1stLine", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "SST_AFOUND_5_ExtraInfo": {
+        "apiType": "index", 
+        "format": "5_ExtraInfo: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "SST_AFOUND_6_ModuleOwner": {
+        "apiType": "index", 
+        "format": "6_ModuleOwner: %s", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }
+  ], 
+  "traceFamily": "PS", 
+  "userModule": "EX_LOG"
+}
diff --git a/mcu/service/sst/include/md32_boot.h b/mcu/service/sst/include/md32_boot.h
new file mode 100644
index 0000000..4068a53
--- /dev/null
+++ b/mcu/service/sst/include/md32_boot.h
@@ -0,0 +1,196 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   md32_boot.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This Module defines the HW initialization.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *
+ *
+ *
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef MD32_BOOT_H
+#define MD32_BOOT_H
+
+#include "md32_boot_public.h"
+#include "md32_file.h"
+#include "reg_base.h"
+#include "dsp_control_public.h"
+#define REG_WRITE32(addr, val) do{*((volatile kal_uint32 *)(addr)) = val;}while(0)
+#define REG_READ32(var, addr) do{var = *((volatile kal_uint32 *)(addr));}while(0)
+#define MD32_LOADER_REG(ptr)  (*(volatile kal_uint32*)(ptr))
+
+/* MD32 core sys */
+//#define MD32_RAKE_SYS           (BASE_MADDR_RAKE)
+#define MD32_NUM    1
+
+/* platform dependent setting*/
+#if defined(MT6763)|| defined(MT6739) || defined(MT6771)  || defined(MT6295M) || defined(MT6765) || defined(MT6761) || defined(MT3967) || defined(MT6779) || defined(__MD97__) || defined(__MD97P__)
+#define MD32_MAGIC_KEY          (0x62930000)
+#else
+#error "Unknown Platform!!"
+#endif
+
+/* MD32 offset */
+#define MD32_PM             (0x00380000)
+#define MD32_DM             (0x003E0000)
+#define MD32_CMIF           (0x00358000)
+#define MD32_BTSLV          (0x35100C)
+#define MD32_DBG_EN			(0x351010)
+#define MD32_DMP_EN 		(0x35101C)
+#define MD32_PERI_CTRL  	(0x351000)
+
+#define MD32_RAKE_PM BASE_MADDR_RAKESYS_PM
+#define MD32_RAKE_DM BASE_MADDR_RAKESYS_RAKE_DM_ARB
+
+#define MD32_RAKE_BTSLV          (0x35100C)
+#define MD32_RAKE_POWER  	 (0x351004)
+#define MD32_RAKE_PM_CRC         (0x50)
+#define MD32_RAKE_DM_CRC         (0x54)
+
+#define MD32_USIP0_TH0_BTSLV     (0x400)
+#define MD32_USIP0_TH1_BTSLV     (0x404)
+#define MD32_USIP1_TH0_BTSLV     (0x408)
+#define MD32_USIP1_TH1_BTSLV     (0x40C)
+
+#if defined(MT6763)|| defined(MT6739) || defined(MT6771)  || defined(MT6295M) || defined(MT6765) || defined(MT6761) || defined(MT3967) || defined(MT6779) || defined(__MD97__) || defined(__MD97P__)
+	#define MD32_RAKE_SYS           BASE_MADDR_RAKESYS_RAKE_INST_DEC
+	#define MD32_RAKE_GLOBAL_CON    BASE_MADDR_RAKESYS_GLOBAL_CON
+
+	#define MD32_USIP_SYS           BASE_MADDR_MDMCU_USIP_CROSS_CORE_CTRL
+
+	#define MD32_KB                  (1024)
+	#define RAKE_PM_SZ           (96 * MD32_KB)
+	#define RAKE_DM_SZ           (48 * MD32_KB)
+	#define RAKE_CMIF_SZ         (8 * MD32_KB)
+
+#else
+#error "Unknown Platform!!"
+#endif
+
+#if defined(__MD32_PM_PROTECT_SUPPORT__)
+#define MD32_PM_PROTECT_EN_OFF       (0x351020)
+#define MD32_PM_PROTECT_BNK_OFF      (0x351024)
+#define MD32_PM_PROTECT_INSTR_OFF    (0x351028)
+#define MD32_UDF_INST_VAL            (0x00F400F4)
+#endif /* __MD32_PM_PROTECT_SUPPORT__ */
+
+/* MD32 setting */
+#define MD32_PERI_CTRL_MAGIC	(0x80A180A1)
+#define MD32_DFE_MEM_BNK_SZ			(16 * 1024)
+#define MD32_BRP_MEM_BNK_SZ			( 8 * 1024)
+#define MD32_ENABLE		(MD32_MAGIC_KEY | 0x1)
+#define MD32_DISABLE	(MD32_MAGIC_KEY | 0x0)
+
+/* Timestamp for GDMA callback function internal operation */
+struct gdma_cb_timestamp {
+	unsigned long start;
+	unsigned long hwitc_start_end;
+	unsigned long who_use_gdma;
+	unsigned long who_wait_gdma;
+	unsigned long activeate_LISR_before;
+	unsigned long activeate_LISR_end;
+	unsigned long hwitc_end_before;
+	unsigned long hwitc_end_end;
+	unsigned long end;
+};
+
+/* Timestamp of GDMA DDL callback function internal operation */
+struct gdma_cb_ddl_timestamp {
+	unsigned long start;
+	unsigned long who_use_gdma;
+	unsigned long check;
+	unsigned long config;
+	unsigned long ddl;
+	unsigned long data_sync;
+	unsigned long gdma_set_config;
+	unsigned long gdma_start_cmd;
+	unsigned long enablc_clk;
+	unsigned long send_interrupt;
+	unsigned long end;
+};
+
+typedef enum
+{
+    LOADER_SRAM_TYPE_PM  = 0,
+    LOADER_SRAM_TYPE_DM  = 1,
+} LOADER_SRAM_TYPE;
+
+typedef struct {
+	unsigned long dump_en;
+	unsigned long gate_status;
+	unsigned long golden_pm_crc;
+	unsigned long golden_dm_crc;
+	unsigned long reg_pm_crc;
+	unsigned long reg_dm_crc;
+	unsigned long ori_pm_crc;
+	unsigned long ori_pm;
+	unsigned long ori_dm_crc;
+	unsigned long ori_dm;
+	unsigned long new_pm_crc;
+	unsigned long new_pm;
+	unsigned long new_dm_crc;
+	unsigned long new_dm;
+	unsigned long end_pm;
+	unsigned long end_dm;
+	DDL_MODE ddl_mode;
+	LOADER_SRAM_TYPE sram_type;
+
+} CRC_DBG_Info_T;
+#endif  /* MD32_BOOT_H */
+
diff --git a/mcu/service/sst/include/md32_excep_hdlr.h b/mcu/service/sst/include/md32_excep_hdlr.h
new file mode 100644
index 0000000..e8b39a7
--- /dev/null
+++ b/mcu/service/sst/include/md32_excep_hdlr.h
@@ -0,0 +1,189 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   md32_excep_hdlr.h
+ *
+ * Project:
+ * --------
+ *   UMOLY
+ *
+ * Description:
+ * ------------
+ *   This file provides typedefs and definiton for PS index trace.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef __MD32_EXCEP_HDLR_H__
+#define __MD32_EXCEP_HDLR_H__
+
+#if !defined(__OFFLINE_EX_LOG_PARSER__)
+#include "md32_boot.h"
+#include "kal_general_types.h"
+#endif /*__OFFLINE_EX_LOG_PARSER__*/
+#include "ex_public.h"
+
+/*******************************************************************************
+ * Definition 
+ *******************************************************************************/
+#define MD32_NUM_CORES                               1
+#define MD32_EX_FILENAME_SIZE                        64 
+#define MD32_EX_CORE_NAME_SIZE                       10
+#define MD32_EX_ASSERT_LINE_TYPE_NUMBER              0x1
+#define MD32_EX_ASSERT_EXT_TYPE_NUMBER               0x2
+#define MD32_EX_FATAL_ERROR_TYPE_NUMBER              0x3
+#define MD32_EX_FATAL_ERROR_EXT_TYPE_NUMBER	     0x4
+#define MD32_EX_FILL_FINISH_PATTERN                  0xFD32FD32
+#define MD32_EX_INIT_PATTERN			     0x62935566
+//#define MD32_EXCEPTION_SYNC_TIME		     0x100000  // please use EX_MD32_SYNC_TIME in cc_ex_item.h
+#define MD32_EXCEPTION_FLOW_HANDSHAKE_SYNC_TIME      0x10000
+#define MD32_EXCEPTION_PCORE_WAIT_L1CORE_REPORT_TIME 0x100000
+#define MD32_MPU_MAX_REGION_SIZE 8
+#define MOS_EX_TRACE_BUFFER_SIZE 64
+
+/*******************************************************************************
+ * CMIF Exception record structure for MD32  
+ *******************************************************************************/
+typedef enum{
+    MD32_EX_NONE,
+    MD32_ASSERT_LINE = MD32_EX_ASSERT_LINE_TYPE_NUMBER,
+    MD32_ASSERT_EXT  = MD32_EX_ASSERT_EXT_TYPE_NUMBER,
+    MD32_FATAL_ERROR = MD32_EX_FATAL_ERROR_TYPE_NUMBER,
+    MD32_CTI_EXCEPTION = MD32_EX_FATAL_ERROR_EXT_TYPE_NUMBER,
+    MD32_EX_END=0xff
+}MD32_EX_TYPE;
+
+typedef struct{
+    kal_uint32 line_num;                                    
+    kal_uint32 para1;                                 
+    kal_uint32 para2;                                 
+    kal_uint32 para3;                                 
+    char* filepath_ptr;                              
+    kal_char   file_name[MD32_EX_FILENAME_SIZE];         
+}MD32_EX_CMIF_AssertLog;
+
+typedef struct{
+    kal_uint32 error_status;    //is ex_code[0]
+    kal_uint32 error_pc;        //is ex_code[1]
+    kal_uint32 error_lr;        //is lr
+    kal_uint32 error_address;      //is daabtad
+    kal_uint32 error_code1;     //is ex_code[0]
+    kal_uint32 error_code2;     //is ex_code[1]
+    kal_uint8  error_section;
+}MD32_EX_CMIF_FatalErrorLog;
+
+typedef union{
+    MD32_EX_CMIF_AssertLog assert;
+    MD32_EX_CMIF_FatalErrorLog fatal; 
+}MD32_EX_CMIF_AssertFatalErrorLog;
+
+typedef struct {
+    MD32_EX_TYPE except_type;                //type
+    kal_uint32 except_stat;                         //exception flow's status    
+    MD32_EX_CMIF_AssertFatalErrorLog except_content;   //assert or exception log
+}MD32_ExceptionLogCore_T;
+
+/** Causion: The total log size for 3* MD32s is 392 bytes.
+             It means there are 128 bytes for each MD32s core */
+typedef struct {
+    kal_uint32 core_num;
+    MD32_ExceptionLogCore_T core_error;
+}MD32_ExceptionLog_T;
+
+typedef enum{
+    MD32_BRP_FAIL_BIT_MASK  = (1 << 0),
+    MD32_DFE_FAIL_BIT_MASK  = (1 << 1),
+    MD32_DFE1_FAIL_BIT_MASK = (1 << 2),
+    MD32_RAKE_FAIL_BIT_MASK = (1 << 3)
+}MD32_EX_CORE_BIT_MASK_TYPE;
+
+/*Below are md32_ex_hdlr_trace.c*/
+typedef struct{
+    kal_uint32 finish_fill;
+    kal_uint32 boot_rdy;
+    kal_uint32 ex_flow_progress;
+}MD32_EX_FLOW_TYPE;
+
+typedef enum{
+    MD32_EX_ABNORMAL_RESET                       = 0x1,
+    MD32_EX_INSTRUCTION_ABORT                    = 0x10,
+    MD32_EX_UNDEFINED_INSTRUCTION_ABORT          = 0x13,
+    MD32_EX_DATA_ABORT                           = 0x30,
+    MD32_EX_MPU_PERMISSION_ERROR                 = 0x32,
+    MD32_EX_UNALIGNED_MEMORY_ACCESS              = 0x33,
+    MD32_EX_DIVIDED_BY_ZERO                      = 0x34,
+    MD32_EX_HARDWARE_LOOP_OVERFLOW               = 0x35,
+    MD32_EX_PMU_EXCEPTION                        = 0xE0,
+    MD32_EX_CTI_EXCETPION                        = 0x120,
+    MD32_EX_MOS_INTERNAL_ERROR                   = 0x200,
+    MD32_EX_MOS_VIC_UNREGISTER_INTERRUPT         = 0x201,
+    MD32_EX_MOS_CIRQ_UNREGISTER_INTERRUPT        = 0x202,
+    MD32_EX_MOS_CHECK_STACK_GUARD_PATTERN_FAIL   = 0x203,
+    MD32_EX_MOS_CMIF_UNREGISTER_INTERRUPT        = 0x204,
+    MD32_EX_MOS_ERROR_ECT                        = 0x300
+}MD32_EX_ERROR_CODE_TYPE;
+
+
+/*******************************************************************************
+ * Function delcation 
+ *******************************************************************************/
+extern void INT_GetMD32ExceptionRecord(MD32_ExceptionLog_T *record);
+extern void INT_GetMD32DumpMemoryInfo(kal_uint32 **info, unsigned short *count, kal_uint8* region_config);
+extern kal_bool INT_SyncMD32ExceptionInfo(void);
+extern void INT_EnableMD32MemoryDump(void);
+extern void INT_DumpMD32ExceptionInfo(EX_TRACE_TYPE trace_type/*0=cadefa*/, kal_char* sys_info_str, kal_uint32 len);
+extern kal_bool MD32_IsSyncFinished(void);
+extern void MD32_SetSyncFinished(void);
+extern void INT_GetMD32ExceptionHandshakeInit(void);
+extern void INT_GetMD32BBMemoryInfo(void);
+extern kal_char* INT_GetMD32CoreName(void); 
+
+
+#endif /* __MD32_EXCEP_HDLR_H__  */
+
diff --git a/mcu/service/sst/include/md32_file.h b/mcu/service/sst/include/md32_file.h
new file mode 100644
index 0000000..b2939aa
--- /dev/null
+++ b/mcu/service/sst/include/md32_file.h
@@ -0,0 +1,72 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   md32_file.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This Module defines the HW initialization.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *
+ *
+ *
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef MD32_FILE_H
+#define MD32_FILE_H
+#include "md32_boot_public.h"
+
+
+#endif /* MD32_FILE_H */
diff --git a/mcu/service/sst/include/md32_trc.h b/mcu/service/sst/include/md32_trc.h
new file mode 100644
index 0000000..41b4480
--- /dev/null
+++ b/mcu/service/sst/include/md32_trc.h
@@ -0,0 +1,118 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   md32_trc.h 
+ *
+ * Project:
+ * --------
+ *   UMOLY_Software
+ *
+ * Description:
+ * ------------
+ *   This file contains definitions for trace on target.
+ *
+ *
+ * Author:
+ * -------
+ *   
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+  
+
+    TRC_MSG(MD32_EX_LOG_ASSERT, "[MD32(RAKE)] Assert fail: %s - %d 0x%x 0x%x 0x%x")
+    TRC_MSG(MD32_EX_LOG_UNDEF, "[MD32(RAKE)] Fatal error - undefined instruction: pc 0x%x, lr 0x%x")
+    TRC_MSG(MD32_EX_LOG_ABORT, "[MD32(RAKE)] Fatal error - %s: pc 0x%x, address 0x%x, sp 0x%x, lr 0x%x, interrupt_level %d")
+    TRC_MSG(MD32_EX_LOG_UND_IRQ, "[MD32(RAKE)] Fatal error - %s: 0x%x, interrupt_level %d")
+    TRC_MSG(MD32_EX_LOG_UND_CMIF_IRQ, "[MD32(RAKE)] Fatal error - %s: isr_num %d, lr 0x%x, interrupt_level %d")
+    TRC_MSG(MD32_EX_LOG_CTI, "[MD32(RAKE)] Fatal error - CTI Error")
+    TRC_MSG(MD32_EX_LOG_STACK_CORRUPT, "[MD32(RAKE)] Fatal error - %s: sp 0x%x, lr 0x%x, interrupt_level %d")
+    TRC_MSG(MD32_EX_LOG_ECT, "[MD32(RAKE)] Fatal error - ECT ERROR: code2 0x%x, lr 0x%x, interrupt_level %d")
+    TRC_MSG(MD32_EX_LOG_DEFAULT, "[MD32(RAKE)] Fatal error: code1 0x%x, code2 0x%x, sp 0x%x, lr 0x%x, interrupt_level %d")
+    
+    TRC_MSG(MD32_EX_LOG_IN_SLEEP, "[MD32(RAKE)] Core is in sleep mode, so the exception flow is not active")
+    TRC_MSG(MD32_EX_LOG_WRONG_PATTERN, "[MD32(RAKE)] The CMIF Pattern is 0x%x, RAKE may not finish exception flow")
+    TRC_MSG(MD32_EX_LOG_BIN_BUILD_INFO, "[MD32(%s)] Project: %s Flavor: %s BuildTime: %s Label: %s")
+
+    TRC_MSG(MD32_EX_LOG_EX_FLOW_PROGRESS, "[%s] [MD32(%s)] Exception flow status: %s")
+
+    TRC_MSG(MD32_EX_LOG_CMIF_REACHABLE, "CMIF status from L1 core is %s")
+	
+	TRC_MSG(MD32_COMMON_DOWNLOAD_NOT_DONE_INFO, "[%s] first boot common part not yet download done...")
+	TRC_MSG(MD32_DDL_DOWNLOAD_NOT_DONE_INFO, "[%s] first boot ddl part not yet download done...")
+	TRC_MSG(MD32_COMMON_DOWNLOAD_DONE_INFO, "[%s] first boot common part download done...")
+	TRC_MSG(MD32_DDL_DOWNLOAD_DONE_INFO, "[%s] first boot ddl part download done...")
+	TRC_MSG(MD32_DDL_STATUS_BIN_MODE_INFO, "[DDL][%s] ddl_status: 0x%X, ddl_bin_mode: 0x%X")
+
+
diff --git a/mcu/service/sst/include/md32_user_init.h b/mcu/service/sst/include/md32_user_init.h
new file mode 100644
index 0000000..0105f9c
--- /dev/null
+++ b/mcu/service/sst/include/md32_user_init.h
@@ -0,0 +1,7 @@
+#ifndef MD32_USER_INIT_H
+#define MD32_USER_INIT_H
+#include "kal_public_api.h"
+
+kal_uint32 MD32_User_Init(void);
+
+#endif /* MD32_USER_INIT_H */
\ No newline at end of file
diff --git a/mcu/service/sst/include/md_boot_check.h b/mcu/service/sst/include/md_boot_check.h
new file mode 100644
index 0000000..48eabe3
--- /dev/null
+++ b/mcu/service/sst/include/md_boot_check.h
@@ -0,0 +1,14 @@
+
+#ifndef _MD_BOOT_CHECK_H
+#define _MD_BOOT_CHECK_H
+
+#include "reg_base.h"
+#include "drv_comm.h"
+#include "kal_public_api.h"
+
+extern volatile kal_uint32 md_boot_check_val;
+extern volatile kal_uint32 md_boot_check_val2;
+
+void check_md_boot_mode(void);
+
+#endif  /* !_MD_BOOT_CHECK_H */
diff --git a/mcu/service/sst/include/mddbg.h b/mcu/service/sst/include/mddbg.h
new file mode 100644
index 0000000..10ba279
--- /dev/null
+++ b/mcu/service/sst/include/mddbg.h
@@ -0,0 +1,216 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   mddbg.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   Modem debugging related implementation
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef __SST_MDDBG__
+#define __SST_MDDBG__
+
+#include "mddbg_public.h"
+
+#if !defined(DISABLE_MDDBG_FUNCTION)
+#include "kal_public_api.h"
+#include "ex_item.h"
+#endif 
+
+
+#if defined(__MIPS_IA__) || defined(__MIPS_I7200__)
+#if defined(__MD93__)
+#define IRQ_MDDBG_CODE IRQ_SW_LISR22_CODE
+#endif
+#if defined(__MD95__)|| defined(__MD97__)|| defined(__MD97P__)
+#define IRQ_MDDBG_CODE IRQ_SW_LISR27_CODE
+#endif
+#endif 
+
+#define MAX_CONFIG_VPE_NUM CONFIG_MAX_VPE
+
+#if defined(___MIPS_IA__) || defined(__MD95__)
+	#define MAX_BP_NUM 2
+	#define MAX_WP_NUM 1
+#elif defined(__MIPS_I7200__) || defined(__MD97__)|| defined(__MD97P__)
+	#define MAX_BP_NUM 4
+	#define MAX_WP_NUM 3
+#else
+	#error "incompatible architecture"
+#endif 
+
+#if !defined(DISABLE_MDDBG_FUNCTION)
+/* MDDBG Flags */
+#define MDDBG_CTRL_BY_ICE          (1UL<< 0)
+#define MDDBG_CTRL_BY_TARGET       (1UL<< 1)
+#define MDDBG_CTRL_INIT_VAL        (1UL<<30)
+#define MDDBG_MODE_M2H             (1UL<<29)
+#define MDDBG_MODE_COND_CHECK      (1UL<<28)
+#define MDDBG_MODE_LOG_ONLY        (1UL<<27)
+#define MDDBG_MODE_TASK_INIT_SET   (1UL<<26)
+
+
+enum mddbg_def_db{
+    MDDBG_VAR_COUNT=16U,
+    MDDBG_CONDITION_BUFFER=128U,
+    MDDBG_BP_MASK_OFFSET=0U,
+    MDDBG_WP_MASK_OFFSET=8U,
+    /* ILM Comands, bit15-0 are reserved for BP/WP */
+    MDDBG_CMD_SETBP   = 1U<<31,
+    MDDBG_CMD_SETWP   = 1U<<30,
+    MDDBG_CMD_REMOVEBP = 1U<<29,
+    MDDBG_CMD_REMOVEWP = 1U<<28,
+    MDDBG_CMD_MONITOR = 1U<<27,
+    MDDBG_CMD_M2H     = 1U<<26,
+    MDDBG_CMD_LOG     = 1U<<25, /* Output log, the MONITOR must be 1 */
+    MDDBG_CMD_QUERY   = 1U<<24, /* Query Status */
+#if defined(__MIPS_I7200__)
+    MDDBG_CMD_VERSION = 1,
+#endif
+    CHIP_BP_CNT=MAX_BP_NUM,
+    CHIP_WP_CNT=MAX_WP_NUM,
+#if defined(__MIPS_I7200__)
+    MDDBG_CORES_PER_MODULE = 3,
+#endif
+    CHIP_CORE_CNT = CONFIG_MAX_VPE,  /*VPE Num*/
+ 
+};
+
+
+typedef struct mddbg_req{
+    kal_uint8  ref_count;
+    kal_uint16 msg_len;
+    kal_uint32 cmd;        //setting flags, which kinds of parameter is enabled, enable/disable/query
+    kal_uint32 proc_idx;
+    kal_uint32 bpAddr[CHIP_BP_CNT];
+    kal_uint32 bpMask[CHIP_BP_CNT];
+    kal_uint32 wpAddr[CHIP_WP_CNT];
+    kal_uint32 wpMask[CHIP_WP_CNT];
+    kal_uint32 wpType[CHIP_WP_CNT];
+    kal_uint32 var[MDDBG_VAR_COUNT];
+}mddbg_req_struct;
+
+typedef struct mddbg_response{
+    kal_uint8  ref_count;
+    kal_uint16 msg_len;
+    kal_uint32 cmd;        //setting flags, which kinds of parameter is enabled, enable/disable/query
+    kal_uint32 proc_idx;
+    kal_uint32 bpAddr[CHIP_BP_CNT];
+    kal_uint32 bpMask[CHIP_BP_CNT];
+    kal_uint32 wpAddr[CHIP_WP_CNT];
+    kal_uint32 wpMask[CHIP_WP_CNT];
+    kal_uint32 wpType[CHIP_WP_CNT];
+    kal_uint32 var[MDDBG_VAR_COUNT];
+}mddbg_response_struct;
+
+extern void mddbg_backup(void);
+extern void mddbg_restore(void);
+extern void mddbg_init(void);
+
+#endif /* !DISABLE_MDDBG_FUNCTION */
+
+typedef struct mddbg_bp_config_t{
+    kal_uint32 addr;
+    kal_uint32 addr_mask;
+    kal_uint32 return_addr;
+}mddbg_bp_config_t;
+
+typedef struct mddbg_wp_config_t{
+    kal_uint32 addr;
+    kal_uint32 addr_mask;
+    kal_uint32 type;
+    kal_uint32 return_addr;
+}mddbg_wp_config_t;
+
+
+void mddbg_isr_lisr(void);
+
+
+#endif /* __SST_MDDBG__ */
+
diff --git a/mcu/service/sst/include/mddbg_trc.h b/mcu/service/sst/include/mddbg_trc.h
new file mode 100644
index 0000000..dae1cbf
--- /dev/null
+++ b/mcu/service/sst/include/mddbg_trc.h
@@ -0,0 +1,106 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   cs_trc.h
+ *
+ * Project:
+ * --------
+ *   UMOLY_Software
+ *
+ * Description:
+ * ------------
+ *   This file contains definitions for trace on target.
+ *
+ *
+ * Author:
+ * -------
+ *   
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _MDDBG_TRC_H
+#define _MDDBG_TRC_H
+
+
+	 /* Set Watchpoint, Breakpoint via ELT inject message function */
+/*	TRC_MSG(MDDBG_HIT_BP,	  "BreakPoint(0x%08X) is hit")
+	TRC_MSG(MDDBG_HIT_WP_TBC, "WritePoint(Unknown) is hit at address 0x%08X")
+	TRC_MSG(MDDBG_HIT_WP,	  "WritePoint(0x%08X) is hit at address 0x%08X")
+	TRC_MSG(MDDBG_HIT_Debug,	 "[%d]0x%08X, 0x%08X, 0x%08X")	  
+*/
+	TRC_MSG(MDDBG_API_UT_ENABLE, "mddbg_enableAll(%d) : %d")
+	TRC_MSG(MDDBG_API_UT_DISABLE, "mddbg_disable() : %d")
+	TRC_MSG(MDDBG_API_UT_QUERY, "mddbg_query() : %d, bp_cnt = %d, wp_cnt = %d")
+	TRC_MSG(MDDBG_API_UT_ENABLE_BPS, "mddbg_enable_bps() : %d")
+	TRC_MSG(MDDBG_API_UT_DISABLE_BPS, "mddbg_disable_bps() : %d")
+	TRC_MSG(MDDBG_API_UT_SET_BP, "mddbg_set_bp(0x%08X, %d) : %d")
+	TRC_MSG(MDDBG_API_UT_ENABLE_WPS, "mddbg_enable_wps() : %d")
+	TRC_MSG(MDDBG_API_UT_DISABlE_WPS, "mddbg_disable_wps() : %d")
+	TRC_MSG(MDDBG_API_UT_SET_WP, "mddbg_set_wp(0x%08X, %d, %d, %d) : %d")
+	TRC_MSG(MDDBG_API_UT_SET_WP_RANGE, "mddbg_set_wp_range(0x%08X, 0x%08X, %d, %d) : %d")
+	TRC_MSG(MDDBG_API_UT_READ_MEM, "Read Memory (0x%08X, %d) = %d")
+	TRC_MSG(MDDBG_API_UT_WRITE_MEM, "Write Memory (0x%08X) = %d")
+	TRC_MSG(MDDBG_API_UT_SET_BP_PARAM, "[MDDBG]Breakpoint addr = 0x%08X, control = 0x%08X")
+	TRC_MSG(MDDBG_API_UT_SET_BP_IDX, "set_idx = %d")
+	TRC_MSG(MDDBG_API_UT_SET_WP_TEXT, "wcr:0x%08X, wp_addr:0x%08X, byte_number:%d, access_type:%d, enable:%d")
+
+
+#endif    /* _MDDBG_TRC_H */
+
diff --git a/mcu/service/sst/include/memoryTest.h b/mcu/service/sst/include/memoryTest.h
new file mode 100644
index 0000000..50d20c4
--- /dev/null
+++ b/mcu/service/sst/include/memoryTest.h
@@ -0,0 +1,169 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   ex_item.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *	Header file for exception handling
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _MEMORY_TEST_H
+#define _MEMORY_TEST_H
+
+/************************************
+  *
+  * High-level feature options.
+  *
+  ***********************************/
+
+#define EMI_PERFORMANCE_TEST
+
+
+/************************************
+  *
+  * Definition
+  *
+  ***********************************/ 
+// EMI_PERFORMANCE_TEST_SIZE must >= EMI_STABILITY_TEST_SIZE
+
+#if   defined(MT6268)
+
+#define EMI_PERFORMANCE_TEST_SIZE 512
+#define EMI_STABILITY_TEST_SIZE 256
+
+#elif defined(MT6238) || defined(MT6239) || defined(MT6235B) /* MT6276 || MT6256 || MT6268 */
+
+#define EMI_PERFORMANCE_TEST_SIZE 512
+#define EMI_STABILITY_TEST_SIZE 256
+
+#elif defined(MT6253L) || defined(MT6253T) || defined(MT6268A) || defined(MT6270A) /* MT6276 || MT6256 || MT6268 */
+
+#define EMI_PERFORMANCE_TEST_SIZE 256
+#define EMI_STABILITY_TEST_SIZE 256
+
+#else /* MT6276 || MT6256 || MT6268 */
+
+/**
+  * MT6225 || MT6268T || MT6268H || MT6223 || MT6223P
+  */
+  
+#define EMI_PERFORMANCE_TEST_SIZE (KEY_STREAM_LEN)
+#define EMI_STABILITY_TEST_SIZE 128
+
+#endif /* MT6276 || MT6256 || MT6268 */
+
+
+/************************************
+  *
+  * Enum
+  *
+  ***********************************/
+
+typedef enum ADV_RAM_TEST_OPTION
+{
+    ADV_RAM_TEST_OPTION_TEST_DURATION
+}ADV_RAM_TEST_OPTION_T;
+
+
+
+#endif /* _MEMORY_TEST_H */
+
+
diff --git a/mcu/service/sst/include/sonic_control.h b/mcu/service/sst/include/sonic_control.h
new file mode 100644
index 0000000..cbde45e
--- /dev/null
+++ b/mcu/service/sst/include/sonic_control.h
@@ -0,0 +1,57 @@
+#ifndef _SONIC_CONTROL_H_
+#define _SONIC_CONTROL_H_
+
+#include "kal_public_api.h"
+#include "sonic_control_public.h"
+#include "reg_base.h"
+#include "dsp_header_define_csif_memory.h"
+#include "btdma_public.h"
+#include "csif_l1core_public_api.h"
+#include "dsp_public_dbgc.h"
+#if defined(__MD97P__)
+//ToDo: Add idle signal to deactivate mcore
+#else
+#include "dsp_public_eintc.h"
+#endif
+
+/********************************/
+/* Structure/Enum Define        */
+/********************************/
+typedef enum{
+    SONIC_THREAD0,
+    SONIC_THREAD1,
+    SONIC_THREAD2,
+#if (!(defined(MT6853) && defined(__PALMER_SIMULATION__)) && !(defined(MT6833) || defined(MT6877)))
+    SONIC_THREAD3,
+#endif
+    SONIC_THREAD_NUM
+} THREAD_SONIC_ENUM;
+
+typedef struct{
+    kal_uint32 thread0 : 1;
+    kal_uint32 thread1 : 1;
+    kal_uint32 thread2 : 1;
+    kal_uint32 thread3 : 1;
+} THREAD_BITWISE_STRUCT;
+
+typedef struct{
+    kal_uint32 start_frc;
+    kal_uint32 end_frc;
+} TIME_RECORD_STRUCT;
+
+
+/********************************/
+/* Function extern              */
+/********************************/
+
+extern void sonic_activate_by_btdma_ungate(void);
+extern void sonic_activate_by_release_idle(kal_uint32 th_bitmap);
+extern kal_uint32 sonic_activate(kal_uint32 th_bitmap);
+extern void sonic_deactivate(kal_uint32 th_bitmap);
+extern kal_uint32 sonic_check_activate_done(kal_uint32 th_bitmap);
+extern kal_uint32 sonic_check_deactivate_done(kal_uint32 th_bitmap);
+void sonic_deactivate_cb_n0(CSIF_ID_STATUS_t*);
+extern void sonic_clear_WFI_mask(void);
+extern kal_uint32 sonic_check_idle_flag_by_module(kal_uint32 thread_id, kal_uint32 user_id);
+
+#endif /*_SONIC_CONTROL_H_*/
diff --git a/mcu/service/sst/include/spv_api.h b/mcu/service/sst/include/spv_api.h
new file mode 100644
index 0000000..3e866a5
--- /dev/null
+++ b/mcu/service/sst/include/spv_api.h
@@ -0,0 +1,1014 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * -----------
+ *   spv_api.h
+ *
+ * Project:
+ * -----------
+ *   UMOLY
+ *
+ * Description:
+ * ------------
+ *   SPV Related API Code
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 07 16 2020 yunciou.lin
+ * [MOLY00546717] [MT6833] [Palmer] feature check-in: SPV option &  disable emimpu for palmer bringup.
+ * [Palmer] feature check-in:
+ * 	SPV option & 
+ * 	disable emimpu for palmer bringup.
+ *
+ * 02 07 2020 chia-fu.lee
+ * [MOLY00475722] [VMOLY][MT6853] Mouton call for check in
+ * 	
+ * 	[SSS] Trace feature support on sampling mode
+ *
+ * 01 21 2020 justin.chen
+ * [MOLY00475722] [VMOLY][MT6853] Mouton call for check in
+ * . Update SPV related file.
+ *
+ * 12 26 2019 justin.chen
+ * [MOLY00462986] [MT6885] elm driver development
+ * .Update MT6873 force latency API.
+ *
+ * 12 26 2019 gway.lo
+ * [MOLY00462986] [MT6885] elm driver development
+ * 1. word count threshold change api
+ * 	2. toggle elm on/off api
+ *
+ * 12 24 2019 gway.lo
+ * [MOLY00462986] [MT6885] elm driver development
+ * 	
+ * 	enable Margaux ELM 2nd assert
+ *
+ * 12 06 2019 chia-fu.lee
+ * [MOLY00460633] [MT6885][Petrus][MP1][SQC][CTC][FT][NSA][5G FT][China][Shanghai][Extension FT][MDST][CAT]md1:(MCU_core0,vpe1,tc2(VPE1)) [ASSERT] file:mcu/l1/ul1/ul1d_public/ul1_bb_error_check.c line:108
+ * 	
+ * 	Rollback debugging patch for UL1 HRT fail issue
+ *
+ * 11 12 2019 chia-fu.lee
+ * [MOLY00458740] [MT6885][Petrus][MP1][SQC][CTC][FT][NSA][5G FT][China][Suzhou][Extension FT][MDST][CAT]file:mcu/l1/ul1/ul1d_public/ul1_bb_error_check.c line:108
+ * 	
+ * 	EWSP0000059818
+ * 	SSS debugging patch
+ *
+ * 11 07 2019 gway.lo
+ * [MOLY00457526] [MT6873] driver porting
+ * disable elm assert mode and porting emi force latency api on MT6873
+ *
+ * 09 19 2019 gway.lo
+ * [MOLY00403390] [MT6297] ELM driver development
+ * petrus force emi latency
+ *
+ * 09 19 2019 chia-fu.lee
+ * [MOLY00434384] [Apollo] Debugging patch for UL1D_RF_ImmRxCentralConfig abnormal execution time
+ * 	
+ * 	Rollback debug patch for IRQ0xF5 issue
+ *
+ * 08 26 2019 chia-fu.lee
+ * [MOLY00434384] [Apollo] Debugging patch for UL1D_RF_ImmRxCentralConfig abnormal execution time
+ * 	
+ * 	Fixed Mercury(MD97P) build error.
+ *
+ * 08 26 2019 chia-fu.lee
+ * [MOLY00434384] [Apollo] Debugging patch for UL1D_RF_ImmRxCentralConfig abnormal execution time
+ * SSS Profiling
+ *
+ * 05 27 2019 gway.lo
+ * [MOLY00408920] [MT6297] SPV long time profile update
+ * long time profile feature update
+ *
+ * 04 12 2019 gway.lo
+ * [MOLY00398406] [MT6297] SS SPV AMIF profile feature
+ * AMIF profiling feature
+ *
+ * 01 14 2019 chia-fu.lee
+ * [MOLY00378963] [SystemService][MT6297] SWLA and CM2 counter / SSS PMU Profiling Development
+ * 	
+ * 	SSS PMU Profiling API
+ *
+ * 12 18 2018 gway.lo
+ * [MOLY00367306] [MT6297][SPV] basic profiling code check-in
+ * fix build error
+ *
+ * 12 18 2018 gway.lo
+ * [MOLY00367306] [MT6297][SPV] basic profiling code check-in
+ * force emi latenct, long time profiling
+ *
+ * 07 16 2018 chia-fu.lee
+ * [MOLY00338914] [SPV][Gen95] EBM in BW runtime profiling
+ * 	
+ * 	.
+ *
+ * 05 21 2018 chia-fu.lee
+ * [MOLY00327212] [Gen95][L2C LOCK]Remove Static L2 Cache Lock input sections
+ * 	
+ * 	[UMOLYE] SPV service Remove Static L2 Cache Lock input sections
+ *
+ * 04 02 2018 chin-chieh.hung
+ * [MOLY00309439] Eiger SPV utilities support
+ * Update EBM driver for Gen95
+ *
+ * 03 19 2018 chia-fu.lee
+ * [MOLY00313462] [Gen95] SPV_SVC porting
+ * SPV_SVC modification support write latency information
+ *
+ * 03 14 2018 chia-fu.lee
+ * [MOLY00313462] [Gen95] SPV_SVC porting
+ * 	
+ * 	Modify ELM part
+ *
+ * 03 13 2018 chin-chieh.hung
+ * [MOLY00309439] Eiger SPV utilities support
+ * Disable EMI latency count by 26Mhz
+ *
+ * 03 08 2018 peng-chih.wang
+ * [MOLY00312351] [System Service] Add M4 force latency and AT cmd for Gen95 PS SPV
+ * Eiger PS SPV -- porting force M4 latency and AT cmd.
+ *
+ * 02 23 2018 chin-chieh.hung
+ * [MOLY00309439] Eiger SPV utilities support
+ * Add Gen95 SPV utilities - Force Latency / EBM counter
+ *
+ * 09 07 2017 yen-chun.liu
+ * [MOLY00274402] [Gen93] SPV profiling utility
+ * BW/latency profiling code v2.
+ *
+ * 09 07 2017 yen-chun.liu
+ * [MOLY00274402] [Gen93] SPV profiling utility
+ * BW/latency runtime profiling.
+ *
+ * 07 24 2017 wellken.chen
+ * [MOLY00265986] [SPVSVC] Add spv service 1st version related
+ *
+ * 06 02 2017 linson.du
+ * [MOLY00254730] [Gen93]: ELM driver update for EMI latency issue
+ * ELM driver update for SPV usage.
+ *
+ * 07 14 2015 wellken.chen
+ * [MOLY00128710] [Jade][SPV] Refine SPV API realted code
+ *
+ *
+ *
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef __SPV_API_H_
+#define __SPV_API_H_
+
+#include "reg_base.h"
+#include "kal_general_types.h"
+#include "elm.h"
+
+#if defined(__FORCE_EMI_LATENCY_ENABLE__)
+#if defined(MT6763)||defined(MT3967)		//use AP EMI
+
+#define SPV_MADDR_MEMAPB			(0xC0219000)
+	
+#define EMI_CONE					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x20)
+#define EMI_DRCT					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x78)
+#define EMI_ARBD					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x118)
+#define EMI_ARBE					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x120)
+#define EMI_SLCT					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x158)
+#define EMI_CONM					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x60)
+#define EMI_TESTB					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0xE8)
+
+#if !defined(__SPV_EBM_DRIVER__)
+#define EMI_BMEN					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x400)
+#define EMI_BCNT					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x408)
+	
+#define EMI_TSCT					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x418)
+#define EMI_WSCT					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x428)
+#define EMI_BACT					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x430)
+#define EMI_BSCT					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x438)
+#define EMI_MSEL					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x440)
+#define EMI_TSCT2					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x448)
+#define EMI_WSCT2					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x458)
+#define EMI_BMEN2					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x4E8)
+	
+	
+#define EMI_TTYPE1					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x500)
+#define EMI_TTYPE2					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x508)
+#define EMI_TTYPE3					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x510)
+#define EMI_TTYPE4					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x518)
+#define EMI_TTYPE5					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x520)
+#define EMI_TTYPE6					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x528)
+#define EMI_TTYPE7					(volatile kal_uint32 *)(SPV_MADDR_MEMAPB + 0x53C)
+#endif //!defined(__SPV_EBM_DRIVER__)
+
+#if defined(MT3967)		//use AP EMI
+
+#define EMI_FORCE_LATENCY(r, w) \
+    do {\
+        *EMI_CONE |= 1;\
+        *EMI_DRCT = 0x23110000;\
+        *EMI_ARBD = 0x00003000 | (r<<16) | (w<<24);\
+        *EMI_SLCT = 0x1F011700;\
+        *EMI_CONM = 0xff000500;\
+    } while (0)
+
+#else
+
+//psmcu ultra
+#define SPV_PSMCU_QOS_CTL				((volatile kal_uint32 *)(BASE_MADDR_MDPERIMISC + 0xF0))
+
+#define EMI_FORCE_LATENCY(r, w) \
+    do {\
+        while (*SPV_PSMCU_QOS_CTL & 0x11) {*SPV_PSMCU_QOS_CTL &= ~(0x11);}\
+        *EMI_DRCT = 0x23110000;\
+        *EMI_ARBD = 0x00003000 | (r<<16) | (w<<24);\
+        *EMI_SLCT = 0x1F011700;\
+        *EMI_CONM = 0xff000500;\
+    } while (0)
+
+#define EMI_FORCE_M4_LATENCY(r, w) \
+    do {\
+        while (*SPV_PSMCU_QOS_CTL & 0x11) {*SPV_PSMCU_QOS_CTL &= ~(0x11);}\
+        *EMI_DRCT = 0x23110000;\
+        *EMI_ARBE = 0x00003000 | (r<<16) | (w<<24);\
+        *EMI_SLCT = 0x1F011700;\
+        *EMI_CONM = 0xff000500;\
+    } while (0)	
+#endif
+
+#define EMI_FORCE_DISABLE_DRAMC_WRITE_EARLY_RESPONSE() \
+	do {\
+		*EMI_TESTB |= (1<<11);\
+	} while(0)
+
+#elif defined(MT6297)
+
+#define SPV_MADDR_MEMAPB            (0xC0219000)
+
+#define EMI_CONE                    (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0x20 )
+#define EMI_DRCT                    (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0x78 )
+#define EMI_CONM                    (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0x60 )
+#define EMI_TESTB                   (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0xE8 )
+#define EMI_ARBD                    (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0x118)
+#define EMI_ARBE_2ND                (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0x124)
+#define EMI_SLCT                    (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0x158)
+#define EMI_SHF0                    (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0x710)
+#define EMI_BWLMTA                  (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0x890)
+#define EMI_BWLMTF_2ND              (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0x8E4)
+#define EMI_BWLMTF_5TH              (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0x934)
+#define EMI_QOS_MDR_BE0A            (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0xD04)
+#define EMI_QOS_MDR_BE0B            (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0xD08)
+#define EMI_QOS_MDR_BE1A            (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0xD0C)
+#define EMI_QOS_MDR_BE1B            (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0xD10)
+#define EMI_QOS_MDR_SHF0            (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0xD14)
+#define EMI_QOS_MDR_SHF1            (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0xD18)
+#define EMI_QOS_MDW_SHF0            (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0xD2C)
+#define EMI_QOS_MDW_SHF1            (volatile kal_uint32*)(SPV_MADDR_MEMAPB + 0xD30)
+
+#define EMI_FORCE_LATENCY(r, w) \
+    do {\
+        *EMI_CONE |= 1;\
+        *EMI_DRCT = 0x23110000;\
+        *EMI_SHF0 &= 0xFFFFFFF0; \
+        *EMI_ARBD = 0x00003000 | (r<<16) | (w<<24);\
+        *EMI_ARBE_2ND = (*EMI_ARBE_2ND & 0x0000FFFF) | (r<<16) | (w<<24);\
+        *EMI_SLCT = 0x1F011700;\
+        *EMI_CONM = 0xff000500;\
+        \
+        *EMI_BWLMTA |=  (0x01UL<< 3); \
+        *EMI_BWLMTA &= ~(0x01UL<<11); \
+        *EMI_BWLMTA &= ~(0x01UL<<27); \
+        *EMI_BWLMTF_2ND &= 0xFFFF0000UL; \
+        *EMI_BWLMTF_5TH &= 0xFFFF0000UL; \
+        *EMI_QOS_MDR_SHF0 = (*EMI_QOS_MDR_SHF0 & (0xFFF00000UL)) | (r&0xFF)<<8 | (r&0xFF); \
+        *EMI_QOS_MDR_SHF1 = (*EMI_QOS_MDR_SHF1 & (0xFFF00000UL)) | (r&0xFF)<<8 | (r&0xFF); \
+        *EMI_QOS_MDW_SHF0 = (*EMI_QOS_MDW_SHF0 & (0xFFF00000UL)) | (w&0xFF)<<8 | (w&0xFF); \
+        *EMI_QOS_MDW_SHF1 = (*EMI_QOS_MDW_SHF1 & (0xFFF00000UL)) | (w&0xFF)<<8 | (w&0xFF); \
+        *EMI_QOS_MDR_BE0A = 0x00000000; \
+        *EMI_QOS_MDR_BE0B = 0x00000000; \
+        *EMI_QOS_MDR_BE1A = 0x00000000; \
+        *EMI_QOS_MDR_BE1B = 0x00000000; \
+    } while (0)
+
+
+#define EMI_FORCE_DISABLE_DRAMC_WRITE_EARLY_RESPONSE() \
+     do {\
+         *EMI_TESTB |= (1<<11);\
+     } while(0)
+
+#define FORCE_MD_ULTRA(p) \
+	do {\
+      if(p==0){\
+			DRV_ClrReg32(BASE_MADDR_MDCORESYS_MDMCU_BUS_INTF_CFG+0x1C,(0xF<<16)); \
+		 	DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0x8, 0x0);\
+		 	DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0xC, 0x0);\
+		 	DRV_WriteReg32(BASE_MADDR_MCOREPERI_INFRA_DSPSL2C+0x658, 0x0);\
+      }else{\
+			DRV_SetReg32(BASE_MADDR_MDCORESYS_MDMCU_BUS_INTF_CFG+0x1C,(0xF<<16)); \
+		 	DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0x8, 0xFFFFFFFF);\
+		 	DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0xC, 0xEF);\
+		 	DRV_WriteReg32(BASE_MADDR_MCOREPERI_INFRA_DSPSL2C+0x658, 0x2AAAA);\
+         }\
+     } while(0)
+#elif defined(MT6885) || defined(MT6880)
+
+#define EMI_N_ARBE_2ND (volatile kal_uint32*)(0xC0219124)
+#define EMI_N_ARBD (volatile kal_uint32*)(0xC0219118)
+#define EMI_N_QOS_MDR_SHF0 (volatile kal_uint32*)(0xC0219D14)
+#define EMI_N_QOS_MDR_SHF1 (volatile kal_uint32*)(0xC0219D18)
+
+#define EMI_S_ARBE_2ND (volatile kal_uint32*)(0xC021D124)
+#define EMI_S_ARBD (volatile kal_uint32*)(0xC021D118)
+#define EMI_S_QOS_MDR_SHF0 (volatile kal_uint32*)(0xC021DD14)
+#define EMI_S_QOS_MDR_SHF1 (volatile kal_uint32*)(0xC021DD18)
+
+#define EMI_CH0_TESTB (volatile kal_uint32*)(0xC0235048)
+#define EMI_CH1_TESTB (volatile kal_uint32*)(0xC0245048)
+#define EMI_CH2_TESTB (volatile kal_uint32*)(0xC0255048)
+#define EMI_CH3_TESTB (volatile kal_uint32*)(0xC0265048)
+
+
+/***********************/
+
+#define EMI_TESTC (volatile kal_uint32*)(0xc02190f0)
+#define EMI_TESTC_S (volatile kal_uint32*)(0xc021d0f0)
+
+#define EMI_CONH_2ND (volatile kal_uint32*)(0xc021903c)
+#define EMI_CONH_2ND_S (volatile kal_uint32*)(0xc021d03c)
+
+#define EMI_BWLMTE_4TH (volatile kal_uint32*)(0xc0219920)
+#define EMI_BWLMTE_4TH_S (volatile kal_uint32*)(0xc021d920)
+
+#define EMI_BWLMTF_4TH (volatile kal_uint32*)(0xc0219924)
+#define EMI_BWLMTF_4TH_S (volatile kal_uint32*)(0xc021d924)
+
+#define EMI_BWLMTE_5TH (volatile kal_uint32*)(0xc0219930)
+#define EMI_BWLMTE_5TH_S (volatile kal_uint32*)(0xc021d930)
+#define EMI_BWLMTF_5TH (volatile kal_uint32*)(0xc0219934)
+#define EMI_BWLMTF_5TH_S (volatile kal_uint32*)(0xc021d934)
+#define EMI_BWLMTG_5TH (volatile kal_uint32*)(0xc0219938)
+#define EMI_BWLMTG_5TH_S (volatile kal_uint32*)(0xc021d938)
+
+#define EMI_BWLMTE (volatile kal_uint32*)(0xc02198A0)
+#define EMI_BWLMTE_S (volatile kal_uint32*)(0xc021d8A0)
+#define EMI_BWLMTF (volatile kal_uint32*)(0xc02198A4)
+#define EMI_BWLMTF_S (volatile kal_uint32*)(0xc021d8A4)
+
+#define EMI_BWLMTE_2ND (volatile kal_uint32*)(0xc02198E0)
+#define EMI_BWLMTE_2ND_S (volatile kal_uint32*)(0xc021d8E0)
+#define EMI_BWLMTF_2ND (volatile kal_uint32*)(0xc02198E4)
+#define EMI_BWLMTF_2ND_S (volatile kal_uint32*)(0xc021d8E4)
+#define EMI_BWLMTG_2ND (volatile kal_uint32*)(0xc02198E8)
+#define EMI_BWLMTG_2ND_S (volatile kal_uint32*)(0xc021d8E8)
+
+#define EMI_MDCT (volatile kal_uint32*)(0xc0219078)
+#define EMI_MDCT_S (volatile kal_uint32*)(0xc021d078)
+
+#define EMI_THRO_PRD2 (volatile kal_uint32*)(0xC021985C)
+#define EMI_THRO_PRD2_S (volatile kal_uint32*)(0xC021D85C)
+
+#define EMI_QOS_MDR_BE0A (volatile kal_uint32*)(0xC0219D04)
+#define EMI_QOS_MDR_BE0A_S (volatile kal_uint32*)(0xC021DD04)
+#define EMI_QOS_MDR_BE0B (volatile kal_uint32*)(0xC0219D08)
+#define EMI_QOS_MDR_BE0B_S (volatile kal_uint32*)(0xC021DD08)
+#define EMI_QOS_MDR_BE1A (volatile kal_uint32*)(0xC0219D0C)
+#define EMI_QOS_MDR_BE1A_S (volatile kal_uint32*)(0xC021DD0C)
+#define EMI_QOS_MDR_BE1B (volatile kal_uint32*)(0xC0219D10)
+#define EMI_QOS_MDR_BE1B_S (volatile kal_uint32*)(0xC021DD10)
+
+#define EMI_QOS_MDW_BE0A (volatile kal_uint32*)(0xC0219D1C)
+#define EMI_QOS_MDW_BE0A_S (volatile kal_uint32*)(0xC021DD1C)
+#define EMI_QOS_MDW_BE0B (volatile kal_uint32*)(0xC0219D20)
+#define EMI_QOS_MDW_BE0B_S (volatile kal_uint32*)(0xC021DD20)
+#define EMI_QOS_MDW_BE1A (volatile kal_uint32*)(0xC0219D24)
+#define EMI_QOS_MDW_BE1A_S (volatile kal_uint32*)(0xC021DD24)
+#define EMI_QOS_MDW_BE1B (volatile kal_uint32*)(0xC0219D28)
+#define EMI_QOS_MDW_BE1B_S (volatile kal_uint32*)(0xC021DD28)
+
+#define EMI_QOS_MDHWR_BE0A (volatile kal_uint32*)(0xC0219D98)
+#define EMI_QOS_MDHWR_BE0A_S (volatile kal_uint32*)(0xC021DD98)
+#define EMI_QOS_MDHWR_BE0B (volatile kal_uint32*)(0xC0219D9C)
+#define EMI_QOS_MDHWR_BE0B_S (volatile kal_uint32*)(0xC021DD9C)
+#define EMI_QOS_MDHWR_BE1A (volatile kal_uint32*)(0xC0219DA0)
+#define EMI_QOS_MDHWR_BE1A_S (volatile kal_uint32*)(0xC021DDA0)
+#define EMI_QOS_MDHWR_BE1B (volatile kal_uint32*)(0xC0219DA4)
+#define EMI_QOS_MDHWR_BE1B_S (volatile kal_uint32*)(0xC021DDA4)
+
+#define EMI_QOS_MDHWW_BE0A (volatile kal_uint32*)(0xC0219DAC)
+#define EMI_QOS_MDHWW_BE0A_S (volatile kal_uint32*)(0xC021DDAC)
+#define EMI_QOS_MDHWW_BE0B (volatile kal_uint32*)(0xC0219DB0)
+#define EMI_QOS_MDHWW_BE0B_S (volatile kal_uint32*)(0xC021DDB0)
+#define EMI_QOS_MDHWW_BE1A (volatile kal_uint32*)(0xC0219DB4)
+#define EMI_QOS_MDHWW_BE1A_S (volatile kal_uint32*)(0xC021DDB4)
+#define EMI_QOS_MDHWW_BE1B (volatile kal_uint32*)(0xC0219DB8)
+#define EMI_QOS_MDHWW_BE1B_S (volatile kal_uint32*)(0xC021DDB8)
+
+#define EMI_CONE (volatile kal_uint32*)(0xc0219020)
+#define EMI_CONE_S (volatile kal_uint32*)(0xc021d020)
+
+#define CH0_EMI_CONC (volatile kal_uint32*)(0xC0235010)
+#define CH1_EMI_CONC (volatile kal_uint32*)(0xC0245010)
+#define CH2_EMI_CONC (volatile kal_uint32*)(0xC0255010)
+#define CH3_EMI_CONC (volatile kal_uint32*)(0xC0265010)
+
+#define EMI_QOS_CTRL1 (volatile kal_uint32*)(0xc0219DF4)
+#define EMI_QOS_CTRL1_S (volatile kal_uint32*)(0xc021dDF4)
+
+#define EMI_QOS_MDW_SHF0 (volatile kal_uint32*)(0xc0219D2C)
+#define EMI_QOS_MDW_SHF0_S (volatile kal_uint32*)(0xc021dD2C)
+#define EMI_QOS_MDW_SHF1 (volatile kal_uint32*)(0xc0219D30)
+#define EMI_QOS_MDW_SHF1_S (volatile kal_uint32*)(0xc021dD30)
+
+/***********************/
+#define EMI_FORCE_LATENCY(r, w) \
+			do {\
+				*EMI_TESTC |= 1<<19;\
+				*EMI_TESTC_S |= 1<<19;\
+				*EMI_CONH_2ND |= 1<<9;\
+				*EMI_CONH_2ND_S |= 1<<9;\
+				*EMI_BWLMTE_4TH = 0xFFFFFFFF;\
+				*EMI_BWLMTE_4TH_S = 0xFFFFFFFF;\
+				*EMI_BWLMTF_4TH |= 0xFFFF;\
+				*EMI_BWLMTF_4TH_S |= 0xFFFF;\
+				*EMI_BWLMTE_5TH = 0xFFFFFFFF;\
+				*EMI_BWLMTE_5TH_S = 0xFFFFFFFF;\
+				*EMI_BWLMTF_5TH = 0xFFFFFFFF;\
+				*EMI_BWLMTF_5TH_S = 0xFFFFFFFF;\
+				*EMI_BWLMTG_5TH = 0xFFFFFFFF;\
+				*EMI_BWLMTG_5TH_S = 0xFFFFFFFF;\
+				*EMI_BWLMTE = 0xFF00FFFF;\
+				*EMI_BWLMTE_S = 0xFF00FFFF;\
+				*EMI_BWLMTF |= 0xFFFF;\
+				*EMI_BWLMTF_S |= 0xFFFF;\
+				*EMI_BWLMTE_2ND = 0xFFFFFFFF;\
+				*EMI_BWLMTE_2ND_S = 0xFFFFFFFF;\
+				*EMI_BWLMTF_2ND = 0xFFFF0000;\
+				*EMI_BWLMTF_2ND_S = 0xFFFF0000;\
+				*EMI_BWLMTG_2ND = 0xFFFFFFFF;\
+				*EMI_BWLMTG_2ND_S = 0xFFFFFFFF;\
+				*EMI_N_ARBD |= 1<<13;\
+				*EMI_S_ARBD |= 1<<13;\
+				*EMI_N_ARBD &= ~(1<<14);\
+				*EMI_S_ARBD &= ~(1<<14);\
+				*EMI_MDCT &= ~((1<<1)|(1<<3));\
+				*EMI_MDCT_S &= ~((1<<1)|(1<<3));\
+				*EMI_THRO_PRD2 |= (7<<24) | (7<<28);\
+				*EMI_THRO_PRD2_S |= (7<<24) | (7<<28);\
+				\
+				*EMI_QOS_MDR_BE0A = 0;\
+				*EMI_QOS_MDR_BE0B = 0;\
+				*EMI_QOS_MDR_BE1A = 0;\
+				*EMI_QOS_MDR_BE1B = 0;\
+				*EMI_QOS_MDW_BE0A = 0;\
+				*EMI_QOS_MDW_BE0B = 0;\
+				*EMI_QOS_MDW_BE1A = 0;\
+				*EMI_QOS_MDW_BE1B = 0;\
+				*EMI_QOS_MDR_BE0A_S = 0;\
+				*EMI_QOS_MDR_BE0B_S = 0;\
+				*EMI_QOS_MDR_BE1A_S = 0;\
+				*EMI_QOS_MDR_BE1B_S = 0;\
+				*EMI_QOS_MDW_BE0A_S = 0;\
+				*EMI_QOS_MDW_BE0B_S = 0;\
+				*EMI_QOS_MDW_BE1A_S = 0;\
+				*EMI_QOS_MDW_BE1B_S = 0;\
+				\
+				*EMI_QOS_MDHWR_BE0A = 0;\
+				*EMI_QOS_MDHWR_BE0B = 0;\
+				*EMI_QOS_MDHWR_BE1A = 0;\
+				*EMI_QOS_MDHWR_BE1B = 0;\
+				*EMI_QOS_MDHWW_BE0A = 0;\
+				*EMI_QOS_MDHWW_BE0B = 0;\
+				*EMI_QOS_MDHWW_BE1A = 0;\
+				*EMI_QOS_MDHWW_BE1B = 0;\
+				*EMI_QOS_MDHWR_BE0A_S = 0;\
+				*EMI_QOS_MDHWR_BE0B_S = 0;\
+				*EMI_QOS_MDHWR_BE1A_S = 0;\
+				*EMI_QOS_MDHWR_BE1B_S = 0;\
+				*EMI_QOS_MDHWW_BE0A_S = 0;\
+				*EMI_QOS_MDHWW_BE0B_S = 0;\
+				*EMI_QOS_MDHWW_BE1A_S = 0;\
+				*EMI_QOS_MDHWW_BE1B_S = 0;\
+				\
+				*EMI_N_ARBD = (*EMI_N_ARBD&0x00FFFFFF) | (w<<24);\
+				*EMI_N_ARBE_2ND = (*EMI_N_ARBE_2ND&0x00FFFFFF) | (w<<24);\
+				*EMI_S_ARBD = (*EMI_S_ARBD&0x00FFFFFF) | (w<<24);\
+				*EMI_S_ARBE_2ND = (*EMI_S_ARBE_2ND&0x00FFFFFF) | (w<<24);\
+				\
+				*EMI_CONE |= 1 ;\
+				*EMI_CONE_S |= 1 ;\
+				\
+				*CH0_EMI_CONC |= (1<<5) ;\
+				*CH1_EMI_CONC |= (1<<5) ;\
+				*CH2_EMI_CONC |= (1<<5) ;\
+				*CH3_EMI_CONC |= (1<<5) ;\
+				\
+				*EMI_QOS_CTRL1 &= ~((0x1<<11)|(0x1<<27));\
+				*EMI_QOS_CTRL1_S &= ~((0x1<<11)|(0x1<<27));\
+				\
+				*EMI_QOS_MDW_SHF0 = (*EMI_QOS_MDW_SHF0&0xffffff00) | w;\
+				*EMI_QOS_MDW_SHF0_S = (*EMI_QOS_MDW_SHF0_S&0xffffff00) | w;\
+				*EMI_QOS_MDW_SHF1 = (*EMI_QOS_MDW_SHF1&0xffffff00) | w;\
+				*EMI_QOS_MDW_SHF1_S = (*EMI_QOS_MDW_SHF1_S&0xffffff00) | w;\
+				\
+				*EMI_N_ARBE_2ND = (*EMI_N_ARBE_2ND & 0xFF00FFFF) | (r<<16)  ;\
+		        *EMI_N_ARBD = (*EMI_N_ARBD & 0xFF00FFFF) | (r<<16)  ;\
+		        *EMI_N_QOS_MDR_SHF0 = (*EMI_N_QOS_MDR_SHF0 & 0xFFFF0000) | (r<<8) | (r);\
+		        *EMI_N_QOS_MDR_SHF1 = (*EMI_N_QOS_MDR_SHF1 & 0xFFFF0000) | (r<<8) | (r);\
+		        \
+				*EMI_S_ARBE_2ND = (*EMI_S_ARBE_2ND & 0xFF00FFFF) | (r<<16) ;\
+		        *EMI_S_ARBD = (*EMI_S_ARBD & 0xFF00FFFF) | (r<<16) ;\
+		        *EMI_S_QOS_MDR_SHF0 = (*EMI_S_QOS_MDR_SHF0 & 0xFFFF0000) | (r<<8) | (r);\
+		        *EMI_S_QOS_MDR_SHF1 = (*EMI_S_QOS_MDR_SHF1 & 0xFFFF0000) | (r<<8) | (r);\
+				\
+				*EMI_CH0_TESTB |= ((1<<6)|(1<<13)) ; \
+				*EMI_CH1_TESTB |= ((1<<6)|(1<<13)) ; \
+				*EMI_CH2_TESTB |= ((1<<6)|(1<<13)) ; \
+				*EMI_CH3_TESTB |= ((1<<6)|(1<<13)) ; \
+			} while (0)
+				
+#define EMI_AGING_26M() \
+			do {\
+				*EMI_CONE &= ~(1<<0) ;\
+				*EMI_CONE_S &= ~(1<<0) ;\
+				*CH0_EMI_CONC &= ~(1<<5) ;\
+				*CH1_EMI_CONC &= ~(1<<5) ;\
+				*CH2_EMI_CONC &= ~(1<<5) ;\
+				*CH3_EMI_CONC &= ~(1<<5) ;\
+			} while (0)
+		
+#define EMI_FORCE_DISABLE_DRAMC_WRITE_EARLY_RESPONSE() \
+			 do {\
+				*EMI_CH0_TESTB |= (1<<11) ; \
+				*EMI_CH1_TESTB |= (1<<11) ; \
+				*EMI_CH2_TESTB |= (1<<11) ; \
+				*EMI_CH3_TESTB |= (1<<11) ; \
+			 } while(0)
+				
+#define FORCE_MD_ULTRA(p) \
+			 do {\
+			   if(p==0){\
+					 DRV_ClrReg32(0xa0060064,(0xf << 8)); \
+					 DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0x8, 0x0);\
+					 DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0xC, 0x0);\
+					 DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0x1C, 0x0);\
+					 DRV_WriteReg32(0xa4c00000+0x8658, 0x0);\
+			   }else{\
+					 DRV_SetReg32(0xa0060064,(0xf << 8)); \
+					 DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0x8, 0xFFFFFFFF);\
+					 DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0xC, 0x7EF);\
+					 DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0x1C, 0x7E00000);\
+					 DRV_WriteReg32(0xa4c00000+0x8658, 0x2AAAA);\
+				  }\
+			  } while(0)
+				  
+#elif defined(MT6873) || defined(MT6853) || defined(MT6833)
+
+#define EMI_ARBE_2ND (volatile kal_uint32*)(0xC0219124)
+#define EMI_ARBD (volatile kal_uint32*)(0xC0219118)
+#define EMI_QOS_MDR_SHF0 (volatile kal_uint32*)(0xC0219D14)
+#define EMI_QOS_MDR_SHF1 (volatile kal_uint32*)(0xC0219D18)
+
+#define EMI_CH0_TESTB (volatile kal_uint32*)(0xC0235048)
+#define EMI_CH1_TESTB (volatile kal_uint32*)(0xC0245048)
+
+
+/***********************/
+
+#define EMI_TESTC (volatile kal_uint32*)(0xc02190f0)
+#define EMI_CONH_2ND (volatile kal_uint32*)(0xc021903c)
+#define EMI_BWLMTE_4TH (volatile kal_uint32*)(0xc0219920)
+#define EMI_BWLMTF_4TH (volatile kal_uint32*)(0xc0219924)
+
+#define EMI_BWLMTE_5TH (volatile kal_uint32*)(0xc0219930)
+#define EMI_BWLMTF_5TH (volatile kal_uint32*)(0xc0219934)
+#define EMI_BWLMTG_5TH (volatile kal_uint32*)(0xc0219938)
+
+#define EMI_BWLMTE (volatile kal_uint32*)(0xc02198A0)
+#define EMI_BWLMTF (volatile kal_uint32*)(0xc02198A4)
+
+#define EMI_BWLMTE_2ND (volatile kal_uint32*)(0xc02198E0)
+#define EMI_BWLMTF_2ND (volatile kal_uint32*)(0xc02198E4)
+#define EMI_BWLMTG_2ND (volatile kal_uint32*)(0xc02198E8)
+
+#define EMI_MDCT (volatile kal_uint32*)(0xc0219078)
+
+#define EMI_THRO_PRD2 (volatile kal_uint32*)(0xC021985C)
+
+#define EMI_QOS_MDR_BE0A (volatile kal_uint32*)(0xC0219D04)
+#define EMI_QOS_MDR_BE0B (volatile kal_uint32*)(0xC0219D08)
+#define EMI_QOS_MDR_BE1A (volatile kal_uint32*)(0xC0219D0C)
+#define EMI_QOS_MDR_BE1B (volatile kal_uint32*)(0xC0219D10)
+
+#define EMI_QOS_MDW_BE0A (volatile kal_uint32*)(0xC0219D1C)
+#define EMI_QOS_MDW_BE0B (volatile kal_uint32*)(0xC0219D20)
+#define EMI_QOS_MDW_BE1A (volatile kal_uint32*)(0xC0219D24)
+#define EMI_QOS_MDW_BE1B (volatile kal_uint32*)(0xC0219D28)
+
+#define EMI_QOS_MDHWR_BE0A (volatile kal_uint32*)(0xC0219D98)
+#define EMI_QOS_MDHWR_BE0B (volatile kal_uint32*)(0xC0219D9C)
+#define EMI_QOS_MDHWR_BE1A (volatile kal_uint32*)(0xC0219DA0)
+#define EMI_QOS_MDHWR_BE1B (volatile kal_uint32*)(0xC0219DA4)
+
+#define EMI_QOS_MDHWW_BE0A (volatile kal_uint32*)(0xC0219DAC)
+#define EMI_QOS_MDHWW_BE0B (volatile kal_uint32*)(0xC0219DB0)
+#define EMI_QOS_MDHWW_BE1A (volatile kal_uint32*)(0xC0219DB4)
+#define EMI_QOS_MDHWW_BE1B (volatile kal_uint32*)(0xC0219DB8)
+
+#define EMI_CONE (volatile kal_uint32*)(0xc0219020)
+
+#define CH0_EMI_CONC (volatile kal_uint32*)(0xC0235010)
+#define CH1_EMI_CONC (volatile kal_uint32*)(0xC0245010)
+
+#define EMI_QOS_CTRL1 (volatile kal_uint32*)(0xc0219DF4)
+
+#define EMI_QOS_MDW_SHF0 (volatile kal_uint32*)(0xc0219D2C)
+#define EMI_QOS_MDW_SHF1 (volatile kal_uint32*)(0xc0219D30)
+
+/***********************/
+#define EMI_FORCE_LATENCY(r, w) \
+			do {\
+				*EMI_TESTC |= 1<<19;\
+				*EMI_CONH_2ND |= 1<<9;\
+				*EMI_BWLMTE_4TH = 0xFFFFFFFF;\
+				*EMI_BWLMTF_4TH |= 0xFFFF;\
+				*EMI_BWLMTE_5TH = 0xFFFFFFFF;\
+				*EMI_BWLMTF_5TH = 0xFFFFFFFF;\
+				*EMI_BWLMTG_5TH = 0xFFFFFFFF;\
+				*EMI_BWLMTE = 0xFF00FFFF;\
+				*EMI_BWLMTF |= 0xFFFF;\
+				*EMI_BWLMTE_2ND = 0xFFFFFFFF;\
+				*EMI_BWLMTF_2ND = 0xFFFF0000;\
+				*EMI_BWLMTG_2ND = 0xFFFFFFFF;\
+				*EMI_ARBD |= 1<<13;\
+				*EMI_ARBD &= ~(1<<14);\
+				*EMI_MDCT &= ~((1<<1)|(1<<3));\
+				*EMI_THRO_PRD2 |= (7<<24) | (7<<28);\
+				\
+				*EMI_QOS_MDR_BE0A = 0;\
+				*EMI_QOS_MDR_BE0B = 0;\
+				*EMI_QOS_MDR_BE1A = 0;\
+				*EMI_QOS_MDR_BE1B = 0;\
+				*EMI_QOS_MDW_BE0A = 0;\
+				*EMI_QOS_MDW_BE0B = 0;\
+				*EMI_QOS_MDW_BE1A = 0;\
+				*EMI_QOS_MDW_BE1B = 0;\
+				\
+				*EMI_QOS_MDHWR_BE0A = 0;\
+				*EMI_QOS_MDHWR_BE0B = 0;\
+				*EMI_QOS_MDHWR_BE1A = 0;\
+				*EMI_QOS_MDHWR_BE1B = 0;\
+				*EMI_QOS_MDHWW_BE0A = 0;\
+				*EMI_QOS_MDHWW_BE0B = 0;\
+				*EMI_QOS_MDHWW_BE1A = 0;\
+				*EMI_QOS_MDHWW_BE1B = 0;\
+				\
+				*EMI_ARBD = (*EMI_ARBD&0x00FFFFFF) | (w<<24);\
+				*EMI_ARBE_2ND = (*EMI_ARBE_2ND&0x00FFFFFF) | (w<<24);\
+				\
+				*EMI_CONE |= 1 ;\
+				\
+				*CH0_EMI_CONC |= (1<<5) ;\
+				*CH1_EMI_CONC |= (1<<5) ;\
+				\
+				*EMI_QOS_CTRL1 &= ~((0x1<<11)|(0x1<<27));\
+				\
+				*EMI_QOS_MDW_SHF0 = (*EMI_QOS_MDW_SHF0&0xffffff00) | w;\
+				*EMI_QOS_MDW_SHF1 = (*EMI_QOS_MDW_SHF1&0xffffff00) | w;\
+				\
+				*EMI_ARBE_2ND = (*EMI_ARBE_2ND & 0xFF00FFFF) | (r<<16)  ;\
+		                *EMI_ARBD = (*EMI_ARBD & 0xFF00FFFF) | (r<<16)  ;\
+		                *EMI_QOS_MDR_SHF0 = (*EMI_QOS_MDR_SHF0 & 0xFFFF0000) | (r<<8) | (r);\
+		                *EMI_QOS_MDR_SHF1 = (*EMI_QOS_MDR_SHF1 & 0xFFFF0000) | (r<<8) | (r);\
+				\
+				*EMI_CH0_TESTB |= ((1<<6)|(1<<13)) ; \
+				*EMI_CH1_TESTB |= ((1<<6)|(1<<13)) ; \
+			} while (0)
+
+#define EMI_AGING_26M() \
+                        do {\
+                                *EMI_CONE &= ~(1<<0) ;\
+                                *CH0_EMI_CONC &= ~(1<<5) ;\
+                                *CH1_EMI_CONC &= ~(1<<5) ;\
+                        } while (0)
+
+		
+#define EMI_FORCE_DISABLE_DRAMC_WRITE_EARLY_RESPONSE() \
+			 do {\
+				*EMI_CH0_TESTB |= (1<<11) ; \
+				*EMI_CH1_TESTB |= (1<<11) ; \
+			 } while(0)
+				
+#define FORCE_MD_ULTRA(p) \
+			 do {\
+			   if(p==0){\
+					 DRV_ClrReg32(0xa0060064,(0xf << 8)); \
+					 DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0x8, 0x0);\
+					 DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0xC, 0x0);\
+					 DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0x1C, 0x0);\
+					 DRV_WriteReg32(0xa4c00000+0x8658, 0x0);\
+			   }else{\
+					 DRV_SetReg32(0xa0060064,(0xf << 8)); \
+					 DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0x8, 0xFFFFFFFF);\
+					 DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0xC, 0x7EF);\
+					 DRV_WriteReg32(BASE_MADDR_USIP_BUS_CONFIG___MPU_CONFIG+0x1C, 0x7E00000);\
+					 DRV_WriteReg32(0xa4c00000+0x8658, 0x2AAAA);\
+				  }\
+			  } while(0)
+						
+#else
+	#error "No support force emi latency on this project"
+#endif	
+
+#endif  //__FORCE_EMI_LATENCY_ENABLE__
+
+
+//for spv_service.c
+typedef struct _ELM_BW_LOG_T
+{
+	kal_uint32 m3_r_word_count;
+	kal_uint32 m3_w_word_count;
+	kal_uint32 m4_r_word_count;
+	kal_uint32 m4_w_word_count;
+} ELM_BW_LOG_T;
+
+typedef struct __SPVSVC_MON {
+	kal_uint32      apb_Reliable;
+	kal_uint32      apb_CurIsWorst;
+	kal_uint32      apb_Duration;
+	kal_uint32      apb_Avg_RLat;
+	kal_uint32      apb_Avg_WLat;
+	kal_uint32      apb_Worst_AvgRLat;
+	kal_uint32      apb_Worst_AvgWLat;
+	kal_uint32      apb_Total_RCnt;
+	kal_uint32      apb_Total_WCnt;
+	kal_uint32      apb_Dummy0;
+
+	kal_uint32		cm2_Reliable;
+	kal_uint32		cm2_CurIsWorst;
+	kal_uint32		cm2_Duration;
+	kal_uint32		cm2_Avg_UC_RW;
+	kal_uint32		cm2_Avg_L2Cache_RW;
+	kal_uint32		cm2_Worst_AvgUC_RW;
+	kal_uint32		cm2_Worst_AvgL2Cache_RW;
+	kal_uint32		cm2_Total_UC_RW;
+	kal_uint32		cm2_Total_L2Cache_RW;
+	kal_uint32		cm2_Dummy0;
+
+	//might use union?
+	kal_uint32		elm_Reliable;
+	kal_uint32		elm_CurIsWorst;
+	kal_uint32		elm_Duration;
+	kal_uint32		elm_Avg_RLat;
+	kal_uint32		elm_Avg_WLat;
+	kal_uint32		elm_Worst_AvgRLat;
+	kal_uint32		elm_Worst_AvgWLat;
+	kal_uint32		elm_Total_RCnt;
+	kal_uint32		elm_Total_WCnt;
+	kal_uint32		elm_Dummy0;
+
+} SPVSVC_MON;
+
+kal_bool SPVSVC_Monitor_Get(SPVSVC_MON *pCnts);
+extern kal_bool SPVSVC_Monitor_LogClear(void);
+
+#if defined(__BW_RUNTIME_PF__)
+
+#if defined(__MD95__) || defined(__MD97__) || defined(__MD97P__)
+#define __MD_ELM_TLW__
+#endif
+#define WRAP_MAX         0xFFFFFFFF
+#define DIFF_WRAP_TYPE(start, end)   (((end) >= (start))? (((end) - (start))): ((WRAP_MAX - (start) + (end) + 1)))
+
+#if defined(__MD_ELM_TLW__)
+
+typedef struct _ELM_PROFILING_LOG_T
+{
+	kal_uint32 m3_r_transaction;
+	kal_uint32 m3_r_word_count;
+	kal_uint32 m3_r_latency;
+	kal_uint32 m3_w_transaction;
+	kal_uint32 m3_w_word_count;
+	kal_uint32 m3_w_latency;
+	kal_uint32 m4_r_transaction;
+	kal_uint32 m4_r_word_count;
+	kal_uint32 m4_r_latency;
+	kal_uint32 m4_w_transaction;
+	kal_uint32 m4_w_word_count;
+	kal_uint32 m4_w_latency;
+#if defined(MT6297)
+	kal_uint32 m4b_r_transaction;
+	kal_uint32 m4b_r_word_count;
+	kal_uint32 m4b_r_latency;
+	kal_uint32 m4b_w_transaction;
+	kal_uint32 m4b_w_word_count;
+	kal_uint32 m4b_w_latency;
+#endif
+} ELM_PROFILING_LOG_T;
+
+#define ELM_GET_M3_BW_LOG(c, l) do { \
+                ELM_GET_WC_CNT(ELM_RD, (c), &((l).m3_r_word_count));\
+                ELM_GET_WC_CNT(ELM_WR, (c), &((l).m3_w_word_count));\
+            } while (0)
+    
+#define ELM_GET_M4_BW_LOG(c, l) do { \
+                ELM_INFRA_GET_WC_CNT(ELM_RD, (c), &((l).m4_r_word_count));\
+                ELM_INFRA_GET_WC_CNT(ELM_WR, (c), &((l).m4_w_word_count));\
+            } while (0)
+
+#define ELM_GET_M3_LATENCY_LOG(c, l) do { \
+                ELM_GET_CNT(ELM_RD, ELM_TYPE_TRANS, (c), &((l).m3_r_transaction));\
+                ELM_GET_CNT(ELM_RD, ELM_TYPE_LATENCY, (c), &((l).m3_r_latency));\
+                ELM_GET_CNT(ELM_WR, ELM_TYPE_TRANS, (c), &((l).m3_w_transaction));\
+                ELM_GET_CNT(ELM_WR, ELM_TYPE_LATENCY, (c), &((l).m3_w_latency));\
+            } while (0)
+    
+#define ELM_GET_M4_LATENCY_LOG(c, l) do { \
+                ELM_INFRA_GET_CNT(ELM_RD, ELM_TYPE_TRANS, (c), &((l).m4_r_transaction));\
+                ELM_INFRA_GET_CNT(ELM_RD, ELM_TYPE_LATENCY, (c), &((l).m4_r_latency));\
+                ELM_INFRA_GET_CNT(ELM_WR, ELM_TYPE_TRANS, (c), &((l).m4_w_transaction));\
+                ELM_INFRA_GET_CNT(ELM_WR, ELM_TYPE_LATENCY, (c), &((l).m4_w_latency));\
+            } while (0)
+
+#if defined(MT6297)
+#define ELM_GET_M4B_LATENCY_LOG(c, l) do { \
+                ELM_INFRA_B_GET_CNT(ELM_RD, ELM_TYPE_TRANS, (c), &((l).m4b_r_transaction));\
+                ELM_INFRA_B_GET_CNT(ELM_RD, ELM_TYPE_LATENCY, (c), &((l).m4b_r_latency));\
+                ELM_INFRA_B_GET_CNT(ELM_WR, ELM_TYPE_TRANS, (c), &((l).m4b_w_transaction));\
+                ELM_INFRA_B_GET_CNT(ELM_WR, ELM_TYPE_LATENCY, (c), &((l).m4b_w_latency));\
+            } while (0)
+#define ELM_GET_M4B_BW_LOG(c, l) do { \
+				ELM_INFRA_B_GET_WC_CNT(ELM_RD, (c), &((l).m4b_r_word_count));\
+				ELM_INFRA_B_GET_WC_CNT(ELM_WR, (c), &((l).m4b_w_word_count));\
+			} while (0)
+#endif
+
+#else
+
+typedef struct _ELM_PROFILING_LOG_T
+{
+	kal_uint32 m3_r_transaction;
+	kal_uint32 m3_r_word_count;
+	kal_uint32 m3_r_latency;
+	kal_uint32 m3_w_word_count;
+	kal_uint32 m4_r_transaction;
+	kal_uint32 m4_r_word_count;
+	kal_uint32 m4_r_latency;
+	kal_uint32 m4_w_word_count;
+} ELM_PROFILING_LOG_T;
+
+#define ELM_GET_M3_BW_LOG(c, l) do { \
+                ELM_GET_CNT(ELM_WR, ELM_TYPE_TRANS, (c), &((l).m3_r_word_count));\
+                ELM_GET_CNT(ELM_WR, ELM_TYPE_LATENCY, (c), &((l).m3_w_word_count));\
+            } while (0)
+    
+#define ELM_GET_M4_BW_LOG(c, l) do { \
+                ELM_INFRA_GET_CNT(ELM_WR, ELM_TYPE_TRANS, (c), &((l).m4_r_word_count));\
+                ELM_INFRA_GET_CNT(ELM_WR, ELM_TYPE_LATENCY, (c), &((l).m4_w_word_count));\
+            } while (0)
+
+#define ELM_GET_M3_LATENCY_LOG(c, l) do { \
+                ELM_GET_CNT(ELM_RD, ELM_TYPE_TRANS, (c), &((l).m3_r_transaction));\
+                ELM_GET_CNT(ELM_RD, ELM_TYPE_LATENCY, (c), &((l).m3_r_latency));\
+            } while (0)
+    
+#define ELM_GET_M4_LATENCY_LOG(c, l) do { \
+                ELM_INFRA_GET_CNT(ELM_RD, ELM_TYPE_TRANS, (c), &((l).m4_r_transaction));\
+                ELM_INFRA_GET_CNT(ELM_RD, ELM_TYPE_LATENCY, (c), &((l).m4_r_latency));\
+            } while (0)
+
+#endif  /* __MD_ELM_TLW__ */
+
+
+kal_bool SPVSVC_BW_PF(kal_uint32 core_id);
+void SPVSVC_BW_Max_Print(void);
+void SPVSVC_BW_Max_Clear(void);
+void SPVSVC_BW_Threshold_Print(void);
+
+extern volatile kal_uint32 RECORD_AP_DVFSRC;
+extern volatile kal_uint32 BW_index;
+extern kal_uint32 BW_Cor_Duration[] ;
+extern kal_uint32 BW_Cor_Duration_Low[] ;
+extern kal_uint32 BW_Cor_Duration_High[] ;
+
+extern volatile kal_uint32 BW_Cor_Duration_core[] ;
+
+extern volatile kal_uint32 BW_Cor_Enable;
+
+extern volatile kal_uint32 BW_M3_Worst_core[];
+extern volatile kal_uint32 BW_M3_Worst_Dur_core[];
+extern volatile kal_uint32 BW_M4_Worst_core[] ;
+extern volatile kal_uint32 BW_M4_Worst_Dur_core[];
+extern volatile kal_uint32 BW_M3M4_Worst_core[];
+extern volatile kal_uint32 BW_M3M4_Worst_Dur_core[];
+
+
+extern volatile kal_uint32 BW_Dur_Low_core[] ;
+extern volatile kal_uint32 BW_Dur_High_core[];
+
+extern volatile kal_uint32 BW_Cor_Raw_Data_Print_Enable;
+
+extern volatile kal_uint32 BW_Transaction_Low_core[];
+
+extern volatile kal_uint32 BW_M3_Assertion_core[];
+extern volatile kal_uint32 BW_M4_Assertion_core[];
+extern volatile kal_uint32 BW_M3M4_Assertion_core[];
+extern volatile kal_uint32 Latency_M3_Read_Assertion_core[];
+extern volatile kal_uint32 Latency_M4_Read_Assertion_core[];
+#if defined(__MD_ELM_TLW__)
+extern volatile kal_uint32 Latency_M3_Write_Assertion_core[];
+extern volatile kal_uint32 Latency_M4_Write_Assertion_core[];
+#endif
+
+extern void SPV_IdleTask0( task_entry_struct * task_entry_ptr );
+extern void SPV_IdleTask1( task_entry_struct * task_entry_ptr );
+extern void SPV_IdleTask2( task_entry_struct * task_entry_ptr );
+extern void SPV_IdleTask3( task_entry_struct * task_entry_ptr );
+
+#endif /* defined(__BW_RUNTIME_PF__) */
+
+#if 0   // official load profiling
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+void SSS_PF_INIT(void);
+void SSS_CORE_PMU_PF_WriteRecord(kal_uint32 flag);
+void SSS_CORE_PMU_PF_START(void);
+void SSS_CORE_PMU_PF_END(void);
+#if defined(__SPV_SSS_PF__)
+#if defined(__SPV_SSS_CORE_PMU_PF__)
+    #if defined(__MIPS16__)
+        #if defined(__GNUC__)
+            #define SSS_MIPS32_ISA __attribute__((nomips16)) 
+        #endif
+    #endif
+
+#ifndef SSS_MIPS32_ISA
+#define SSS_MIPS32_ISA
+#endif
+
+#define SSS_MIPS32_INLINE INLINE SSS_MIPS32_ISA
+#define STATIC_INLINE \
+    __attribute__((always_inline)) SSS_MIPS32_ISA static
+ 
+#if defined(__MD95__)
+#define MAX_CORE_PMU_NUM_PER_VPE        8       // 2 pmu counters per TC, 4 TCs per-core => 2*4 = 8
+#elif defined(__MD97__) || defined(__MD97P__)
+#define MAX_CORE_PMU_NUM_PER_VPE        12      // 4 pmu counters per VPE, 3 VPEs per-core => 4*3 = 12
+#endif
+
+typedef struct {
+    kal_int32  core_pmu_enable_return_state;
+    kal_int32  core_pmu_disable_return_state;
+    kal_int32  core_pmu_dump_return_state;
+    kal_uint32 frc_start;
+    kal_uint32 frc_end;
+    kal_uint32 cpu_cycle_start;
+    kal_uint32 core_pmu[MAX_CORE_PMU_NUM_PER_VPE];
+    kal_uint32 cpu_cycle_end;
+} SSS_CORE_PMU_PF_RECORD;
+
+#endif /* __SPV_SSS_CORE_PMU_PF__ */
+#endif /* __SPV_SSS_PF__ */
+
+#endif	//__SPV_API_H_
+
diff --git a/mcu/service/sst/include/spv_service.h b/mcu/service/sst/include/spv_service.h
new file mode 100644
index 0000000..ce3e1a4
--- /dev/null
+++ b/mcu/service/sst/include/spv_service.h
@@ -0,0 +1,23 @@
+#ifndef __SPV_SERVICE_H__
+#define __SPV_SERVICE_H__
+
+#define SPV_MEM_DEBUG_RECORD_NUM 16
+#define SPV_MEM_DEBUG_PROFILE_THRESHOLD 32*1024
+
+#if !defined(__MAUI_BASIC__)
+#define __SPV_MPB_MEMSET_MEMCPY_M3_BW_CORRELATION__
+#endif
+
+#if defined(__SPV_MPB_MEMSET_MEMCPY_M3_BW_CORRELATION__)
+#define SPV_MPB_MEMSET_MEMCPY_M3_BW_CORRELATION_WINDOW 1000
+void spv_mpb_m3_bw_warn_cb(kal_uint32 frc, kal_uint32 window, kal_uint32 bw);
+#endif
+
+typedef struct mem_debug {
+    kal_uint32 retaddr;
+    kal_uint32 size;
+    kal_uint32 start_frc;
+    kal_uint32 end_frc;
+} mem_debug_t;
+
+#endif
diff --git a/mcu/service/sst/include/sst_defs.h b/mcu/service/sst/include/sst_defs.h
new file mode 100644
index 0000000..22464e6
--- /dev/null
+++ b/mcu/service/sst/include/sst_defs.h
@@ -0,0 +1,30 @@
+#ifndef _SST_DEFS_H
+#define _SST_DEFS_H
+
+#include "reg_base.h"
+#include <ex_mem_manager.h>
+
+#define EX_STACK_SIZE (8*1024)
+#define EX_DOR_EXCP_AREA_SIZE_PER_VPE (4*8) /*sizeof(EX_CPU_MIN_REG_T)*/
+
+
+#if defined(BASE_MADDR_PCCIF0_MD)
+#define BASE_MADDR_CCIF0_MD_REG_BASE BASE_MADDR_PCCIF0_MD
+#elif defined(BASE_MADDR_CCIF0_MD)
+#define BASE_MADDR_CCIF0_MD_REG_BASE BASE_MADDR_CCIF0_MD
+#else
+//TO FIX: #error "no ccif base define!!"  __MD97__
+#define BASE_MADDR_CCIF0_MD_REG_BASE 0x0
+#endif
+
+//information from ccif owner: 0x100-> CCIF SRAM offset, 512-> SRAM size, 72-> last 72 bytes reserved for bootup trace
+#define MDCCIF_BOOTTRC_DATA (BASE_MADDR_CCIF0_MD_REG_BASE + 0x100 + 512 - 72) 
+
+#define g_EMM_MAIN_BUFF_MAGIC_ADDR      (MDCCIF_BOOTTRC_DATA + 0x4*15)
+#define g_EMM_MAIN_BUFF_MAGIC 0x7274626E
+
+#define g_EMM_MAIN_BUFF_ADDR_PTR        (MDCCIF_BOOTTRC_DATA + 0x4*16)
+#define g_EMM_MAIN_BUFF_SIZE_PTR        (MDCCIF_BOOTTRC_DATA + 0x4*17)
+
+#define HS1_BOOT_TRACE_OFFSET EMM_EXRECORD_LEN
+#endif /* _SST_DEFS_H */
diff --git a/mcu/service/sst/include/sw_version.h b/mcu/service/sst/include/sw_version.h
new file mode 100644
index 0000000..4a5b2b6
--- /dev/null
+++ b/mcu/service/sst/include/sw_version.h
@@ -0,0 +1,8 @@
+#ifndef __SW_VERSION_H__
+#define __SW_VERSION_H__
+
+#include "sw_version_def_public.h"
+void ss_3gpp_sw_version_init(void);
+SW_VERSION_DEF_ENUM sw_version_query(void);
+
+#endif
diff --git a/mcu/service/sst/include/swtr.h b/mcu/service/sst/include/swtr.h
new file mode 100644
index 0000000..8942119
--- /dev/null
+++ b/mcu/service/sst/include/swtr.h
@@ -0,0 +1,197 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   swtr.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef SWTR_H
+#define SWTR_H
+
+#include "kal_public_api.h"
+#include "system_profiler_public.h"
+
+
+
+typedef struct ST_AddonInfo_T
+{   
+    SYSPROFILER_ADDON_TYPE addonType;
+    kal_uint32 log_sz;
+    kal_char ext_name[12];
+    void (*ST_AddonInfoInitFunc)(void);
+    kal_bool ST_SwapOutLogging;
+    kal_uint8 *(*ST_AddonInfoLoggingFunc)(void);
+} ST_AddonInfo;
+
+/* Type Definition */
+typedef struct ST_LoggingNode_T
+{
+   kal_uint32   jobID;
+   kal_uint32   USCNT;
+   kal_uint32   CoreIDTCID;
+   kal_uint32   PC;
+} ST_LoggingNode;
+
+extern kal_uint8* ST_memory[];
+extern kal_uint32 ST_MALMO_ASM_ChangeContextID(kal_uint8);
+
+#define ST_Current_IsRunning() ST_IsRunning(kal_get_current_core_id())
+#define SWTR_IS_RUNNING(coreID) ( ST_memory[coreID] != NULL )
+
+
+INLINE INLINE_ALWAYS static kal_bool ST_IsRunning(kal_uint8 coreID)
+{
+    return SWTR_IS_RUNNING(coreID);
+}
+
+
+#if defined(__SYSTEM_PROFILER_ON__)
+SYSPROFILER_ADDON_TYPE ST_MALMO_ASM_Register( SYSPROFILER_ADDON_TYPE addonType, kal_uint8 coreID);
+#endif
+kal_bool ST_IsRunning(kal_uint8 coreID);
+SYSPROFILER_ERROR_CODE ST_Register_for_Core(SYSPROFILER_ADDON_TYPE addonType, kal_uint32 addonSize, kal_char addonName[], void (*ST_AddonInfoInitFunc)(void), kal_uint8* (*ST_AddonInfoLoggingFunc)(void), kal_bool ST_SwapOutLogging, kal_uint8 coreID) ;
+SYSPROFILER_ERROR_CODE ST_RetreiveLoggingBuffer(kal_uint8 **startAddr, kal_uint32 *size, kal_uint8 **currPtr, kal_uint8 coreID) ;
+SYSPROFILER_ERROR_CODE ST_RetrieveHeader(kal_uint8 **MADesc, kal_uint32 *szMADesc, kal_uint8 coreID) ;
+SYSPROFILER_ERROR_CODE ST_init_and_running_for_Core( kal_uint32 samplingRate, kal_uint32* bufferStartAddress, kal_uint32 bufferSize, kal_uint8 coreID);
+SYSPROFILER_ERROR_CODE ST_stop_for_Core(kal_uint8 coreID);
+
+#endif   /* SWTR_H */
+
diff --git a/mcu/service/sst/include/us_excep_hdlr.h b/mcu/service/sst/include/us_excep_hdlr.h
new file mode 100644
index 0000000..01be875
--- /dev/null
+++ b/mcu/service/sst/include/us_excep_hdlr.h
@@ -0,0 +1,157 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   us_excep_hdlr.h
+ *
+ * Project:
+ * --------
+ *   UMOLYA
+ *
+ * Description:
+ * ------------
+ *   This file provides typedefs and definiton for PS index trace.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+ 
+#ifndef __US_EXCEP_HDLR_H__
+#define __US_EXCEP_HDLR_H__
+
+#include "usip_ex_common_def.h"
+#include "scq16_ex_common_def.h"
+#include "us_excep_hdlr_format.h"
+
+#include "kal_general_types.h"
+#include "ex_public.h"
+/*******************************************************************************
+ * Definition 
+ *******************************************************************************/
+#define USIP_SCQ16_EX_SYNC_TIMEOUT  2000000 /* 2s, only for VRF. USIP,SCQ16: Please use EX_US_SYNC_TIME in cc_ex_item.h */
+#define USIP_SCQ16_EX_INIT_PATTERN  0x62935566
+#define USIP_SCQ16_SECTION_BUFFER_SIZE  256
+#if defined(MT6763) || defined(MT6739) || defined(MT6771) || defined(MT6765)
+    #define USIP0_APB_BASE                    0xA0084000
+    #define USIP1_APB_BASE                    0xA0085000
+    #define USIP_APB_DBG_EN_OFFSET            0x0
+    #define USIP_APB_MODE_SEL_OFFSET          0x4
+    #define USIP_APB_DBG_INST_OFFSET          0x10
+    #define USIP_APB_DBG_EXECUTE_OFFSET       0x14
+    #define USIP_APB_DBG_WRITE_ADDR_OFFSET    0x18
+    #define USIP_APB_DBG_WRITE_OFFSET         0x1c
+    #define USIP_APB_DBG_STATUS_OFFSET        0x20
+
+    #define USIP_APB_DBG_ATTACH_INST          0x900
+    #define USIP_APB_DBG_REQ_INST             0x811
+    #define USIP_APB_DBG_STATUS_INST          0x803
+    #define USIP_APB_DBG_ADDR_INST            0x801
+    #define USIP_APB_DBG_PM_LOAD_INST         0x840
+    #define USIP_APB_DBG_INSTR_INST           0x802
+    #define USIP_APB_DBG_RESUME_INST          0x812
+
+    #define USIP_CACHE_ALIGN                  0x20
+
+#endif 
+
+typedef enum
+{
+    EX_STATUS_USIP0_0,
+    EX_STATUS_USIP0_1,
+    EX_STATUS_USIP1_0,
+    EX_STATUS_USIP1_1,
+    EX_STATUS_SCQ16_0,
+    EX_STATUS_SCQ16_1,
+#if !defined(__MD97_IS_2CORES__)
+/* H3 FPGA doesn't have scq16_2 and scq16_3 */
+    EX_STATUS_SCQ16_2,
+    EX_STATUS_SCQ16_3,
+#endif
+    EX_STATUS_USIP_SCQ16_CORE_NUM,
+    EX_STATUS_USIP_SCQ16_CORE_END = 0x6293beef
+} USIP_SCQ16_EX_STATUS_CORE_TYPE;
+
+
+typedef enum
+{
+	USIP0_0_FAIL_BIT_MASK = (1<<0),
+	USIP0_1_FAIL_BIT_MASK = (1<<1),
+	USIP1_0_FAIL_BIT_MASK = (1<<2),
+	USIP1_1_FAIL_BIT_MASK = (1<<3),
+	SCQ0_FAIL_BIT_MASK = (1<<4),
+	SCQ1_FAIL_BIT_MASK = (1<<5),
+	SCQ2_FAIL_BIT_MASK = (1<<6),
+	SCQ3_FAIL_BIT_MASK = (1<<7),
+} USIP_SCQ16_EX_CORE_BIT_MASK_TYPE;
+
+// ----------------- function declaration -------------------
+
+extern kal_bool INT_SyncUsipScqExceptionInfo(void);
+
+extern void INT_GetUsipScqExceptionRecord(USIP_SCQ_EXCEPTION_RECORD_T *record);
+
+extern kal_uint32 INT_GetUsipScqFailCore(void); //0~3: Usip, 4~5: Scq
+
+extern void INT_DumpUsipScqExceptionInfo(EX_TRACE_TYPE trace_type/*0=cadefa*/, kal_char* sys_info_str, kal_uint32 len);
+
+extern kal_char* INT_GetUsipScqCoreName(kal_uint32 core_index); //0~3: Usip, 4~5: Scq
+
+extern kal_uint32 INT_GetUsipScqFailCoreIndex(void);
+
+extern void INT_GetUsipScq16ExceptionHandshakeInit(void);
+
+extern void INT_GetUsipScq16BBMemoryInfo(void);
+
+extern void INT_GetUsip0DumpMemoryInfo(kal_uint32 **info, kal_uint32 *count, kal_uint8* region_config);
+extern void INT_GetUsip1DumpMemoryInfo(kal_uint32 **info, kal_uint32 *count, kal_uint8* region_config);
+extern void INT_GetScq160DumpMemoryInfo(kal_uint32 **info, kal_uint32 *count, kal_uint8* region_config);
+extern void INT_GetScq161DumpMemoryInfo(kal_uint32 **info, kal_uint32 *count, kal_uint8* region_config);
+extern void INT_GetScq162DumpMemoryInfo(kal_uint32 **info, kal_uint32 *count, kal_uint8* region_config);
+extern void INT_GetScq163DumpMemoryInfo(kal_uint32 **info, kal_uint32 *count, kal_uint8* region_config);
+extern void INT_GetVrfDumpMemoryInfo(kal_uint32 **info, kal_uint32 *count, kal_uint8* region_config);
+
+#endif /* __US_EXCEP_HDLR_H__ */
diff --git a/mcu/service/sst/include/us_excep_hdlr_format.h b/mcu/service/sst/include/us_excep_hdlr_format.h
new file mode 100644
index 0000000..3593ed0
--- /dev/null
+++ b/mcu/service/sst/include/us_excep_hdlr_format.h
@@ -0,0 +1,153 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   usip_excep_hdlr_format.h
+ *
+ * Project:
+ * --------
+ *   UMOLYA
+ *
+ * Description:
+ * ------------
+ *   This file provides typedefs and definiton for .
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef __USIP_EXCEP_HDLR_FORMAT_H__
+#define __USIP_EXCEP_HDLR_FORMAT_H__
+
+// ----------------- macro definition ---------------
+//SCQ16_MAX_NUM is defined in usip_ex_common_def.h so it could not be referenced by REL_SUB_L4
+#if defined(__MD97__) || defined(__MD97P__)
+#define SCQ16_MAXIMUM_NUM           (4) //this is a maximum core number of SCQ16. unique value per generation
+#else
+#define SCQ16_MAXIMUM_NUM           (2)
+#endif
+#define USIP_CORE_NUMBER            (2)
+#define USIP_THREAD_NUMBER          (2)
+#define USIP_TOTAL_THREAD_NUMBER    (USIP_CORE_NUMBER * USIP_THREAD_NUMBER)
+#if defined(__MD95__)
+#define SCQ16_CORE_NUMBER           (2)
+#elif defined(__MD97__) || defined(__MD97P__)
+#define SCQ16_CORE_NUMBER           (4)
+#endif
+#define USIP_SCQ16_TOTAL_THREAD_NUM (USIP_TOTAL_THREAD_NUMBER+SCQ16_CORE_NUMBER)
+// ----------------- data type Definition -------------------
+typedef enum {
+  USIP_SCQ16_EXCEPTION_ASSERTION = 0x45584300,
+  USIP_SCQ16_EXCEPTION_FATAL_ERROR,
+  USIP_SCQ16_EXCEPTION_CTI_EVENT,
+  USIP_SCQ16_EXCEPTION_UNKNOWN
+} USIP_SCQ16_EXCEPTION_TYPE_T;
+
+#if defined(__GNUC__)
+typedef struct __attribute__((packed)) {
+#else
+#pragma pack(1)
+typedef struct {
+#endif // __GNUC__
+  unsigned int line_num;
+  unsigned int para1;
+  unsigned int para2;
+  unsigned int para3;
+  char* filepath_ptr;
+  unsigned char file_name[64];
+} ASSERTION_INFO_T;
+#if !defined(__GNUC__)
+#pragma pack()
+#endif // __GNUC__
+
+#if defined(__GNUC__)
+typedef struct __attribute__((packed)) {
+#else
+#pragma pack(1)
+typedef struct {
+#endif // __GNUC__
+  unsigned int error_status;
+  unsigned int error_pc;
+  unsigned int error_lr;
+  unsigned int error_address;
+  unsigned int error_code1;
+  unsigned int error_code2;
+  unsigned char error_section;
+} FATAL_ERROR_INFO_T;
+#if !defined(__GNUC__)
+#pragma pack()
+#endif // __GNUC__
+
+#if defined(__GNUC__)
+typedef struct __attribute__((packed)) {
+#else
+#pragma pack(1)
+typedef struct {
+#endif
+#if !defined(_MSC_VER)
+  USIP_SCQ16_EXCEPTION_TYPE_T except_type;
+#else
+  kal_uint8 except_type;
+#endif
+  unsigned int except_stat;
+  union {
+    ASSERTION_INFO_T   assert;
+    FATAL_ERROR_INFO_T fatal;
+  }except_content;
+} USIP_SCQ_EXCEPTION_INFO_T;
+#if !defined(__GNUC__)
+#pragma pack()
+#endif // __GNUC__
+
+typedef struct {
+    unsigned int              core_num;
+    USIP_SCQ_EXCEPTION_INFO_T core_error[USIP_SCQ16_TOTAL_THREAD_NUM];
+} USIP_SCQ_EXCEPTION_RECORD_T;
+
+
+#endif /* __USIP_EXCEP_HDLR_FORMAT_H__ */
+
diff --git a/mcu/service/sst/include/us_trc.h b/mcu/service/sst/include/us_trc.h
new file mode 100644
index 0000000..f034c1f
--- /dev/null
+++ b/mcu/service/sst/include/us_trc.h
@@ -0,0 +1,136 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   us_trc.h
+ *
+ * Project:
+ * --------
+ *   UMOLYA_Software
+ *
+ * Description:
+ * ------------
+ *   This file contains definitions for trace on target.
+ *
+ *
+ * Author:
+ * -------
+ *   
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef _US_TRC_H
+#define _US_TRC_H  
+
+    TRC_MSG(USIP_SCQ16_EX_LOG_ASSERT, "[%s(%s)] Assert fail: %s - %d 0x%x 0x%x 0x%x")
+    TRC_MSG(USIP_SCQ16_EX_LOG_FATAL_ERROR, "[%s(%s)] Fatal error: code1 0x%x, code2 0x%x, sp 0x%x, lr 0x%x, lisr level %d")
+    TRC_MSG(USIP_SCQ16_EX_LOG_CTI, "[%s(%s)] Cross Trigger by other core")
+    TRC_MSG(USIP_SCQ16_EX_LOG_UNKNOWN, "[%s(%s)] Unknown exception")
+    
+    TRC_MSG(USIP_SCQ16_EX_LOG_BYPASS_DUMP_INFO, "[%s] status 0x%x")
+    
+    TRC_MSG(USIP_SCQ16_EX_LOG_SYNCED_MASK, "USIP/SCQ16 sync mask 0x%x")
+	
+	TRC_MSG(USIP_SCQ16_COMMON_DOWNLOAD_NOT_DONE_INFO, "[%s] first boot common part not yet download done...")
+	TRC_MSG(USIP_SCQ16_COMMON_DOWNLOAD_DONE_INFO, "[%s] first boot common part download done...")
+	TRC_MSG(USIP_SCQ16_DDL_DOWNLOAD_NOT_DONE_INFO, "[%s] first boot ddl part not yet download done...")
+	TRC_MSG(USIP_SCQ16_DDL_DOWNLOAD_DONE_INFO, "[%s] first boot ddl part download done...")
+    TRC_MSG(USIP_SCQ16_FEC_TX_DDL_START, "[DDL][FEC_TX-START] idx: 0x%X, time: 0x%X, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X")
+    TRC_MSG(USIP_SCQ16_FEC_RX_DDL_START, "[DDL][FEC_RX-START] idx: 0x%X, time: 0x%X, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X")
+    TRC_MSG(USIP_SCQ16_BRP_DDL_START, "[DDL][BRP-START] idx: 0x%X, time: 0x%X, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X")
+    TRC_MSG(USIP_SCQ16_SCQ16_DDL_START, "[DDL][SCQ16-START] idx: 0x%X, time: 0x%X, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X")
+    TRC_MSG(USIP_SCQ16_INNER_DDL_START, "[DDL][L2TCM-START] idx: 0x%X, time: 0x%X, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X")
+    TRC_MSG(USIP_SCQ16_RAKE_DDL_START, "[DDL][RAKE-START] idx: 0x%X, time: 0x%X, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X")
+
+    TRC_MSG(USIP_SCQ16_SCQ16_DDL_START_GDMA, "[DDL][SCQ16-TRIG_GDMA] idx: 0x%X, time: 0x%X, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X, len: 0x%X")
+    TRC_MSG(USIP_SCQ16_RAKE_DDL_START_GDMA, "[DDL][RAKE-TRIG_GDMA] iA start gdma for rake ddl, idx: 0x%X, time: 0x%X, bin_mode: 0x%X, len: 0x%X")
+
+    TRC_MSG(USIP_SCQ16_SET_INNER_DDL_PROTECT_DONE, "[DDL][L2TCM-Done] idx: 0x%X, time: 0x%X")
+    TRC_MSG(USIP_SCQ16_RAKE_DDL_DONE, "[DDL][RAKE-Done] idx: 0x%X, time: 0x%X, bin_mode: 0x%X")
+    TRC_MSG(USIP_SCQ16_GDMA_DONE, "[DDL][SCQ16-GDMA-Done] idx: 0x%X, time: 0x%X, bin_mode: 0x%X")
+	
+    TRC_MSG(USIP_SCQ16_RAKE_DDL_LAST_MODE_IS_LTE, "[DDL][RAKE] last mode is lte, caller 0x%X, user_id: 0x%X, bin_mode: 0x%X, status: 0x%X")
+    TRC_MSG(USIP_SCQ16_TRIG_CLR_INNER_DDL_PROTECT, "[DDL][L2TCM] iA trigger to clear inner ddl protection, caller: 0x%X")
+    TRC_MSG(USIP_SCQ16_CLR_INNER_DDL_PROTECT_DONE, "[DDL][L2TCM] clear inner ddl protection done, re_call_rake_ddl_user: 0x%X, re_call_rake_ddl_mode:0x%X")
+    TRC_MSG(USIP_SCQ16_SEND_INT_TO_INNER_CLR_DDL_PROTECT, "[DDL][L2TCM] iA send interrupt to usip-inner to clear inner ddl protection,caller: 0x%X, user_id: 0x%X, bin_mode: 0x%X, status: 0x%X")
+    TRC_MSG(USIP_SCQ16_SEND_INT_TO_INNER_TO_SET_DDL_PROTECT, "[DDL][L2TCM] iA send interrupt to usip-inner to set inner ddl protection, idx: 0x%X, time: 0x%X, bin_mode: 0x%X")
+    TRC_MSG(USIP_SCQ16_DSP_GDMA_CB, "[DDL] DSPGDMA_CB gdma done, gdma_who_use: 0x%X, gdma_who_wait:0x%X")
+
+	TRC_MSG(USIP_SCQ16_DDL_STATUS_BIN_MODE_INFO, "[DDL][%s] ddl_status: 0x%X, ddl_bin_mode: 0x%X")
+
+    TRC_MSG(USIP_SCQ16_EX_REPORT_VU_STATUS, "[USIP(%s)] SCQ16_%d VU status, status %s")
+
+	TRC_MSG(DSP_SLEEP_FLOW_ACTIVATE, "[DSP]DSP activate, thread %d, user %d, status 0x%x")
+	TRC_MSG(DSP_SLEEP_FLOW_DEACTIVATE, "[DSP]DSP deactivate, thread %d, user %d, status 0x%x")
+	TRC_MSG(DSP_SLEEP_FLOW_ACTIVATE_END, "[DSP]DSP activate end, return %d, thread %d, user %d, status 0x%x")
+	TRC_MSG(DSP_SLEEP_FLOW_DEACTIVATE_END, "[DSP]DSP deactivate end, return %d, thread %d, user %d, status 0x%x")
+#endif //_US_TRC_H
+
diff --git a/mcu/service/sst/include/vc_excep_hdlr.h b/mcu/service/sst/include/vc_excep_hdlr.h
new file mode 100644
index 0000000..a7abdcf
--- /dev/null
+++ b/mcu/service/sst/include/vc_excep_hdlr.h
@@ -0,0 +1,94 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   vc_excep_hdlr.h
+ *
+ * Project:
+ * --------
+ *   UMOLY
+ *
+ * Description:
+ * ------------
+ *   The extern exception functions for VoLTE core Linux
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ * removed!
+ * removed!
+ * removed!
+ *
+ ****************************************************************************/
+ 
+#ifndef __VC_EXCEP_HDLR_H__
+#define __VC_EXCEP_HDLR_H__
+
+#include "kal_general_types.h"
+#include "vc_excep_hdlr_format.h"
+
+//------------------------------------------------------------------
+//
+// macros
+//
+// the synchronization time, 3 seconds
+#define VC_EXCEPTION_SYNC_TIME (3 * 1000 * 1000)
+//------------------------------------------------------------------
+
+
+//------------------------------------------------------------------
+//
+// extern functions
+//
+/* sync function */
+extern kal_bool INT_SyncVCExceptionInfo(void);
+/* get exception record */
+extern void INT_GetVCExceptionRecord(VC_EXCEPTION_RECORD_T *record);
+/* dump exception info */
+extern void INT_DumpVCExceptionInfo(kal_uint32 trace_type /*0=cadefa*/, kal_char* sys_info_str, kal_uint32 len);
+//------------------------------------------------------------------
+
+#endif /* __VCC_EXCEP_HDLR_H__ */
diff --git a/mcu/service/sst/include/vc_excep_hdlr_format.h b/mcu/service/sst/include/vc_excep_hdlr_format.h
new file mode 100644
index 0000000..f97e009
--- /dev/null
+++ b/mcu/service/sst/include/vc_excep_hdlr_format.h
@@ -0,0 +1,143 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   vc_excep_hdlr.h
+ *
+ * Project:
+ * --------
+ *   UMOLY
+ *
+ * Description:
+ * ------------
+ *   The format of exception record for VoLTE core Linux.
+ *   It will be copied from Bach.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+ 
+#ifndef __VC_EXCEP_HDLR_FORMAT_H__
+#define __VC_EXCEP_HDLR_FORMAT_H__
+
+//------------------------------------------------------------------
+//
+// macros
+//
+#define VC_EXCEPTION_RECORD_T duos_excp_rec_t
+
+//------------------------------------------------------------------
+//
+// enums
+//
+enum {
+    VC_EX_STATUS_INIT = 0,
+    VC_EX_STATUS_INIT_DONE,
+    VC_EX_STATUS_TRIGGER_CTI,
+    VC_EX_STATUS_SAVE_EX_INFO,
+    VC_EX_STATUS_SAVE_EX_DONE,
+    VC_EX_STATUS_SAVE_SW_VERSION,
+    VC_EX_STATUS_SAVE_SW_VERSION_DONE,
+    VC_EX_STATUS_CACHE_FLUSH,
+    VC_EX_STATUS_CACHE_FLUSH_DONE,
+    VC_EX_STATUS_READY,
+    VC_EX_STATUS_END,
+};
+
+enum {
+    VC_EX_REASON_ECT = 1,
+    VC_EX_REASON_NMI,
+    VC_EX_REASON_BUG,
+    VC_EX_REASON_BUG_ON,
+    VC_EX_REASON_DIE_KERNEL,
+    VC_EX_REASON_PANIC,
+    VC_EX_REASON_END,
+};
+//------------------------------------------------------------------
+
+
+//------------------------------------------------------------------
+//
+// structures
+//
+// error table
+typedef struct{
+    unsigned int err_code;
+    const char   *err_msg;
+} duos_linux_err_tab_t;
+
+// assert table
+typedef struct{
+    unsigned int  line_num;
+    unsigned int  para1;
+    unsigned int  para2;
+    unsigned int  para3;
+    char          file_name[64];
+}duos_excp_assert_tlb;
+
+// fatal table
+typedef struct{
+    unsigned int error_status;
+    unsigned int error_pc;
+    unsigned int error_lr;
+    unsigned int error_address;
+    unsigned int error_code1;
+    unsigned int error_code2;
+}duos_excp_fatal_tlb;
+
+// exception record
+typedef struct{
+    unsigned int except_type;
+    unsigned int except_stat;
+	union{
+		duos_excp_assert_tlb assert;
+		duos_excp_fatal_tlb  fatal;
+	} except_content;
+}duos_excp_rec_t;
+//------------------------------------------------------------------
+
+#endif /* __VC_EXCEP_HDLR_FORMAT_H__ */
diff --git a/mcu/service/sst/include/vc_trc.h b/mcu/service/sst/include/vc_trc.h
new file mode 100644
index 0000000..857a72b
--- /dev/null
+++ b/mcu/service/sst/include/vc_trc.h
@@ -0,0 +1,78 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   vc_trc.h
+ *
+ * Project:
+ * --------
+ *   UMOLY_Software
+ *
+ * Description:
+ * ------------
+ *   This file contains definitions for trace on target (VoLTE core Linux).
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ ****************************************************************************/
+#ifndef __VC_TRC_H__
+#define __VC_TRC_H__
+
+	TRC_MSG(VC_EX_LOG_ASSERT, "[VC] %s fail: %s -%d 0x%x, 0x%x, 0x%x")
+	TRC_MSG(VC_EX_LOG_FATAL, "[VC] %s fail: stat 0x%x, pc 0x%x, lr 0x%x, addr 0x%x, 0x%x, 0x%x")
+
+#endif /* __VC_TRC_H__ */
+
