diff --git a/mcu/interface/sap/middleware_modid.h b/mcu/interface/sap/middleware_modid.h
new file mode 100644
index 0000000..d8e68fc
--- /dev/null
+++ b/mcu/interface/sap/middleware_modid.h
@@ -0,0 +1,182 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   middleware_modid.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   This file provides the module index enum built.
+ *
+ * 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!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef MIDDLEWARE_MODULE_ID_H
+#define MIDDLEWARE_MODULE_ID_H
+
+#include "module_id_range.h"
+
+/* undef unused macro */
+#undef TASK_PRIORITY_MACRO
+#undef task_name
+#undef task_queue_name
+#undef task_priority
+#undef task_stack_size
+#undef null_task_create_entry
+#undef compatible_code
+#undef task_create_function
+#undef task_stack_internalRAM
+#undef task_external_queue_size
+#undef task_internal_queue_size
+#undef task_boot_mode
+#undef task_affinity_group
+#undef task_affinity_group_id
+#undef MODULE_ID_MAP_TO_NULL_TASK_CAN_ALLOCATE_ILM
+#undef MODULE_ID_FOR_PRINT_TRACE
+#undef task_index
+#undef task_module_map
+
+/* define all unused macros as empty */
+#define task_name(p1)
+#define task_queue_name(p1)
+#define task_priority(p1,p2)
+#define task_stack_size(p1)
+#define null_task_create_entry(p1)
+#define task_create_function(p1)
+#define task_stack_internalRAM(p1)
+#define task_external_queue_size(p1)
+#define task_internal_queue_size(p1)
+#define task_boot_mode(p1)
+#define task_affinity_group(p1)
+#define task_affinity_group_id(p1)
+#define task_index(p1)
+
+/* define the macro which provides the MOD ID*/
+#define task_module_map(task, mod)                                  mod,
+#define compatible_code(expr)                                       expr,
+#define MODULE_ID_MAP_TO_NULL_TASK_CAN_ALLOCATE_ILM(mod)            mod,
+#define MODULE_ID_FOR_PRINT_TRACE(mod)                              mod,
+
+
+MODULE_MOD_BEGIN(MOD_ID_MIDDLEWARE_CODE_BEGIN)
+    #include "middleWare_task_config.h"
+/* customer add module id at here */
+MODULE_MOD_END(MOD_ID_MIDDLEWARE_CODE_TAIL)
+
+    
+/* clean unuse defination */
+#undef task_module_map
+#undef compatible_code
+#undef MODULE_ID_MAP_TO_NULL_TASK_CAN_ALLOCATE_ILM
+#undef MODULE_ID_FOR_PRINT_TRACE
+
+
+#endif /* MIDDLEWARE_MODULE_ID_H */
