diff --git a/mcu/interface/sap/drv_modid.h b/mcu/interface/sap/drv_modid.h
new file mode 100644
index 0000000..c2a40c8
--- /dev/null
+++ b/mcu/interface/sap/drv_modid.h
@@ -0,0 +1,177 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   drv_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!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef DRIVER_MODULE_ID_H
+#define DRIVER_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_DRV_CODE_BEGIN)
+	#include "drv_task_config.h"
+/* customer add module id at here */
+MODULE_MOD_END(MOD_ID_DRV_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 /* DRIVER_MODULE_ID_H */
