[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6

MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF  modem version: NA

Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/driver/drv/include/BC_drv.h b/mcu/driver/drv/include/BC_drv.h
new file mode 100644
index 0000000..3fe7047
--- /dev/null
+++ b/mcu/driver/drv/include/BC_drv.h
@@ -0,0 +1,98 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *    BC_drv.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   Driver 0f Bit Copy.
+ *
+ * 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 __BC_DRV_H__
+#define __BC_DRV_H__
+
+#include "kal_public_api.h" //MSBB change #include "kal_release.h"
+#include "drv_comm.h"
+#include "reg_base.h"
+#include "drv_features.h"
+
+#if defined (__3G_F8F9BC_HW_DRV_V1__)
+
+#define BC_REG_STA      (BITCP_base + 0x0000)
+#define BC_REG_SRC      (BITCP_base + 0x0004)
+#define BC_REG_DST      (BITCP_base + 0x0008)
+#define BC_REG_LDST     (BITCP_base + 0x000c)
+#define BC_REG_SIZE     (BITCP_base + 0x0010)
+#define BC_REG_CON      (BITCP_base + 0x0014)
+#define BC_REG_START    (BITCP_base + 0x0018)
+
+void BitCopy(const kal_uint8 *src, kal_uint16 srcOffset, kal_uint8 *dest, kal_uint16 *destOffset, kal_uint16 length);
+
+#endif   /* __3G_F8F9BC_HW_DRV_V1__ */
+
+#endif
diff --git a/mcu/driver/drv/include/cdl.h b/mcu/driver/drv/include/cdl.h
new file mode 100644
index 0000000..69d1b10
--- /dev/null
+++ b/mcu/driver/drv/include/cdl.h
@@ -0,0 +1,80 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *    cdl.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This file is to trigger card download
+ *
+ * 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 _CDL_H_
+#define _CDL_H_
+
+#ifdef __CARD_DOWNLOAD__
+
+extern void CDL_StartCardDownload(void);
+extern void CDL_FullDownloadTest(void);
+
+#endif /* __CARD_DOWNLOAD__ */
+
+#endif /* _CDL_H_ */
+
diff --git a/mcu/driver/drv/include/drv_trc.h b/mcu/driver/drv/include/drv_trc.h
new file mode 100644
index 0000000..94feb12
--- /dev/null
+++ b/mcu/driver/drv/include/drv_trc.h
@@ -0,0 +1,411 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   bmt_trc.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This is trace map definition for BMT.
+ *
+ * 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!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef _DRV_TRC_H
+#define _DRV_TRC_H
+#ifndef GEN_FOR_PC
+   #ifndef _STACK_CONFIG_H
+   #error "stack_config.h should be included before tst_config.h"
+   #endif
+#else
+   #include "kal_trace.h"
+#endif /* GEN_FOR_PC */
+/*add by RHR suggest Add*/ 
+#include "kal_public_defs.h" //MSBB change #include "stack_config.h"
+#include "kal_trace.h"
+/*add by RHR suggest Add*/ 
+#ifndef _KAL_TRACE_H
+   #error "kal_trace.h should be included before tst_trace.h"
+#endif
+#if !defined(GEN_FOR_PC)
+#if defined(__TST_MODULE__) || defined(__CUSTOM_RELEASE__)
+#endif /* TST Trace Defintion */
+#endif
+#if !defined(GEN_FOR_PC)
+#include"drv_trc_mod_rtc_hisr_utmd.h"
+#endif
+#if !defined(GEN_FOR_PC)
+#include"drv_trc_mod_msdc_hisr_utmd.h"
+#endif
+#if !defined(GEN_FOR_PC)
+#include"drv_trc_mod_ppp_hw_utmd.h"
+#endif
+#if !defined(GEN_FOR_PC)
+#include"drv_trc_mod_uart_1_hisr_utmd.h"
+#endif
+#if ((defined(__ACCDET_SUPPORT__)||defined(__ACCDET_HYBRID_SOLUTION_SUPPORT__)) && !defined(__L1_STANDALONE__))
+#if !defined(GEN_FOR_PC)
+#include"drv_trc_mod_aux_utmd.h"
+#endif
+#endif //#if defined(__ACCDET_SUPPORT__)
+#ifdef ISP_SUPPORT
+#if !defined(GEN_FOR_PC)
+#include"drv_trc_mod_cal_utmd.h"
+#endif
+#endif
+#endif /* _DRV_TRC_H */
diff --git a/mcu/driver/drv/include/drv_trc_mod_aux_utmd.json b/mcu/driver/drv/include/drv_trc_mod_aux_utmd.json
new file mode 100644
index 0000000..2e98b02
--- /dev/null
+++ b/mcu/driver/drv/include/drv_trc_mod_aux_utmd.json
@@ -0,0 +1,378 @@
+{
+  "legacyParameters": {}, 
+  "module": "MOD_AUX", 
+  "traceClassDefs": [
+    {
+      "TRACE_INFO": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_WARNING": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_ERROR": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_FUNC": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_STATE": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_1": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_2": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_3": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_4": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_5": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_6": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_7": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_8": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_9": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_10": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }
+  ], 
+  "traceDefs": [
+    {
+      "ACCDET_INIT": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET init", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_SET_DEBOUNCE": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Set Debounce: state: %d debounce = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_SET_PWM": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Set PWM: pwmSet = %d, width = %d,thresh = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_SET_NOT_PLUGGED": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Set Not Plugged", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_SET_PLUGGED": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Set Plugged", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_SET_MIC_BIAS": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Set MIC bias", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_SET_SWITCHED": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Set Switched", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_SET_CHECK_TV": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Set Check TV", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_SET_TVOUT": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Set TV Out", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_NOT_PLUGGED_HANDLER": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Not Plugged Handler: iA = %d, iB = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_NOT_PLUGGED_STATE_NOT_CHANGE": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Not Plugged state not change", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_NOT_PLUGGED_HANDLER_FAIL": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Not Plugged Handler fail", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_PLUGGED_HANDLER": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Plugged Handler: iA = %d, iB = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_PLUGGED_HANDLER_FAIL": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Plugged Handler Fail", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_MIC_HANDLER": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Mic Handler: iA = %d, iB = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_MIC_STATE_NOT_CHANGE": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET mic state not change", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_MIC_HANDLER_FAIL": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Mic Handler Fail", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_SWITCHED_HANDLER": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Switched Handler: iA = %d, iB = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_HOOK_STATE_NOT_CHANGE": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET hook state not change", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_SWITCHED_HANDLER_FAIL": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Switched Handler Fail", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_CHECK_TV_HANDLER": {
+        "_comment": "Trace reference not found", 
+        "format": "Check TV Handler: iA = %d, iB = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_CHECK_TV_HANDLER_FAIL": {
+        "_comment": "Trace reference not found", 
+        "format": "Check TV Handler: CheckTvFail", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_TVOUT_HANDLER": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET TvOut Handler: iA = %d, iB = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_TVOUT_HANDLER_FAIL": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET TvOut Handler Fail", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_NOT_PLUG_DEBOUNCE_CHANGED": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET not plug debounce changed: 0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_HOOK_DEBOUNCE_CHANGED": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET hook debounce changed: 0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_MIC_DEBOUNCE_CHANGED": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET mic debounce changed: 0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_HANDLER": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET Handler", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_HISR_TRC": {
+        "_comment": "Trace reference not found", 
+        "format": "ACCDET HISR", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_STATUS_TRC": {
+        "_comment": "Trace reference not found", 
+        "format": "iA=%d iB=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_EINT_STATUS_TRC": {
+        "_comment": "Trace reference not found", 
+        "format": "EINT=%d iA=%d iB=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_HYBRID_ILLEGAL_INTERRUPT1_TRC": {
+        "_comment": "Trace reference not found", 
+        "format": "Audio Buffer Opened: illegal interrupt", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ACCDET_HYBRID_ILLEGAL_INTERRUPT2_TRC": {
+        "_comment": "Trace reference not found", 
+        "format": "Earphone already plugged out: illegal interrupt", 
+        "traceClass": "TRACE_INFO"
+      }
+    }
+  ], 
+  "traceFamily": "PS",
+  "userModule": "",
+  "startGen": "Legacy",
+  "endGen": "Legacy"
+}
\ No newline at end of file
diff --git a/mcu/driver/drv/include/drv_trc_mod_cal_utmd.json b/mcu/driver/drv/include/drv_trc_mod_cal_utmd.json
new file mode 100644
index 0000000..45c1757
--- /dev/null
+++ b/mcu/driver/drv/include/drv_trc_mod_cal_utmd.json
@@ -0,0 +1,545 @@
+{
+  "endGen": "Legacy",
+  "legacyParameters": {}, 
+  "module": "MOD_CAL", 
+  "startGen": "Legacy",
+  "traceClassDefs": [
+    {
+      "TRACE_INFO": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_WARNING": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_ERROR": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_FUNC": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_STATE": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_1": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_2": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_3": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_4": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_5": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_6": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_7": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_8": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_9": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_10": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }
+  ], 
+  "traceDefs": [
+    {
+      "CAL_ERROR": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Error]: %MMM_ERROR_CODE_ENUM", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_INIT": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][%MCAL_TRACE_FLOW_ENUM]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_OPEN": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][%MCAL_TRACE_FLOW_ENUM]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_CTRL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][%MCAL_TRACE_FLOW_ENUM]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_SCENARIO_CTRL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Flow][%MCAL_CTRL_ENUM]:ScenarioID= %MCAL_SCENARIO_ENUM;CtrlCode=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_CAMERA_FEATURE_CTRL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Flow][%MCAL_CTRL_ENUM]:FeatureID= %MCAL_CAMERA_FEATURE_ENUM;CtrlCode=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_CCT_FEATURE_CTRL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Flow][%MCAL_CTRL_ENUM]:FeatureID= %d;CtrlCode=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_PROFILING_FEATURE_CTRL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Flow][%MCAL_CTRL_ENUM]:FeatureID= %MCAL_CAMERA_PROFILING_FEATURE_ENUM;CtrlCode=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_WEBCAM_FEATURE_CTRL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Flow][%MCAL_CTRL_ENUM]:FeatureID= %MCAL_WEBCAM_FEATURE_ENUM;CtrlCode=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_ISP_FEATURE_CTRL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Flow][%MCAL_CTRL_ENUM]:FeatureID= %d;CtrlCode=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_CAMERA_ENGINEER_FEATURE_CTRL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][%d CAL_CTRL][%MCAL_CTRL_ENUM]:FeatureID= %d;CtrlCode=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_SENSOR_FEATURE_CTRL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Flow][%MCAL_CTRL_ENUM]:FeatureID= %d;CtrlCode=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_LENS_FEATURE_CTRL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Flow][%MCAL_CTRL_ENUM]:FeatureID= %d;CtrlCode=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_MATV_FEATURE_CTRL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Flow][%MCAL_CTRL_ENUM]:FeatureID= %MCAL_MATV_FEATURE_ENUM;CtrlCode=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_VT_FEATURE_CTRL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Flow][%MCAL_CTRL_ENUM]:FeatureID= %MCAL_VT_FEATURE_ENUM;CtrlCode=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_JPEG_FEATURE_CTRL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Flow][%MCAL_CTRL_ENUM]:FeatureID= %d;CtrlCode=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_MDP_FEATURE_CTRL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Flow][%MCAL_CTRL_ENUM]:FeatureID= %d;CtrlCode=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_VIDEO_FEATURE_CTRL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Flow][%MCAL_CTRL_ENUM]:FeatureID= %d;CtrlCode=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_CLOSE": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][%MCAL_TRACE_FLOW_ENUM]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_FLOW_DEINIT": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][%MCAL_TRACE_FLOW_ENUM]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_CBF_ISP": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Callback Function][ISP][CallBackID:%MCAL_CALLBACK_ID_ENUM][Time:%d]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_CBF_JPEG": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Callback Function][JPEG][CallBackID:%MCAL_CALLBACK_ID_ENUM][Time:%d]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_CBF_PP": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Callback Function][PostProcess][CallBackID:%MCAL_CALLBACK_ID_ENUM][Time:%d]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_CBF_MDP": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Callback Function][MDP][CallBackID:%MCAL_CALLBACK_ID_ENUM][Time:%d]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_CBF_JAIA": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Callback Function][JAIA][CallBackID:%MCAL_CALLBACK_ID_ENUM][Time:%d]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_CBF_IMAGEROT": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Callback Function][ImageRot][CallBackID:%MCAL_CALLBACK_ID_ENUM][Time:%d]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_CBF_TIMEOUT": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Callback Function][StackTimeOut][CallBackID:%MCAL_CALLBACK_ID_ENUM][Time:%d]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_DEMAND_DUMP": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Request][Memory Dump]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_DEMAND_DUMP_SCOPE": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Request][Memory Dump][0x%08X ~ 0x%08X]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_DEMAND_STATE": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Request][CAL State][%MCAL_STATE_ENUM] ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_DEMAND_ENABLE": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Request][CAL Trace Enable] ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_DEMAND_DIABLE": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][CAL Request][CAL Trace Disable] ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_WEBCAM_INIT": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][WEBCAM][Webcam Init] ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_WEBCAM_CBF_BUF": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][WEBCAM][Webcam ForDoubleBuffer: %d] ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_WEBCAM_CBF": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][WEBCAM][Webcam CallBack: %d] ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_WEBCAM_NEEDENCODE": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][WEBCAM][Webcam If NeedEncode-ScenarioId = %d]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_WEBCAM_CAPTURENEXT": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][WEBCAM][Webcam Capture Next Frame-ScenarioId = %d]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_WEBCAM_DROPFRAME": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][WEBCAM][Webcam Drop Encode Req : %d]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_WEBCAM_ENCODEREQ": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][WEBCAM][Webcam Send Encode Request: %d] ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_WEBCAM_FEATURE_CTL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][WEBCAM][Webcam FeatureCtrl-FeatureId = %MCAL_WEBCAM_FEATURE_ENUM] ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_WEBCAM_CTL": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][WEBCAM][Webcam Ctrl-ScenarioId = %MCAL_SCENARIO_ENUM CtrlCode = %d] ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_WEBCAM_ERROR": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][WEBCAM][Webcam Error: %MMM_ERROR_CODE_ENUM] ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_PROFILING_ZOOM_FACTOR": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL Profiling]ZoomFactor:         %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_PROFILING_NIGHT_MODE": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL Profiling]NightMode:          %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_PROFILING_CAPTURE_COUNT": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL Profiling]CaptureCount:       %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_PROFILING_PREVIEW_FPS": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL Profiling]PreviewFramerate:   %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_PROFILING_CAPTURE_FPS": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL Profiling]CaptureFramerate:   %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_PROFILING_LOG": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL Profiling]Duration:%dms,      %MCAL_CAMERA_PROFILING_LOG_ENUM", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_VIDEO_INFO": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL][Video]CalVideoCtrl: sensor input(%dx%d), record target(%dx%d) , target frame rate : %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CAL_LOG_OTF": {
+        "_comment": "Trace reference not found", 
+        "format": "[CAL] Force on-the-fly capture", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ISP_RFDESENSE_FH_ENABLE": {
+        "_comment": "Trace reference not found", 
+        "format": "[RF Desense][Camera FH Enabled][RAW]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ISP_RFDESENSE_MCLK_PLK_BG_ON_RAW": {
+        "_comment": "Trace reference not found", 
+        "format": "[RF Desense][Camera MCLK/PCLK background ON][RAW]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ISP_RFDESENSE_MCLK_PLK_BG_ON_YUV": {
+        "_comment": "Trace reference not found", 
+        "format": "[RF Desense][Camera MCLK/PCLK background ON][YUV]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ISP_RFDESENSE_CAM_REG0018_READ": {
+        "_comment": "Trace reference not found", 
+        "format": "[RF Desense][CAM+0018h=0x40, read value %x][YUV]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ISP_ASD_FACE_LUM": {
+        "_comment": "Trace reference not found", 
+        "format": "[ASD] Face Lum-Capture: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ISP_ASD_FACE_COMPENSATION_EV": {
+        "_comment": "Trace reference not found", 
+        "format": "[ASD] Face Compensation-Capture EV: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ISP_ASD_FACE_COMPENSATION_EV_REAL": {
+        "apiType": "index", 
+        "format": "[ASD] Face Compensation-Capture EV:(real): %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }
+  ], 
+  "traceFamily": "PS"
+}
\ No newline at end of file
diff --git a/mcu/driver/drv/include/drv_trc_mod_msdc_hisr_utmd.json b/mcu/driver/drv/include/drv_trc_mod_msdc_hisr_utmd.json
new file mode 100644
index 0000000..2146403
--- /dev/null
+++ b/mcu/driver/drv/include/drv_trc_mod_msdc_hisr_utmd.json
@@ -0,0 +1,406 @@
+{
+  "legacyParameters": {}, 
+  "module": "MOD_MSDC_HISR", 
+  "traceClassDefs": [
+    {
+      "TRACE_INFO": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_WARNING": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_ERROR": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_FUNC": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_STATE": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_1": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_2": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_3": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_4": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_5": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_6": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_7": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_8": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_9": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_10": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }
+  ], 
+  "traceDefs": [
+    {
+      "MSDC_ERROR_CMDTIMEOUT": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC error: cmd timeout with %x at %x, regs: %x, %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_ERROR_RSPCRC": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC error: cmd resp crcerror with %x at %x, regs: %x, %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_ERROR_DATTIMEOUT": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC error: dat timeout with %x at %x, regs: %x, %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_ERROR_DATCRC": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC error: dat crcerror with %x at %x, regs: %x, %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_ERROR_TUNECLKFAIL": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC error: failed to tune a suitable clk, using MSDC_CFG: %x , MSDC_IOCON:%x currently", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_ERROR_CARDINTERNALECCFAIL": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC error: card has internal ECC fail on sectors, %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_GENERAL_FAIL": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC fail: fail in file %d, line %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_FAIL_WAITNOTBUSY_TIMEOUT": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC fail: polling r1b timeout %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_FAIL_CMD18_DMA_TRANSFER": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC CMD18 DMA transfer fail :%x ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_READSECTOR_START": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: readSectors start at %x , %d tril with %d RD error before, IOCON: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_READSECTOR_END": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: readSectors end with %x at %x by %x, with throughput %d KB/s", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_READSECTOR_ENTRY": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: readSectors(%x,%x,%x,%x), by %x, pdn: %x, present: %x, init: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_WRITESECTOR_START": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: writeSectors start at %x, %d tril with %d WR error before", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_WRITESECTOR_END": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: writeSectors end with %x at %x by %x, with throughput %d KB/s", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_WRITESECTOR_ENTRY": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: writeSectors(%x,%x,%x,%x), by %x, pdn: %x, present: %x, init: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_R0": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: response0 :%x at %d line", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_CID": {
+        "_comment": "Trace reference not found", 
+        "format": "card's MID : %x,  OIDD : %x ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_ACMD41OCR": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: ACMD41 OCR :%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_CMD1OCR": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: MMC CMD1 OCR :%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_HOTPLUG": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: memory card hot plug, (%x, %x) with card's present:%x at time %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_HOTPLUGILM": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: send ilm for %x card, send_ilm: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_BEFORE_SEND_CMD": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: SDC_CMDSTA %x, SDC_DATASTA %x, SDC_CMD %x, at line %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_CARD_PROGRAMMING": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: period time (including programming): %d ms, %d polling/T", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_R1B_DEBUG": {
+        "_comment": "Trace reference not found", 
+        "format": "r1b status direct entry :%d, LISR %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_R1B_DEBUG_2": {
+        "_comment": "Trace reference not found", 
+        "format": "SDCMDIRQ_Entry_Count %d,SDMCIRQ_Entry_Count %d,SDDATIRQ_Entry_Count %d,SDR1bIRQ_Entry_count %d,SDIOIRQ_Entry_Count %d, SDPINIRQ_Entry_Count %d,%d,%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_EVENTGP_MONITOR": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: event group status %x at line %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_DCL_SD_OPEN": {
+        "_comment": "Trace reference not found", 
+        "format": "SD DCL open: flag : 0x%x, retAddr 0x%x from task 0x%x at time %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_DCL_SDIO_OPEN": {
+        "_comment": "Trace reference not found", 
+        "format": "SDIO DCL open: flag : 0x%x, retAddr 0x%x from task 0x%x at time %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_SDIO_API_DREAD": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: SDIO data read begin(%x,%x,%x,%x,%x,%x), pdn:%x, MSDC_CFG:%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_SDIO_API_DREAD_END": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: SDIO data read end with status %d, %d blocks(bytes)/s, MSDC_IOCON:%x, SDC_CFG:%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_SDIO_API_CMD52": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: SDIO CMD52 begin(%x,%x,%x,%x,%x,%x), pdn:%x, MSDC_CFG:%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_SDIO_API_CMD52_END": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: SDIO CMD52 end with %d, rsp0:%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_SDIO_API_SET_BLK_SIZE": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: SDIO set function %d block size to %d, status %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_SDIO_API_INIT": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: SDIO init begin", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_SDIO_API_INIT_END": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: SDIO init end with %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_DMA_TRANSFER_CACHED_WRITE": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: count>MSDC_WRITE_THD_POLL,count=%d,threadID=%x ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "MSDC_INFORM_DMA_TRANSFER_CACHED_READ": {
+        "_comment": "Trace reference not found", 
+        "format": "MSDC info: count>MSDC_READ_THD_POLL,count=%d,threadID=%x ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }
+  ], 
+  "traceFamily": "PS",
+  "userModule": "MSDC",
+  "startGen": "Legacy",
+  "endGen": "Legacy"
+}
\ No newline at end of file
diff --git a/mcu/driver/drv/include/drv_trc_mod_ppp_hw_utmd.json b/mcu/driver/drv/include/drv_trc_mod_ppp_hw_utmd.json
new file mode 100644
index 0000000..c3314aa
--- /dev/null
+++ b/mcu/driver/drv/include/drv_trc_mod_ppp_hw_utmd.json
@@ -0,0 +1,530 @@
+{
+  "endGen": "Legacy",
+  "legacyParameters": {}, 
+  "module": "MOD_PPP_HW", 
+  "startGen": "Legacy",
+  "traceClassDefs": [
+    {
+      "TRACE_INFO": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline", 
+          "TRACE_INFO"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_WARNING": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline", 
+          "TRACE_WARNING"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_ERROR": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline", 
+          "TRACE_ERROR"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_FUNC": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline", 
+          "TRACE_FUNC"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_STATE": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline", 
+          "TRACE_STATE"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_1": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_2": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_3": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_4": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_5": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_6": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_7": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_8": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_9": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_10": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }
+  ], 
+  "traceDefs": [
+    {
+      "PPP_ENCODE_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC Encode", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ENCODE_HISR_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC Encode HISR", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ENCODE_PARA_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC Encode parameters: scp:%d, ecp:%d, op:%d, dest->size:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ENCODE_PARA_ERROR_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC Encode parameters error: scp:%d, ecp:%d, op:%d, dest->size:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ENCODE_STATE_ERROR_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC Encode Error PFC not under OK status! stat:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ENCODE_STATE_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC Encode PFC stat:%d   HW encode src comsume:%d  dst output:%d  duration(tick):%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ENCODE_FINISH_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC Encode API duration(tick):%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_DECODE_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC Decode", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_DECODE_HISR_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC Decode HISR", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_DECODE_PARA_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC Decode parameters: scp:%d, ecp:%d, op:%d, dest->used:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_DECODE_PARA_ERROR_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC Decode parameters error: scp:%d, ecp:%d, op:%d, dest->used:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_DECODE_STATE_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC Decode PFC stat:%d   HW decode src comsume:%d  dst output:%d  duration(tick):%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_DECODE_STATE_ERROR_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC Decode Error PFC not under OK status! stat:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_DECODE_AT_ERROR_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC WARNING_PPP_ESC_ATO_SEEMS_DETECT_AT_IN_PPP_FRAME_DECODE", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_DECODE_ESC_ERROR_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC WARNING_PPP_ESC_ATO_SEEMS_DETECT_ESC_IN_PPP_FRAME_DECODE", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_DECODE_FINISH_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC Decode API duration(tick):%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_WEITE_BUFFER_FULL_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC write buffer full error", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_OK_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC OK", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ZERO_LENGTH_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC Zero length", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_BUSY_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC BUSY", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_FCS_ERROR_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC FCS_ERROR", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_NOT_0X7E_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC NOT_0X7E", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ADR_CON_ERROR_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC ADR_CON_ERROR", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_INVALID_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC INVALID 0x7d 0x7e", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_RESUME_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC RESUME", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_PROTOCOL_ERROR_DECODING_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC PROTOCOL error in decoding", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_UNKNOWN_ERROR_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC unknown error", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_START_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_START:   addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_CON_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_CON:     addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_PTC_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_PTC:     addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_DSCR_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_DSCR:    addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_SADDR_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_SADDR:   addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_SRC_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_SRC:     addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_USLEN_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_USLEN:   addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_DES_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_DES:     addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_UDLEN_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_UDLEN:   addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_INTEN_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_INTEN:   addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_STAT_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_STAT:    addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_SDRAT_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_SDRAT:   addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ACCM0_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_ACCM0:   addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ACCM1_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_ACCM1:   addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ACCM2_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_ACCM2:   addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ACCM3_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_ACCM3:   addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ACCM4_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_ACCM4:   addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ACCM5_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_ACCM5:   addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ACCM6_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_ACCM6:   addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_DSCR2_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_DSCR2:   addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_DES2_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_DES2:    addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_UDLEN2_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_UDLEN2:  addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_USB1_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_USB1:    addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_USB2_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_USB2:    addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ACCM_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "PFC_ACCM:    addr:%x, value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_ACFC_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "Set PFC_CON = PFC_CON | PFC_ACFC", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "PPP_PFC_MSG": {
+        "_comment": "Trace reference not found", 
+        "format": "Set PFC_CON = PFC_CON | PFC_PFC", 
+        "traceClass": "TRACE_INFO"
+      }
+    }
+  ], 
+  "traceFamily": "PS",
+  "userModule": ""
+}
diff --git a/mcu/driver/drv/include/drv_trc_mod_rtc_hisr_utmd.json b/mcu/driver/drv/include/drv_trc_mod_rtc_hisr_utmd.json
new file mode 100644
index 0000000..bf88ebe
--- /dev/null
+++ b/mcu/driver/drv/include/drv_trc_mod_rtc_hisr_utmd.json
@@ -0,0 +1,560 @@
+{
+  "endGen": "Legacy", 
+  "legacyParameters": {}, 
+  "module": "MOD_RTC_HISR", 
+  "startGen": "Legacy", 
+  "traceClassDefs": [
+    {
+      "TRACE_INFO": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_WARNING": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_ERROR": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_FUNC": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_STATE": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_1": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_2": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_3": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_4": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_5": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_6": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_7": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_8": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_9": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_10": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }
+  ], 
+  "traceDefs": [
+    {
+      "RTC_REPEAT_CALI_ADJUST_COUNT": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC adjust %d count for repeat calibration register", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_REPEAT_CALI_VALUE": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC repeat calibration register value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_REPEAT_CALI_VALUE_EXCEED_MAX": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC repeat calibration value %d exceed max", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_REPEAT_CALI_VALUE_EXCEED_MIN": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC repeat calibration value %d exceed min", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_REPEAT_CALI_PERFORM_CALI": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC repeat calibration perform for %d counts", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_ONESHOT_CALI_PERFORM_COUNT": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC one shot calibration for %d counts, remains %d counts", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_ONESHOT_CALI_VALUE": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC oneshot calibration register value: %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_ONESHOT_CALI_FINISH": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC oneshot calibration finish", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_HW_CALI_START_MEASURE_INACCURATE": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC HW cali, start to measure rtc inaccurate: (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_HW_CALI_INIT_MEASURE_ACCURATE_L1_TICK": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC HW cali, init L1 tick: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_HW_CALI_FINISH_MEASURE_INACCURATE": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC HW cali, finish measuring rtc inaccurate: (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_HW_CALI_FINISH_MEASURE_ACCURATE_L1_TICK": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC HW cali, finish L1 tick: %d, inaccurate ticks: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_HW_CALI_NO_NEED_TO_CALI": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC HW cali, no need to perform calibration, no diff count: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_HW_CALI_IN_PROGRESS": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC HW cali, in progress: (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_HW_CALI_INIT_REPEAT_CALI_COUNT": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC HW cali, init repeat cali count: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_START_POWEROFF_CALI": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, start to do power off cali", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_START_POWEROFF_CALI_TIME": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, current time before power off cali: (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_FINISH_POWEROFF_CALI_TIME": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, current time after power off cali: (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_FINISH_2ND_POWEROFF_CALI": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, wait %d ticks to perform 2nd power off cali", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_AFTER_2ND_POWEROFF_CALI": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, current time after 2nd power off cali: (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_START_POWERON_CALI_TIME": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, start power on cali: (%d:%d:%d), init tick: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_POWERON_CALI_START_INACCURACY_MEASURE": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, start accuracy measure", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_POWERON_CALI_FINISH_INACCURACY_MEASURE": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, accuracy for one hour: %d ticks", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_POWERON_CALI_START": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, start power on cali: (%d:%d:%d), init tick: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_WRITE_NVRAM": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, write to NVRAM", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_KAL_EXPIRE_EARLY": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, KAL_timer expired early, expected: %d (tick), now: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_TIMOUE_NOT_IN_SEC_BOUNDARY": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, timeout not in second boundary: %d (tick)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_TIMOUE_OUT": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali timeout (%d:%d:%d), current frame tick: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_UPDATE_TIME": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, update time (%d:%d:%d), current frame tick: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_POWEROFF_CALI_INIT1": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, NVRAM time valid: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_POWEROFF_CALI_INIT2": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, NVRAM time: %d-%d-%d (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_POWEROFF_CALI_INIT3": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, NVRAM tick diff valud: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_POWEROFF_CALI_INIT4": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, NVRAM ticks_diff_per_hour: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_POWEROFF_PERIOD_VALID": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, poweroff period - valid: %d, hours: %d, minutes: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_CURR_POWER_TIME": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, curr power on time: %d-%d-%d (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_RTC_TIME_IN_MINUTE_BOUNDARY": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, rtc time in minute boundary: %d, delay 6 sec", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_RTC_TIME_IN_ALARM_BOUNDARY": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC SW cali, rtc time in alarm boundary: %d, delay 6 sec", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_INACCURATE_TICK_DURING_POWEROFF": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC cali, inaccurate ticks during power off: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_ALARM_POWERON_AND_NEED_BACKWARD_TIME": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC cali, alarm power on, but we need to backward time", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SW_CALI_ALARM_POWERON_AND_POWEROFF": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC cali, alarm power on but we backward time so power off", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_TC_INTR_FOR_USER": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC TC intr for user", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_AL_INTR": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC AL intr", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_FORWARD_TIME_1": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC forward time: (%d:%d:%d) forward %d hour, %d min, %d sec", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_FORWARD_TIME_2": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC forward time done: (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_BACKWARD_TIME_1": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC backward time: (%d:%d:%d) backward %d hour, %d min, %d sec", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_BACKWARD_TIME_2": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC backward time done: (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_INIT_TC_TIME": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC initTC time, curr time: %d-%d-%d (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_WRITE_TO_NVRAM": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC write to nvram, nvram time: %d-%d-%d (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_CALI_TIME": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC cali time: %d-%d-%d (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_GET_TIME": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC get time: %d-%d-%d (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_SET_ALARM": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC set alarm: %d-%d-%d (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_GET_AL_TIME": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC get alarm time: %d-%d-%d (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_IS_CONFIG_VALID_ALARM": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC is config valid alarm: %d-%d-%d (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_IS_CONFIG_VALID_TIME": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC is config valid time: %d-%d-%d (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_NOT_CONFIG_VALID_ALARM": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC not config valid alarm: %d-%d-%d (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_NOT_CONFIG_VALID_TIME": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC not config valid time: %d-%d-%d (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_IS_NOT_CONFIG_INVALID_TIME": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC is not config invalid time: %d-%d-%d (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_TIME_VALID": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC time valid: %d-%d-%d (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RTC_TIME_NOT_VALID": {
+        "_comment": "Trace reference not found", 
+        "format": "RTC time not valid: %d-%d-%d (%d:%d:%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }
+  ], 
+  "traceFamily": "PS", 
+  "userModule": ""
+}
\ No newline at end of file
diff --git a/mcu/driver/drv/include/drv_trc_mod_uart_1_hisr_utmd.json b/mcu/driver/drv/include/drv_trc_mod_uart_1_hisr_utmd.json
new file mode 100644
index 0000000..649232a
--- /dev/null
+++ b/mcu/driver/drv/include/drv_trc_mod_uart_1_hisr_utmd.json
@@ -0,0 +1,196 @@
+{
+  "endGen": "Legacy",
+  "legacyParameters": {}, 
+  "module": "MOD_UART_1_HISR", 
+  "startGen": "Legacy",
+  "traceClassDefs": [
+    {
+      "TRACE_INFO": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_WARNING": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_ERROR": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_FUNC": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_STATE": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_1": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_2": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_3": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_4": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_5": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_6": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_7": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_8": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_9": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_GROUP_10": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "Public"
+      }
+    }
+  ], 
+  "traceDefs": [
+    {
+      "UART_RX_VFIFO_TIMEOUT_INT": {
+        "_comment": "Trace reference not found", 
+        "format": "UART port:%d  recive %d data---VFIFO Rx timeOut interrupt", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "UART_RX_VFIFO_INT": {
+        "_comment": "Trace reference not found", 
+        "format": "UART port:%d  recive %d data---VFIFO Rx interrupt", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "UART_RX_MCU_MODE_INT": {
+        "_comment": "Trace reference not found", 
+        "format": "UART port:%d  recive %d data---MCU mode Rx MCU mode interrupt", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "UART_TX_VFIFO_U_SendISRData_VFIFO": {
+        "_comment": "Trace reference not found", 
+        "format": "UART VFIFO Tx  U_SendISRData_VFIFO()---len %d,left %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "UART_TX_VFIFO_U_SendData_VFIFO": {
+        "_comment": "Trace reference not found", 
+        "format": "UART VFIFO Tx  U_SendData_VFIFO()---len %d,left %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "UART_TX_VFIFO_U_PutBytes_VFIFO": {
+        "_comment": "Trace reference not found", 
+        "format": "UART VFIFO Tx  U_PutBytes_VFIFO()---len %d,left %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "UART_TX_VFIFO_U_PutISRBytes_VFIFO": {
+        "_comment": "Trace reference not found", 
+        "format": "UART VFIFO Tx  U_PutISRBytes_VFIFO()---len %d,left %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }
+  ], 
+  "traceFamily": "PS", 
+  "userModule": ""
+}
\ No newline at end of file
diff --git a/mcu/driver/drv/include/drvtest_no_use.h b/mcu/driver/drv/include/drvtest_no_use.h
new file mode 100644
index 0000000..3734ffe
--- /dev/null
+++ b/mcu/driver/drv/include/drvtest_no_use.h
@@ -0,0 +1,77 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *    drvtest.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This Module defines for driver test task
+ *
+ * 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!!
+ *============================================================================
+ ****************************************************************************/
+typedef struct {
+	LOCAL_PARA_HDR
+	kal_kal_uint32 id;
+} drvtest_localpara_struct;
+
+
diff --git a/mcu/driver/drv/include/fota.h b/mcu/driver/drv/include/fota.h
new file mode 100644
index 0000000..564b4a1
--- /dev/null
+++ b/mcu/driver/drv/include/fota.h
@@ -0,0 +1,432 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   fota.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This is the header of FOTA firmware update download module
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef __FOTA_H__
+#define __FOTA_H__
+
+/*******************************************
+*   Include File      
+********************************************/
+
+#include "kal_public_api.h" //MSBB change #include "kal_release.h"
+#include "fat_fs.h"
+#include "DrvFlash.h"
+#include "fota_error.h"
+#include "custom_img_config.h"
+
+/*******************************************
+*   Structure and Macro Definition      
+********************************************/
+#define FOTA_BUFFER_SIZE FOTA_FLASH_MAX_PAGE_SIZE
+#define FOTA_FRAME_TICK 70
+
+typedef kal_int32 (*CALLBACK_Auth_FUNC)(void* Header);
+typedef kal_int32 (*CALLBACK_Decrypt_FUNC)(void* EncryptBuffer);
+
+//#if !defined(_NAND_FLASH_BOOTING_)
+#if !defined(__FOTA_DM__)
+
+typedef struct {
+   kal_int32 Status;
+   kal_uint32 FlashBaseAddr; 
+   kal_uint32 OriginalBaseAddr;
+   kal_uint32 SpareBaseAddr;
+   kal_uint32 SpareStartBlkIndex;
+   kal_uint32 TotalFOTALength;
+   kal_uint32 SpareCurrAddr; 
+   kal_uint32 NextBlockAddr;
+   kal_uint32 NextBlkOffset;
+   FlashRegionInfo* NORRegionInfo;
+   kal_uint32 ImageChecksum;
+   kal_uint32 ImageStartAddr;
+   kal_uint32 ImageLength;
+   kal_uint32 BufferIndex;
+   CALLBACK_Auth_FUNC Auth;
+   CALLBACK_Decrypt_FUNC Decrypt;
+   kal_uint32  FOTABuffer[FOTA_BUFFER_SIZE>>2];
+} FOTA_DATA;
+
+#else /* defined(_NAND_FLASH_BOOTING_) */
+
+typedef struct {
+   kal_int32                 Status;
+   kal_uint32                SpareCurrWriteAddr; 
+   kal_uint32                SpareNextWriteBlockAddr;
+   kal_uint32                SpareCurrReadAddr; 
+   kal_uint32                SpareNextReadBlockAddr;
+   kal_uint32                BufferIndex;
+   kal_uint32                FOTAWriteBuffer[FOTA_BUFFER_SIZE>>2];
+   kal_uint32                FOTAReadBuffer[FOTA_BUFFER_SIZE>>2];
+} FOTA_DATA;
+
+#endif /* !defined(_NAND_FLASH_BOOTING_) */
+
+typedef struct {
+   kal_uint32 UpdateFlag;
+   kal_uint32 StartAddr;
+   kal_uint32 ImageLen;
+} FUE_FLAG;
+
+typedef struct {
+   kal_char	 PlatformID[128]; 
+   kal_uint32 FATBeginAddr;
+   kal_uint32 FATLength;
+   kal_uint32 ImageLength;
+   kal_uint32 ImageCheckSum;
+   kal_uint32 StartAddr;
+   kal_uint32 HeaderCheckSum;
+} CompressImageHeader;
+
+
+typedef enum {
+  FOTA_UPDATE_SUCCEEDED,
+  FOTA_UPDATE_FAILED,
+  FOTA_UPDATE_NONE,
+  FOTA_UPDATE_END
+} FOTA_update_result; 
+
+/*******************************************
+*   Function and Variable Definition      
+********************************************/
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_Initialize
+DESCRIPTION
+   FOTA Initialization API
+   1. Initialize data structure and progress initial step
+   2. Register customized authentication function or encryption function
+PARAMETER
+   NULL
+RETURN
+   0: means pass initialization step (ERROR_FOTA_SUCCESS)
+   < 0: means fail
+      ERROR_FOTA_CUSTOMIZATION: wrong customization
+--------------------------------------------------------------------------------- */
+extern kal_int32 FOTA_Initialize(void);
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_WriteData
+DESCRIPTION
+   FOTA write data API
+   1. This function is used to write data to spare image pool
+   2. This API only allow sequentially writing mechanism
+   3. Authentication mechanism is executed during writing
+PARAMETER
+   Length: the length of writing (Unit: Bytes)
+   Buffer: the start address of buffer
+RETURN
+   0: means pass write success (ERROR_FOTA_SUCCESS)
+   < 0: writing action is fail
+      ERROR_FOTA_AUTH_ROMINFO: authentication fail, can't find rom info
+      ERROR_FOTA_AUTH_FATBEGIN: authentication fail, fat begin address is different
+      ERROR_FOTA_AUTH_FATLEN: authentication fail, fat length is different
+      ERROR_FOTA_AUTH_HCHECKSUM: authentication fail, header checksum fail
+      ERROR_FOTA_AUTH_ID: authentication fail, platform id is different
+      ERROR_FOTA_AUTH_VERSION: authentication fail, downgrade is not allowed
+      ERROR_FOTA_AUTH_IMAGELEN: authentication fail, image length too large
+	 ERROR_FOTA_AUTH_FAIL: authentication fail before
+	 ERROR_FOTA_OVERRANGE: write over the spare image pool range
+	 ERROR_FOTA_NOT_INITIALIZED: not call FOTA_Initialize before
+--------------------------------------------------------------------------------- */
+extern kal_int32 FOTA_WriteData(kal_uint32 Length, void* Buffer);
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_ReadData
+DESCRIPTION
+   FOTA read data API
+   1. This function is used to read data from spare image pool
+   2. This API only support sequentially read operation, i.e. from low address to high address
+PARAMETER
+   Length: the length of writing (Unit: Bytes)
+   Buffer: the start address of buffer
+RETURN
+   0: means pass write success (ERROR_FOTA_SUCCESS)
+   < 0: writing action is fail
+      ERROR_FOTA_AUTH_ROMINFO: authentication fail, can't find rom info
+      ERROR_FOTA_AUTH_FATBEGIN: authentication fail, fat begin address is different
+      ERROR_FOTA_AUTH_FATLEN: authentication fail, fat length is different
+      ERROR_FOTA_AUTH_HCHECKSUM: authentication fail, header checksum fail
+      ERROR_FOTA_AUTH_ID: authentication fail, platform id is different
+      ERROR_FOTA_AUTH_VERSION: authentication fail, downgrade is not allowed
+      ERROR_FOTA_AUTH_IMAGELEN: authentication fail, image length too large
+	 ERROR_FOTA_AUTH_FAIL: authentication fail before
+	 ERROR_FOTA_OVERRANGE: write over the spare image pool range
+	 ERROR_FOTA_NOT_INITIALIZED: not call FOTA_Initialize before
+--------------------------------------------------------------------------------- */
+extern kal_int32 FOTA_ReadData(kal_uint32 Length, void* Buffer);
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_Get_DownloadedPackageSize
+DESCRIPTION
+   return currently downloaded package size
+PARAMETER
+   NULL
+RETURN
+   0: means pass initialization step (ERROR_FOTA_SUCCESS)
+   < 0: means fail
+      ERROR_FOTA_CUSTOMIZATION: wrong customization
+--------------------------------------------------------------------------------- */
+kal_int32 FOTA_Get_DownloadedPackageSize(kal_uint32 *curr_size);
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_ClearPackageReservoir
+DESCRIPTION
+   clear downloaded update package
+PARAMETER
+   NULL
+RETURN
+   0: means pass initialization step (ERROR_FOTA_SUCCESS)
+   < 0: means fail
+        ERROR_FOTA_CUSTOMIZATION: wrong customization
+--------------------------------------------------------------------------------- */
+kal_int32 FOTA_ClearPackageReservoir(void);
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_Get_AvailablePackageSpace
+DESCRIPTION
+   return currently downloaded package size
+PARAMETER
+   NULL
+RETURN
+   0: means pass initialization step (ERROR_FOTA_SUCCESS)
+   < 0: means fail
+      ERROR_FOTA_CUSTOMIZATION: wrong customization
+--------------------------------------------------------------------------------- */
+kal_int32 FOTA_Get_AvailablePackageSpace(kal_uint32 *avail_size);
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_Get_TotalPackageSpace
+DESCRIPTION
+   return currently downloaded package size
+PARAMETER
+   NULL
+RETURN
+   0: means pass initialization step (ERROR_FOTA_SUCCESS)
+   < 0: means fail
+      ERROR_FOTA_CUSTOMIZATION: wrong customization
+--------------------------------------------------------------------------------- */
+kal_int32 FOTA_Get_TotalPackageSpace(kal_uint32 *avail_size);
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_WriteUpdateRecord
+DESCRIPTION
+   FOTA update state information write API
+   download client and update agent use this information to communicate with each other
+PARAMETER
+   NULL
+RETURN
+   0: means pass initialization step (ERROR_FOTA_SUCCESS)
+   < 0: means fail
+      ERROR_FOTA_CUSTOMIZATION: wrong customization
+--------------------------------------------------------------------------------- */
+extern kal_int32 FOTA_WriteUpdateRecord(FOTA_Custom_Update_Info* record);
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_ReadUpdateRecord
+DESCRIPTION
+   FOTA update state information read API
+   download client and update agent use this information to communicate with each other
+PARAMETER
+   NULL
+RETURN
+   0: means pass initialization step (ERROR_FOTA_SUCCESS)
+   < 0: means fail
+      ERROR_FOTA_CUSTOMIZATION: wrong customization
+--------------------------------------------------------------------------------- */
+extern kal_int32 FOTA_ReadUpdateRecord(FOTA_Custom_Update_Info* record);
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_Finalize
+DESCRIPTION
+   FOTA finalization API
+   1. compare calculated checksum with image checksum in the header after 
+       whole image is written 
+   2. mark the status to UPDATE_NEEDED 
+PARAMETER
+   void
+RETURN
+   0: means pass error check step (ERROR_FOTA_SUCCESS)
+   < 0: means fail
+      ERROR_FOTA_AUTH_FAIL: authentication fail, final step is not allowed
+      ERROR_FOTA_IMAGE_CHECKSUM: image checksum error
+--------------------------------------------------------------------------------- */
+extern kal_int32 FOTA_Finalize(void);
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_FOTA_Reg_Auth
+DESCRIPTION
+   FOTA register function of authentication
+   register the authentication function if needed
+PARAMETER
+   Auth: the call back decrypt function which want to register
+RETURN
+   NULL
+--------------------------------------------------------------------------------- */
+extern void FOTA_Reg_Auth(CALLBACK_Auth_FUNC Auth);
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_Reg_Decrypt
+DESCRIPTION
+   FOTA register function of decryption, only allow symmetric encryption algorithm
+   register the decryption function if needed
+PARAMETER
+   Decrypt: the call back decrypt function which want to register
+RETURN
+   NULL
+--------------------------------------------------------------------------------- */
+extern void FOTA_Reg_Decrypt(CALLBACK_Decrypt_FUNC Decrypt);
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_InitializeUpdateRecord
+DESCRIPTION
+   create an update record block or find out the existing update record block 
+PARAMETER
+   NULL
+RETURN
+   0: means pass initialization step (ERROR_FOTA_SUCCESS)
+   < 0: means fail
+      ERROR_FOTA_CUSTOMIZATION: wrong customization
+--------------------------------------------------------------------------------- */
+kal_int32 FOTA_InitializeUpdateRecord(void);
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_Inform_Update_State
+DESCRIPTION
+   Query the status of triggered update process
+PARAMETER
+   NONE
+RETURN
+   NULL
+--------------------------------------------------------------------------------- */
+FOTA_update_result FOTA_Inform_Update_State(void);
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_Start_Download_State
+DESCRIPTION
+   Download client use this function to query the result of update process
+PARAMETER
+   NULL
+RETURN
+--------------------------------------------------------------------------------- */
+kal_int32 FOTA_Start_Download_State(void);
+
+/* ---------------------------------------------------------------------------------
+FUNCTION
+   FOTA_Start_Update_State
+DESCRIPTION
+   Download client use this function to query the result of update process
+PARAMETER
+   NULL
+RETURN
+--------------------------------------------------------------------------------- */
+kal_int32 FOTA_Start_Update_State(void);
+
+extern FOTA_DATA FOTAData;
+
+#endif //__FOTA_H__
diff --git a/mcu/driver/drv/include/msdc_fake_kal.h b/mcu/driver/drv/include/msdc_fake_kal.h
new file mode 100644
index 0000000..c398aaf
--- /dev/null
+++ b/mcu/driver/drv/include/msdc_fake_kal.h
@@ -0,0 +1,115 @@
+/*****************************************************************************
+*  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) 2007
+*
+*  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:
+ * ---------
+ *   msdc_fake_kal.h
+ *
+ * Project:
+ * --------
+ *   Maui
+ *
+ * Description:
+ * ------------
+ *   MSDC fake kal header file for bootloader porting
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+ 
+#ifndef _MSDC_FAKE_KAL_H_
+#define _MSDC_FAKE_KAL_H_
+
+#if defined(__UBL__) && defined(__CARD_DOWNLOAD__)
+
+#include "stack_ltlcom.h" //MSBB change #include "app_ltlcom.h"         // for ilm_struct
+
+//typedef void            *kal_taskid;
+typedef char            kal_char;
+
+typedef signed char     kal_int8;
+typedef short           kal_int16;
+typedef int             kal_int32;
+typedef unsigned char   kal_uint8;
+typedef unsigned short  kal_uint16;
+typedef unsigned int    kal_uint32;
+
+typedef unsigned int    rm_kal_wait_mode;
+typedef unsigned int    rm_kal_status;
+
+//function define
+#define kal_mem_set                 memset
+
+//extern kal_taskid kal_get_current_thread_ID(void);
+
+extern ilm_struct *allocate_ilm(module_type module_id);
+extern kal_bool msg_send_ext_queue(ilm_struct *ilm_ptr);
+
+extern void IRQMask(kal_uint8);
+extern void IRQUnmask(kal_uint8);
+
+#endif //defined(__UBL__) && defined(__CARD_DOWNLOAD__)
+
+#endif //_MSDC_FAKE_KAL_H_
+
diff --git a/mcu/driver/drv/include/msdc_lsd.h b/mcu/driver/drv/include/msdc_lsd.h
new file mode 100644
index 0000000..6689a24
--- /dev/null
+++ b/mcu/driver/drv/include/msdc_lsd.h
@@ -0,0 +1,248 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   msdc_lsd.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   header file of software SD/MMC controller interface 
+ *   
+ *
+ * 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!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================ 
+ ****************************************************************************/
+ #ifndef MSDC_LSD_H
+ #define MSDC_LSD_H
+
+/*RHR*/
+//MSBB remove #include "kal_non_specific_general_types.h"
+#include "drv_features.h"
+/*RHR*/
+
+ /*following 2 definitions should be defined in this file*/
+#define LSD_HPI
+#define LSD_CONTROLLER
+
+
+#define	LSD_LCDARB_FREE	0
+#define	LSD_LCDARB_LCD	1
+#define	LSD_LCDARB_SD		2
+#define	LSD_LCDARB_CAL	3
+
+/*DRV_LSD macro definition*/
+#define	LSD_MSDC_CFG	0
+#define	LSD_MSDC_STA	1
+#define	LSD_MSDC_INT	2
+#define	LSD_MSDC_DAT	3 
+#define	LSD_MSDC_PS		4
+#define	LSD_MSDC_IOCON	5
+#define	LSD_SDC_CFG		6
+#define	LSD_SDC_CMD		7
+#define	LSD_SDC_ARG		8
+#define	LSD_SDC_STA		9
+#define	LSD_SDC_RESP0	10
+#define	LSD_SDC_RESP1	11
+#define	LSD_SDC_RESP2	12
+#define	LSD_SDC_RESP3	13
+#define	LSD_SDC_CMDSTA	14
+#define	LSD_SDC_DATSTA	15
+#define	LSD_SDC_CSTA	16
+#define	LSD_SDC_IRQMASK0	17
+#define	LSD_SDC_IRQMASK1	18
+#define	LSD_CMD47_46	0x40
+#define	LSD_CMD55		0x37
+#define	LSD_CMD41		0x29
+
+typedef enum {
+	LSD_SPEED_INIT = 0,
+	LSD_SPEED_26M = 2,
+	LSD_SPEED_52M = 3
+} T_LSD_SPEED;
+
+typedef enum {
+	LSD_cardInsertion = 0,
+	LSD_cardRemoval = 1
+}T_LSD_CardDetection;
+
+typedef enum {
+	LSD_MSDCCLKBPI2 = 0,
+	LSD_MSDCCLKBPI3 = 1
+}T_LSD_MSDCCLK;
+
+
+
+
+
+extern kal_uint32 LSD_dbgInfo[];
+extern kal_uint32 LSD_dbgInfoIndex;
+#define LSD_DBG_INFO_NUM	128
+
+#define LSD_NOT_SUPPORTED 0x1
+
+void LSD_HISR_Registration(void);
+kal_bool LSD_Support(void);
+void LSD_SetBit32(kal_uint32 address,kal_uint32 maskValue);
+void LSD_ClrBit32(kal_uint32 address,kal_uint32 maskValue);
+void LSD_WriteReg32(kal_uint32 address, kal_uint32 data);
+void LSD_ReadReg16(kal_uint32 adrs, kal_uint16 *pdata);
+void LSD_ReadReg32(kal_uint32 adrs, kal_uint32 *pdata);
+kal_uint32 LSD_Reg32(kal_uint32 adrs);
+void LSD_PDNControl(kal_bool ON);
+void LSD_CLR_FIFO(void);
+void LSD_Reset(void);
+kal_uint32 LSD_IS_BUSY(void);
+void LSD_HostSetClock(int speed);
+void LSD_readFIFO(kal_uint32 *adrs, kal_uint32 count);
+void LSD_HostSetBuffer(kal_uint8 *datPtr);
+T_LSD_CardDetection LSD_cardDetection(void);
+
+/*following APIs is provided to FMT, DMT cant see DRV_LSD, can't use DRV_LSD seperate*/
+#ifdef __MTK_TARGET__
+void MSDC_unsealMountOperation(void);
+void NotifyFMTWhenCardPresent(void);
+void LSD_Slower(kal_uint8 slowFactor);
+#else
+#define MSDC_unsealMountOperation()
+#define NotifyFMTWhenCardPresent()
+#define LSD_Slower(a)
+#endif
+
+#ifdef DRV_LSD
+#define LSD_STOP_IMMEDIATLY //this should only be seen in DRV_LSD scope, can't be seen in other platform
+
+void LSD_TakeControl(kal_uint32 owner);
+void LSD_GiveControl(kal_uint32 owner);
+void LSD_startFastFormat(void);
+void LSD_closeFastFormat(void);
+#else
+#define LSD_startFastFormat
+#define LSD_closeFastFormat
+#define LSD_TakeControl(a)
+#define LSD_GiveControl(a)
+#endif
+
+ #endif