[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/make/module/custom/custom_config.mak b/mcu/make/module/custom/custom_config.mak
new file mode 100755
index 0000000..5540d6b
--- /dev/null
+++ b/mcu/make/module/custom/custom_config.mak
@@ -0,0 +1,11 @@
+ifeq ($(strip $(RTOS)),MERTOS)

+  CATEGORY_INCDIRS += ./service/mertos/include

+  CATEGORY_INCDIRS += ./service/kal/common/include

+  CATEGORY_INCDIRS += ./service/kal/os/mertos/include

+  CATEGORY_INCDIRS += ./service/kal/lib/mlib/include

+endif

+

+CATEGORY_INCDIRS += driver/sys_drv/init/inc

+

+

+CATEGORY_DEFS += 
\ No newline at end of file
diff --git a/mcu/make/module/custom/driver/custom.mak b/mcu/make/module/custom/driver/custom.mak
new file mode 100644
index 0000000..1c61162
--- /dev/null
+++ b/mcu/make/module/custom/driver/custom.mak
@@ -0,0 +1,74 @@
+INC_DIR =
+COMP_DEFS =
+FOLDER_LIST =
+# source file folder for xgen
+GEN_FOLDER_LIST = $(strip $(BUILD_SYSDIR)) $(strip $(BUILD_CODEGENDIR))
+INC_DIR += $(strip $(BUILD_SYSDIR)) $(strip $(BUILD_CODEGENDIR))
+# Define source file lists to SRC_LIST
+# Define source file folder to FOLDER_LIST
+
+FOLDER_LIST += $(GEN_FOLDER_LIST)
+
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.c),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.cpp),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.s),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.S),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.dws),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.rec),$(FILE)) \
+)
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+  SRC_LIST += custom/protocol/common/ps/custom_nras_config.c
+endif
+
+ifeq ($(strip $(LGE_SECURITY)), TRUE)
+  INC_DIR += custom/modem/lgesecurity
+endif
+		   
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+  SRC_LIST += custom/protocol/common/ps/custom_nras_config.c
+endif
+
+SRC_LIST :=  $(call uniq,$(SRC_LIST))
+
+INC_DIR += driver/sys_drv/cache/inc
+INC_DIR += driver/sys_drv/cache/inc/$(MD_VER_FOLDER)
+
+INC_DIR :=  $(call uniq,$(INC_DIR))
+
+# Add gblob sml verify file
+SRC_LIST += custom/middleware/common/custom_sml_sec_verify.c
+
+SRC_LIST += custom/middleware/common/custom_nvram_lid_prot.c
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS += __UCS2_ENCODING \
+            MMI_ON_HARDWARE_P \
+            APCS_INTWORK \
+            USE_JAM=0 \
+            COMPILER_SUPPORTS_LONG=1
+
+ifeq ($(filter __NOR_FLASH_BOOTING__,$(strip $(DEFINES))),)
+  ifdef NEED_BUILD_BOOTLOADER
+    ifeq ($(strip $(NEED_BUILD_BOOTLOADER)),TRUE)
+      COMP_DEFS += __BL_ENABLE__
+      COMP_DEFS += REMAPPING
+    endif
+  endif
+endif
+
+ifeq ($(strip $(ENHANCED_SINGLE_BANK_NOR_FLASH_SUPPORT)),TRUE)
+  COMP_DEFS += REMAPPING
+endif
diff --git a/mcu/make/module/custom/driver/custom_driver.mak b/mcu/make/module/custom/driver/custom_driver.mak
new file mode 100644
index 0000000..6865989
--- /dev/null
+++ b/mcu/make/module/custom/driver/custom_driver.mak
@@ -0,0 +1,151 @@
+# Define ./interface/modem folder path by project option 
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6293
+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6295
+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6297
+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6297p
+else
+	#no match chip
+endif
+AUTO_MERGE_FOLDER = ./custom/driver/audio ./custom/driver/drv/misc_drv
+
+INC_DIR =
+COMP_DEFS =
+FOLDER_LIST =
+
+INC_DIR += ./interface/driver/storage/sim
+# Define source file lists to SRC_LIST
+# Define source file folder to FOLDER_LIST
+
+#driver
+ifneq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+  FOLDER_LIST += $(call CUSTOM_FLD_MAPPING,./custom/driver/audio)
+endif
+
+FOLDER_LIST += ./custom/driver/common
+
+FOLDER_LIST += $(call CUSTOM_FLD_MAPPING,./custom/driver/drv/misc_drv) \
+               
+ifneq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+  ifneq ($(strip $(TEST_LOAD_TYPE)),L1S)
+    ifdef GPS_SUPPORT
+      ifneq ($(strip $(GPS_SUPPORT)),NONE)
+        FOLDER_LIST += $(call CUSTOM_FLD_MAPPING,./custom/driver/drv/gps)
+        INC_DIR += $(call CUSTOM_FLD_MAPPING,./custom/driver/drv/gps)
+      endif
+    endif
+  endif
+endif
+
+## 
+AUTO_MERGE_TMP := $(foreach DIR,$(AUTO_MERGE_FOLDER),$(if $(filter $(DIR)/_Default_BB/$(strip $(PLATFORM)) $(call CUSTOM_FLD_MAPPING,$(DIR)),$(FOLDER_LIST)),$(DIR),))
+
+SRC_LIST += $(foreach DIR,$(AUTO_MERGE_TMP), \
+  $(subst /,/,$(foreach file,$(wildcard $(DIR)/_Default_BB/$(strip $(PLATFORM))/*.c) $(wildcard $(DIR)/_Default_BB/$(strip $(PLATFORM))/*.cpp),$(if $(wildcard $(call CUSTOM_FLD_MAPPING,$(DIR))/$(notdir $(file))),,$(file))) $(wildcard $(call CUSTOM_FLD_MAPPING,$(DIR))/*.c) $(wildcard $(call CUSTOM_FLD_MAPPING,$(DIR))/*.cpp)) \
+)
+
+FOLDER_LIST := $(filter-out $(foreach DIR,$(AUTO_MERGE_TMP),$(DIR)/_Default_BB/$(strip $(PLATFORM)) $(call CUSTOM_FLD_MAPPING,$(DIR))),$(FOLDER_LIST))
+
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.c),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.cpp),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.s),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.S),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.dws),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.rec),$(FILE)) \
+)
+
+#only in MoDIS
+ifeq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+  MODIS_DIS_FILE := custom_emi.c custom_flash.c usb_custom.c wndrv_configure.c wndrv_rf_ah.c wndrv_rf_maxim.c
+  MODIS_DIS_FILE += custom_flash_norfdm5.c afe.c mal1_create.c kbdmain_joystick.c ERS_api.c ERS_sys.s custom_sfi.c
+  MODIS_DIS_FILE += combo_flash_init.c combo_flash_nor.c
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),$(call Lower,$(MODIS_DIS_FILE))),,$(file)))
+endif
+ 
+SRC_LIST :=  $(call uniq,$(SRC_LIST))
+
+#  Define include path lists to INC_DIR
+#ifeq ($(strip $(DSP_SOLUTION)),DUALMACDSP)
+# AUDFOLDER = driver/audio/src/v2
+#else
+  AUDFOLDER = driver/audio/src/v1
+#endif
+
+INC_DIR += driver/btmt/rf_desense
+
+
+INC_DIR += $(strip $(AUDFOLDER))/inc
+INC_DIR += driver/btmt/rf_desense \
+           driver/peripheral/inc \
+           driver/storage/flash/mtd/inc \
+           driver/storage/flash/fdm/inc \
+           driver/connectivity/usb_class/include
+INC_DIR += driver/sys_drv/cache/inc
+INC_DIR += driver/sys_drv/cache/inc/$(MD_VER_FOLDER)
+
+INC_DIR += service/nvram/include
+
+# File System custom file (temporary solution)
+INC_DIR += driver/storage/mc/inc
+
+ifeq ($(filter __MTK_TARGET__,$(strip $(MODULE_DEFS))),)
+  INC_DIR += MoDIS_VC9/drv_sim/include
+endif
+
+INC_DIR :=  $(call uniq,$(INC_DIR))
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS += __UCS2_ENCODING \
+            MMI_ON_HARDWARE_P \
+            APCS_INTWORK \
+            USE_JAM=0 \
+            COMPILER_SUPPORTS_LONG=1
+
+ifeq ($(filter __NOR_FLASH_BOOTING__,$(strip $(DEFINES))),)
+  ifdef NEED_BUILD_BOOTLOADER
+    ifeq ($(strip $(NEED_BUILD_BOOTLOADER)),TRUE)
+      COMP_DEFS += __BL_ENABLE__
+      COMP_DEFS += REMAPPING
+    endif
+  endif
+endif
+
+ifeq ($(strip $(ENHANCED_SINGLE_BANK_NOR_FLASH_SUPPORT)),TRUE)
+  COMP_DEFS += REMAPPING
+endif
+INC_DIR += driver/peripheral/inc
+INC_DIR += driver/devdrv/usim/inc
+INC_DIR += driver/devdrv/elm/inc
+INC_DIR += interface/driver/devdrv/cuif/inc
+INC_DIR += interface/driver/sleep_drv \
+           interface/driver/dvfs_drv/$(MD_VER_FOLDER)
+
+INC_DIR += interface/l1/el1/external
+
+INC_DIR += interface/protocol/general \
+           $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/custom
+
+ifneq ($(filter __MIPS_IA__, $(strip $(MODULE_DEFS))),)
+INC_DIR += driver/sys_drv/mmu/inc
+endif
+
+# *************************************************************************
+# From Global include path 
+# *************************************************************************
+INC_DIR += driver/connectivity/usb_driver/inc
+
diff --git a/mcu/make/module/custom/l1/custom_l1.mak b/mcu/make/module/custom/l1/custom_l1.mak
new file mode 100644
index 0000000..b427861
--- /dev/null
+++ b/mcu/make/module/custom/l1/custom_l1.mak
@@ -0,0 +1,166 @@
+INC_DIR =
+COMP_DEFS =
+FOLDER_LIST =
+
+# Define ./interface/modem folder path by project option
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+    MD_VER_FOLDER_PATH = mt6293
+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+    MD_VER_FOLDER_PATH = mt6295
+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)
+    MD_VER_FOLDER_PATH = mt6297
+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)
+    MD_VER_FOLDER_PATH = mt6297p
+else
+    #no match chip
+endif
+
+# Define source file lists to SRC_LIST
+# Define source file folder to FOLDER_LIST
+ifdef RF_MODULE
+  ifneq ($(strip $(RF_MODULE)),NONE)
+    FOLDER_LIST +=custom/l1/gl1_rf/$(strip $(RF_MODULE))
+  endif
+endif
+
+#Multi-Mode RF
+ifdef MM_RF_MODULE
+  ifneq ($(strip $(MM_RF_MODULE)),NONE)
+    FOLDER_LIST += custom/l1/mml1_rf/$(strip $(MM_RF_MODULE))
+    INC_DIR += custom/l1/mml1_rf/$(strip $(MM_RF_MODULE))
+    ifneq ($(filter __MD97__ __MD97P__, $(strip $(MODULE_DEFS))),)	
+    FOLDER_LIST += custom/l1/mml1_devices/$(strip $(MM_DEVICE))
+    INC_DIR += custom/l1/mml1_devices/$(strip $(MM_DEVICE))
+    INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/common
+    INC_DIR += interface/l1/mml1/external/mml1_rf/mmrf_common
+    INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_fe
+    INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_rf
+    INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/sku_mgr
+    INC_DIR += interface/l1/mml1/external/mml1_etdpd
+    INC_DIR += driver/devdrv/digrf_platform/inc
+    endif
+  endif
+endif
+
+ifdef UMTS_RF_MODULE
+  ifneq ($(strip $(UMTS_RF_MODULE)),NONE)
+    FOLDER_LIST += custom/l1/ul1_rf/$(strip $(UMTS_RF_MODULE))
+    INC_DIR += custom/l1/ul1_rf/$(strip $(UMTS_RF_MODULE))
+  endif
+endif
+
+ifdef UMTS_TDD128_RF_MODULE
+  ifneq ($(strip $(UMTS_TDD128_RF_MODULE)),NONE)
+    FOLDER_LIST += custom/l1/tl1_rf/$(strip $(UMTS_TDD128_RF_MODULE))
+    INC_DIR += custom/l1/tl1_rf/$(strip $(UMTS_TDD128_RF_MODULE))
+  endif
+endif
+
+ifdef LTE_RF_MODULE
+  ifneq ($(strip $(LTE_RF_MODULE)),NONE)
+    FOLDER_LIST += custom/l1/el1_rf/$(strip $(LTE_RF_MODULE))
+    INC_DIR += custom/l1/el1_rf/$(strip $(LTE_RF_MODULE))
+    INC_DIR += interface/l1/el1/external/comm/rf_custom/inc
+    INC_DIR += interface/l1/el1/external
+#    FOLDER_LIST += custom/l1/el1_rf/$(strip $(LTE_RF_MODULE))/Toolgen
+    INC_DIR += custom/l1/el1_rf/$(strip $(LTE_RF_MODULE))/Toolgen
+    FOLDER_LIST += custom/l1/el1_rf/$(strip $(LTE_RF_MODULE))/TST_Config
+    INC_DIR += custom/l1/el1_rf/$(strip $(LTE_RF_MODULE))/TST_Config
+  endif
+endif
+
+ifdef C2K_RF_MODULE
+  ifneq ($(strip $(C2K_RF_MODULE)),NONE)
+    #FOLDER_LIST += custom/l1/cl1_rf/$(strip $(C2K_RF_MODULE))
+    INC_DIR += custom/l1/cl1_rf/$(strip $(C2K_RF_MODULE))
+  endif
+endif
+
+ifdef NR_RF_MODULE
+  ifneq ($(strip $(NR_RF_MODULE)),NONE)
+    FOLDER_LIST += custom/l1/nl1_rf/$(strip $(NR_RF_MODULE))
+    INC_DIR += custom/l1/nl1_rf/$(strip $(NR_RF_MODULE))
+    INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/common
+    INC_DIR += interface/l1/mml1/external/mml1_rf/mmrf_common
+    INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_fe
+    INC_DIR += interface/l1/nl1/external
+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)
+    INC_DIR += $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/custom
+    INC_DIR += $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/5g
+endif
+    INC_DIR += interface/l1/nl1/external/4g
+    INC_DIR += interface/l1/nl1/external/5g
+    #INC_DIR += interface/l1/nl1/external/md97/rf_custom
+    INC_DIR += interface/l1/nl1/external
+    #FOLDER_LIST += custom/l1/nl1_rf/$(strip $(NR_RF_MODULE))/Toolgen
+    #INC_DIR += custom/l1/nl1_rf/$(strip $(NR_RF_MODULE))/Toolgen
+    #FOLDER_LIST += custom/l1/nl1_rf/$(strip $(NR_RF_MODULE))/TST_Config
+    #INC_DIR += custom/l1/nl1_rf/$(strip $(NR_RF_MODULE))/TST_Config
+  endif
+endif
+
+#NL1 folder
+FOLDER_LIST += custom/l1/nl1
+
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.c),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.cpp),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.s),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.S),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.dws),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.rec),$(FILE)) \
+)
+
+# Not compile lte_custom_mipi_ref.c , it is tool gen file and included by other file in el1 custom folder
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),lte_custom_mipi_antca.c),,$(file)))
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),lte_custom_mipi_ca.c),,$(file)))
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),lte_custom_mipi_ref.c),,$(file)))
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),lte_custom_mipi_dpd_ref.c),,$(file)))
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),lte_custom_mipi_ant_ref.c),,$(file)))
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),lte_custom_rf_tas_ref.c),,$(file)))
+ifeq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),lte_custom_rf_ant_database.c),,$(file)))
+endif
+SRC_LIST :=  $(call uniq,$(SRC_LIST))
+
+INC_DIR += interface/l1/gl1/internal
+		   
+ifdef RF_MODULE
+  ifneq ($(strip $(RF_MODULE)),NONE)
+    INC_DIR +=custom/l1/gl1_rf/$(strip $(RF_MODULE))
+  endif
+endif
+ifeq ($(filter __MTK_TARGET__,$(strip $(MODULE_DEFS))),)
+  INC_DIR += MoDIS_VC9/drv_sim/include
+endif
+
+INC_DIR :=  $(call uniq,$(INC_DIR))
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS += __UCS2_ENCODING \
+            MMI_ON_HARDWARE_P \
+            APCS_INTWORK \
+            USE_JAM=0 \
+            COMPILER_SUPPORTS_LONG=1
+
+INC_DIR += interface/l1/el1/external
+INC_DIR += interface/l1/cl1/common
+# *************************************************************************
+# From Global include path 
+# *************************************************************************
+
+SRC_RULE_AUTOAMMS_DRDI := wcustomdata.c lte_custom_drdi.c l1d_custom_drdi.c t12193.c mml1_drdi.c
+TARGET_AMMS_DRDI_LIST := interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_list.txt interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_special_symbol_list.txt
+
+NOT_USE_CATEGORY_INCLUDE = TRUE
\ No newline at end of file
diff --git a/mcu/make/module/custom/middleware/custom_middleware.mak b/mcu/make/module/custom/middleware/custom_middleware.mak
new file mode 100644
index 0000000..36bb460
--- /dev/null
+++ b/mcu/make/module/custom/middleware/custom_middleware.mak
@@ -0,0 +1,70 @@
+INC_DIR =
+COMP_DEFS =
+FOLDER_LIST =
+
+# Define source file lists to SRC_LIST
+# Define source file folder to FOLDER_LIST
+#middleware
+FOLDER_LIST += ./custom/middleware/common
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+ifeq ($(strip $(HIF_USB_SUPPORT)),TRUE)
+FOLDER_LIST += ./custom/middleware/common/usbc_custom_mode
+endif
+endif
+#INC_DIR += ./custom/middleware/common/usbc_custom_mode
+ifneq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+  FOLDER_LIST += $(call CUSTOM_FLD_MAPPING,./custom/middleware/meta)
+endif
+
+
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.c),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.cpp),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.s),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.S),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.dws),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.rec),$(FILE)) \
+)
+
+#only in MoDIS
+ifeq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+  ifdef MODIS_TAP_ACCESS
+    ifeq ($(strip $(MODIS_TAP_ACCESS)), CLDMA)
+      MODIS_DIS_FILE += usbc_custom.c
+    endif
+  endif
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),$(call Lower,$(MODIS_DIS_FILE))),,$(file)))
+endif
+
+ 
+SRC_LIST :=  $(call uniq,$(SRC_LIST))
+INC_DIR += driver/audio/med/audio/include
+INC_DIR += driver/sys_drv/cache/inc
+INC_DIR += driver/sys_drv/cache/inc/$(MD_VER_FOLDER)
+
+# ATCI is always needed.
+INC_DIR += custom/protocol/common/atci/include
+
+ifeq ($(filter __MTK_TARGET__,$(strip $(MODULE_DEFS))),)
+  INC_DIR += MoDIS_VC9/drv_sim/include
+endif
+
+INC_DIR :=  $(call uniq,$(INC_DIR))
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS += __UCS2_ENCODING \
+            MMI_ON_HARDWARE_P \
+            APCS_INTWORK \
+            USE_JAM=0 \
+            COMPILER_SUPPORTS_LONG=1
diff --git a/mcu/make/module/custom/protocol/custom_protocol.mak b/mcu/make/module/custom/protocol/custom_protocol.mak
new file mode 100644
index 0000000..82e6ced
--- /dev/null
+++ b/mcu/make/module/custom/protocol/custom_protocol.mak
@@ -0,0 +1,192 @@
+INC_DIR =
+COMP_DEFS =
+FOLDER_LIST =
+
+# Define source file lists to SRC_LIST
+# Define source file folder to FOLDER_LIST
+#modem
+FOLDER_LIST += $(call CUSTOM_FLD_MAPPING,./custom/modem/ps) \
+               custom/protocol/common/atp/src \
+               custom/protocol/common/atci/src \
+               custom/protocol/common/ps \
+               ./custom/modem/common
+
+
+#fdr_reorg
+ifneq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+FOLDER_LIST += custom/protocol/common/ps
+else
+SRC_LIST += custom/protocol/common/ps/custom_em.c \
+            custom/protocol/common/ps/ul1_nvram_def.c
+endif
+
+
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.c),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.cpp),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.s),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.S),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.dws),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.rec),$(FILE)) \
+)
+
+ # Not compile ul1_nvram_def_md93.c/ul1_nvram_def_md95.c
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),ul1_nvram_def_md93.c),,$(file)))  
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),ul1_nvram_def_md95.c),,$(file))) 
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),ul1_nvram_def_md97.c),,$(file)))  
+SRC_LIST :=  $(call uniq,$(SRC_LIST))
+
+ifneq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+  SRC_LIST := $(filter-out custom/protocol/common/ps/custom_eas_config.c,$(SRC_LIST))
+else
+  ## For caband_gen
+  ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+    SRC_LIST += $(strip $(PROJDIR))/custom/modem/eas_caband_tbl/eas_caband_tbl_v2.c
+  else
+    SRC_LIST += $(strip $(MODISPROJDIR))/_BUILD_XGEN/custom/modem/eas_caband_tbl/eas_caband_tbl_v2.c
+  endif
+endif
+
+ifeq ($(filter __L5_SUPPORT__, $(strip $(MODULE_DEFS))),)
+  SRC_LIST := $(filter-out custom/protocol/common/ps/custom_l5.c,$(SRC_LIST))
+  SRC_LIST := $(filter-out custom/protocol/common/ps/custom_l5_at.c,$(SRC_LIST))
+  SRC_LIST := $(filter-out custom/protocol/common/ps/custom_l5_mipc.c,$(SRC_LIST))
+  SRC_LIST := $(filter-out custom/protocol/common/ps/custom_l5_mbci.c,$(SRC_LIST))
+endif
+
+INC_DIR += custom/protocol/common/ps \
+           $(call CUSTOM_FLD_MAPPING,./custom/modem/ps) \
+           protocol/interface/l4misc \
+           protocol/interface/l4 \
+           protocol/layer4/l4/include \
+           protocol/layer4/l4/atci/include \
+           protocol/layer4/l4/l4c/include/common \
+           protocol/layer4/l4/l4c/include/proc \
+           protocol/layer4/l4/csm/cc/include \
+           protocol/layer4/l4/uem/include \
+           protocol/layer4/l4/phb/include \
+           protocol/layer4/l4/csm/cc/include \
+           protocol/layer4/l4/csm \
+           protocol/layer4/l4/tcm/etcm/include \
+           protocol/layer4/l4/smsal/include \
+           protocol/layer4/l4/csm/ss/asn1/gen/include \
+           protocol/layer4/l4/smu/include \
+           protocol/layer4/l4/rac/common/include \
+           protocol/layer4/l4/rac/ugrac/include \
+           protocol/layer4/sim/include \
+           interface/l1/gl1/internal
+
+ifeq ($(strip $(LGE_SECURITY)), TRUE)
+  INC_DIR += custom/modem/lgesecurity
+endif
+		   
+ifdef RF_MODULE
+  ifneq ($(strip $(RF_MODULE)),NONE)
+    INC_DIR +=custom/l1/gl1_rf/$(strip $(RF_MODULE))
+  endif
+endif
+
+ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+  INC_DIR += protocol/layer4/l4/rac/erac/include
+endif
+
+INC_DIR += $(strip $(PROJDIR))/verno \
+           $(strip $(PROJDIR))/nvram_auto_gen
+
+INC_DIR += driver/sys_drv/cache/inc
+INC_DIR += driver/sys_drv/cache/inc/$(MD_VER_FOLDER)
+INC_DIR += service/mtf/inc
+
+# ATCI is always needed.
+INC_DIR += custom/protocol/common/atci/include
+
+# ATP is always needed.
+INC_DIR += custom/protocol/common/atp/include
+
+ifeq ($(filter __MTK_TARGET__,$(strip $(MODULE_DEFS))),)
+  INC_DIR += MoDIS_VC9/drv_sim/include
+endif
+
+INC_DIR :=  $(call uniq,$(INC_DIR))
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS += __UCS2_ENCODING \
+            MMI_ON_HARDWARE_P \
+            APCS_INTWORK \
+            USE_JAM=0 \
+            COMPILER_SUPPORTS_LONG=1
+
+ifneq ($(words $(wildcard $(call CUSTOM_FLD_MAPPING,./custom/modem/ps)/custom_port_setting.c)), 0)
+    COMP_DEFS += __CUSTOMIZED_PORT_SETTING__
+endif
+
+INC_DIR += protocol/interface/ims
+
+INC_DIR += interface/l1/el1/external
+
+INC_DIR += interface/protocol/general
+
+#fdr_reorg
+INC_DIR += interface/protocol/as_c2k/common \
+           custom/protocol/common/ps \
+           interface/l1/cl1/common \
+           interface/protocol/nas_c2k \
+           protocol/interface/general \
+           protocol/interface/iwlan \
+           interface/protocol/as_c2k/1xrtt \
+           interface/protocol/as_c2k/evdo \
+           interface/protocol/l2_c2k/common
+
+INC_DIR += service/kal/common/include
+INC_DIR += service/kal/lib/mlib/include
+INC_DIR += driver/sys_drv/init/inc
+INC_DIR += service/sst/include
+INC_DIR += driver/devdrv/elm/inc
+INC_DIR += interface/driver/sib_drv/scc
+INC_DIR += interface/driver/devdrv/pcie
+
+INC_DIR += protocol/interface/lte
+INC_DIR += protocol/interface/agps
+INC_DIR += protocol/interface/ddm
+ifneq ($(filter __L5_SUPPORT__, $(strip $(MODULE_DEFS))),)
+INC_DIR += interface/protocol/l5/mipc/common
+INC_DIR += interface/protocol/l5/mipc/msg
+INC_DIR += $(strip $(PROJDIR))/modem/mipc/include
+endif
+INC_DIR += interface/driver/dpcopro/custom
+
+INC_DIR += interface/service/icd \
+           interface/service/icd/errc \
+           interface/service/icd/nl1 \
+           interface/service/icd/nl2 \
+           interface/service/icd/el2 \
+           interface/service/icd/el1 \
+           interface/service/icd/event/enas \
+           interface/service/icd/event/errc \
+           interface/service/icd/event/nrrc \
+           interface/service/icd/event/nl2 \
+           interface/service/icd/event/el2 \
+           interface/service/icd/event/nl1 \
+           interface/service/icd/event/el1 \
+           interface/service/icd/event/cm
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+  CATEGORY_INCDIRS += protocol/interface/enl2/el2
+  CATEGORY_INCDIRS += protocol/interface/enl2/en_common
+else ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+  CATEGORY_INCDIRS += protocol/interface/enl2/el2
+  CATEGORY_INCDIRS += protocol/interface/enl2/en_common
+else
+  CATEGORY_INCDIRS += protocol/interface/el2
+endif
diff --git a/mcu/make/module/custom/service/custom_service.mak b/mcu/make/module/custom/service/custom_service.mak
new file mode 100644
index 0000000..f9ed8ac
--- /dev/null
+++ b/mcu/make/module/custom/service/custom_service.mak
@@ -0,0 +1,140 @@
+INC_DIR =
+COMP_DEFS =
+FOLDER_LIST =
+
+# Define ./interface/modem folder path by project option
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+    MD_VER_FOLDER_PATH = mt6293
+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+    MD_VER_FOLDER_PATH = mt6295
+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)
+    MD_VER_FOLDER_PATH = mt6297
+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)
+    MD_VER_FOLDER_PATH = mt6297p
+else
+    #no match chip
+endif
+# Define source file lists to SRC_LIST
+# Define source file folder to FOLDER_LIST
+
+#service
+ifeq ($(strip $(TST_SUPPORT)), TRUE)
+FOLDER_LIST += ./custom/service/tst
+endif
+
+ifneq ($(filter __MTK_TARGET__,$(strip $(MODULE_DEFS))),)
+FOLDER_LIST += ./custom/service/fs
+endif
+
+FOLDER_LIST += ./custom/service/nvram \
+               ./custom/service/common \
+               ./custom/service/mcf \
+               $(strip $(PROJDIR))/nvram_auto_gen
+
+
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.c),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.cpp),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.s),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.S),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.dws),$(FILE)) \
+)
+SRC_LIST += $(foreach DIR,$(FOLDER_LIST), \
+  $(foreach FILE,$(wildcard $(DIR)/*.rec),$(FILE)) \
+)
+
+# Not compile nl1_nvram_def_md97.c
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),nl1_nvram_def_md97.c),,$(file))) 
+# Not compile el1_nvram_def_md93.c/el1_nvram_def_md95.c
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),el1_nvram_def_md93.c),,$(file)))  
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),el1_nvram_def_md95.c),,$(file))) 
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),el1_nvram_def_md97.c),,$(file))) 
+# Not compile mml1_nvram_def_md93.c/mml1_nvram_def_md95.c
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),mml1_nvram_def_md93.c),,$(file)))  
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),mml1_nvram_def_md95.c),,$(file))) 
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),mml1_nvram_def_md97.c),,$(file))) 
+# Not compile mmrfc_nvram_def_md97.c
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),mmrfc_nvram_def_md97.c),,$(file)))
+SRC_LIST :=  $(call uniq,$(SRC_LIST))
+
+ifeq ($(strip $(DHL_SUPPORT)), TRUE)
+SRC_LIST += ./custom/service/tst/dhl_export_config.c
+SRC_LIST += ./custom/service/tst/dhl_custom_set_log_buf.c
+endif
+
+#only in MoDIS
+ifeq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+  MODIS_DIS_FILE := custom_emi.c custom_flash.c usb_custom.c wndrv_configure.c wndrv_rf_ah.c wndrv_rf_maxim.c
+  MODIS_DIS_FILE += custom_flash_norfdm5.c afe.c mal1_create.c kbdmain_joystick.c ERS_api.c ERS_sys.s custom_sfi.c
+  MODIS_DIS_FILE += combo_flash_init.c combo_flash_nor.c
+  SRC_LIST := $(foreach file,$(SRC_LIST),$(if $(filter $(notdir $(call Lower,$(file))),$(call Lower,$(MODIS_DIS_FILE))),,$(file)))
+endif
+
+SRC_LIST :=  $(call uniq,$(SRC_LIST))
+
+INC_DIR +=    ./service/nvram/include \
+              ./service/fs/common/include
+              
+
+# SV5
+INC_DIR += ./service/sys_svc/gfh/public \
+              ./service/sss/interface/inc \
+              ./service/sst/include \
+              ./service/sst/include
+
+ifeq ($(filter __MTK_TARGET__,$(strip $(MODULE_DEFS))),)
+  INC_DIR += MoDIS_VC9/drv_sim/include
+endif
+
+#INC_DIR += ./service/tst/local_inc
+# for customize secure
+INC_DIR += ./interface/service/sys_svc
+
+INC_DIR :=  $(call uniq,$(INC_DIR))
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS += __UCS2_ENCODING \
+            MMI_ON_HARDWARE_P \
+            APCS_INTWORK \
+            USE_JAM=0 \
+            COMPILER_SUPPORTS_LONG=1
+
+ifeq ($(filter __NOR_FLASH_BOOTING__,$(strip $(DEFINES))),)
+  ifdef NEED_BUILD_BOOTLOADER
+    ifeq ($(strip $(NEED_BUILD_BOOTLOADER)),TRUE)
+      COMP_DEFS += __BL_ENABLE__
+      COMP_DEFS += REMAPPING
+    endif
+  endif
+endif
+
+ifeq ($(strip $(ENHANCED_SINGLE_BANK_NOR_FLASH_SUPPORT)),TRUE)
+  COMP_DEFS += REMAPPING
+endif
+INC_DIR += interface/l1/el1/external
+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)
+INC_DIR += $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/custom
+INC_DIR += $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/5g
+endif
+INC_DIR += interface/l1/nl1/external/4g
+INC_DIR += interface/l1/nl1/external/5g
+INC_DIR += interface/protocol/general
+#fdr_reorg
+INC_DIR += interface/protocol/as_c2k/common \
+           interface/service/sbp \
+           interface/l1/cl1/common \
+           interface/protocol/nas_c2k \
+           interface/protocol/as_c2k/1xrtt \
+           interface/protocol/as_c2k/evdo \
+           interface/protocol/l2_c2k/common
+
+INC_DIR += interface/service/mcf
diff --git a/mcu/make/module/driver/audio/extern/audio.mak b/mcu/make/module/driver/audio/extern/audio.mak
new file mode 100644
index 0000000..642f963
--- /dev/null
+++ b/mcu/make/module/driver/audio/extern/audio.mak
@@ -0,0 +1,288 @@
+# Define source file folder to SRC_LIST
+# ifeq ($(strip $(DSP_SOLUTION)),DUALMACDSP)
+# AUDFOLDER = driver/audio/src/v2
+#   AUD_SOLUTION      =  V2
+# else   
+   AUDFOLDER = driver/audio/src/v1
+   AUD_SOLUTION      =  V1
+# endif
+
+######################################################
+#                Temp solution                       #
+######################################################
+#SRC_LIST = $(strip $(AUDFOLDER))/dummy_audio.c \
+#           $(strip $(AUDFOLDER))/L/dummy_audio_L.c
+
+
+######################################################
+#     Should remove first "#  " for normal mode      #
+######################################################
+  ##ifeq ($(strip $(GERAN_MODE_SUPPORT)),NONE)
+  ifneq ($(strip $(TEST_LOAD_TYPE)),NONE)
+    SRC_LIST = $(strip $(AUDFOLDER))/dummy_audio.c \
+               $(strip $(AUDFOLDER))/L/dummy_audio_L.c
+  else
+  
+    ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+      ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+        SRC_LIST = $(strip $(CUS_MTK_REL))/dhl/l1trace/l1audio_trace_utmd.c
+		SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/l1audio_voc_utmd.c
+      else
+        SRC_LIST = $(strip $(CUS_MTK_REL))/tst/l1trace/l1audio_trace_utmd.c
+		SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/l1audio_voc_utmd.c
+      endif
+    else
+      SRC_LIST = $(strip $(CGEN_L1_OUTDIR))/l1audio_trace_utmd.c
+	  SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/l1audio_voc_utmd.c
+    endif
+    
+    # Start Define source file lists to SRC_LIST
+    # Common part in v1 and v2
+    SRC_LIST += $(strip $(AUDFOLDER))/am.c \
+                $(strip $(AUDFOLDER))/audio_service.c \
+                $(strip $(AUDFOLDER))/l1audio_sph_srv.c \
+                $(strip $(AUDFOLDER))/media.c \
+                $(strip $(AUDFOLDER))/extcodec.c \
+                $(strip $(AUDFOLDER))/pcm4way.c \
+                $(strip $(AUDFOLDER))/sp_drv.c \
+                $(strip $(AUDFOLDER))/vm.c \
+                $(strip $(AUDFOLDER))/sp_cc.c \
+                driver/audio/src/audio_create.c \
+                $(strip $(AUDFOLDER))/sp_c2k.c \
+                $(strip $(AUDFOLDER))/speech_service.c \
+                $(strip $(AUDFOLDER))/sp_dsptone_drv.c \
+                $(strip $(AUDFOLDER))/L/am_L.c
+    
+    # AFE part
+    AFE_SPLIT_DRIVER_PLATFORM  = MT6763 MT6739 MT6771 MT6761 MT6295M MT6765 __MD95__ __MD97__ __MD97P__
+    ifneq ($(filter $(strip $(MODULE_DEFS)), $(AFE_SPLIT_DRIVER_PLATFORM)),)
+      SRC_LIST +=  $(strip $(AUDFOLDER))/afe_common.c \
+
+      ifeq ($(strip $(PLATFORM)),MT2735)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6297.c
+      endif
+
+      ifeq ($(strip $(PLATFORM)),MT6890)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6297.c
+      endif
+
+      ifeq ($(strip $(PLATFORM)),MT6880)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6297.c
+      endif
+
+      ifeq ($(strip $(PLATFORM)),MERCURY)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6298.c
+      endif
+      
+      ifeq ($(strip $(PLATFORM)),MT6885)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6885.c
+      endif
+
+      ifeq ($(strip $(PLATFORM)),MT6833)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6885.c
+      endif
+
+      ifeq ($(strip $(PLATFORM)),MT6877)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6885.c
+      endif
+
+      ifeq ($(strip $(PLATFORM)),MT6873)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6885.c
+      endif
+
+      ifeq ($(strip $(PLATFORM)),MT6853)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6885.c
+      endif
+
+	  ifeq ($(strip $(PLATFORM)),MT6893)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6885.c
+      endif
+
+      ifeq ($(strip $(PLATFORM)),MT6763)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6763.c
+      endif
+
+      ifeq ($(strip $(PLATFORM)),MT6739)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6739.c
+      endif 
+      ifeq ($(strip $(PLATFORM)),MT6779)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6779.c
+      endif        
+      ifeq ($(strip $(PLATFORM)),MT6761)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6761.c
+      endif
+       
+      ifeq ($(strip $(PLATFORM)),MT6771)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6771.c
+      endif
+  
+      ifeq ($(strip $(PLATFORM)),MT6295M)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6295M.c
+      endif
+  
+      ifeq ($(strip $(PLATFORM)),MT3967)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6295M.c
+      endif
+            
+      ifeq ($(strip $(PLATFORM)),MT6785)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6295M.c
+      endif
+            
+      ifeq ($(strip $(PLATFORM)),MT6765)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6765.c
+      endif          
+       
+      ifeq ($(strip $(PLATFORM)),MT6297)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6297.c
+      endif     
+      
+      ifeq ($(strip $(PLATFORM)),MT6297P)
+        SRC_LIST += $(strip $(AUDFOLDER))/afes/afe_6297.c
+      endif   
+    else
+      SRC_LIST +=  $(strip $(AUDFOLDER))/afe2.c
+    endif
+    
+    
+    # By Feature
+    ifneq ($(filter __ENABLE_SPEECH_DVT__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST +=  $(strip $(AUDFOLDER))/speech_dvt.c
+    endif
+    
+    ifneq ($(filter __DATA_CARD_SPEECH__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST +=  $(strip $(AUDFOLDER))/sp_strm_drv.c
+    endif
+    
+    ifneq ($(filter __CVSD_CODEC_SUPPORT__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST +=  $(strip $(AUDFOLDER))/bt_sco_drv.c                                                         
+    endif
+    
+    ifneq ($(filter __ECALL_SUPPORT__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += $(strip $(AUDFOLDER))/eCall_drv.c
+    endif
+    
+    
+    ifeq ($(strip $(AUD_SOLUTION)),V1)
+      SRC_LIST += $(strip $(AUDFOLDER))/audio_idma.c \
+                  $(strip $(AUDFOLDER))/sp_enhance.c \
+                  $(strip $(AUDFOLDER))/sp_daca.c \
+                  $(strip $(AUDFOLDER))/pcmRouter.c \
+                  $(strip $(AUDFOLDER))/ExtBgSnd.c \
+                  $(strip $(AUDFOLDER))/rawpcmrec_drv.c \
+                  $(strip $(AUDFOLDER))/sp_gain.c \
+                  $(strip $(AUDFOLDER))/PcmMixer2.c \
+                  $(strip $(AUDFOLDER))/PcmMixer3.c
+      ifneq ($(strip $(SMART_PHONE_CORE)),NONE)
+        SRC_LIST += $(strip $(AUDFOLDER))/wm8904_config.c
+        ifneq ($(strip $(SMART_PHONE_CORE)),MODEM_ONLY)
+          SRC_LIST += $(strip $(AUDFOLDER))/spc_drv.c \
+  #                   $(strip $(AUDFOLDER))/spc_io.c                                      
+        else
+#          SRC_LIST += $(strip $(AUDFOLDER))/apAudSysConfig.c
+        endif 
+      endif
+    endif
+    
+    ifeq ($(strip $(AUD_SOLUTION)),V2)
+      SRC_LIST +=  $(strip $(AUDFOLDER))/vm_drv.c
+      ifneq ($(strip $(SMART_PHONE_CORE)),NONE)
+        SRC_LIST += $(strip $(AUDFOLDER))/spc_drv.c
+      endif
+    endif
+    
+    ifneq ($(filter __VOLTE_SUPPORT__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += $(strip $(AUDFOLDER))/sp_ps.c
+      SRC_LIST += $(strip $(AUDFOLDER))/sp_ps_codec_amr.c
+      SRC_LIST += $(strip $(AUDFOLDER))/sp_ps_codec_evs.c
+      SRC_LIST += $(strip $(AUDFOLDER))/sp_ps_codec_g.c
+      SRC_LIST += $(strip $(AUDFOLDER))/sp_ps_dsp_opt.c
+      SRC_LIST += $(strip $(AUDFOLDER))/sp_ps_aam.c
+      SRC_LIST += $(strip $(AUDFOLDER))/sp_ps_aamp.c
+
+      ifneq ($(filter __MCU_DTMF_SUPPORT__, $(strip $(MODULE_DEFS))),)   
+        SRC_LIST += $(strip $(AUDFOLDER))/VoLTETone.c     
+      endif   
+      #ifneq ($(filter __G_CODEC_SUPPORT__, $(strip $(MODULE_DEFS))),)   
+        SRC_LIST += $(strip $(AUDFOLDER))/pcmrb.c
+        SRC_LIST += $(strip $(AUDFOLDER))/streamrb.c
+      #endif   
+    endif
+    
+    ifneq ($(filter __UMTS_RAT__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += $(strip $(AUDFOLDER))/amr_table.c \
+                  $(strip $(AUDFOLDER))/sp_3g.c
+    else
+      ifneq ($(filter __UMTS_TDD128_MODE__, $(strip $(MODULE_DEFS))),)
+        SRC_LIST += $(strip $(AUDFOLDER))/amr_table.c \
+                    $(strip $(AUDFOLDER))/sp_3g.c
+      endif
+    endif
+    
+  #  ifneq ($(filter BGSND_ENABLE, $(strip $(MODULE_DEFS))),)
+  #    ifeq ($(strip $(AUD_SOLUTION)),V1)
+  #      SRC_LIST += $(strip $(AUDFOLDER))/ExtBgSnd.c
+  #    endif
+  #    ifeq ($(strip $(AUD_SOLUTION)),V2)
+  #      SRC_LIST += $(strip $(AUDFOLDER))/snd_effect.c
+  #    endif
+  #  endif
+    
+    ifneq ($(filter __CTM_SUPPORT__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += $(strip $(AUDFOLDER))/ctm_drv.c
+    endif
+  
+  endif
+
+#  Define include path lists to INC_DIR
+INC_DIR = $(strip $(AUDFOLDER)) \
+          $(strip $(AUDFOLDER))/inc \
+          interface/driver/audio \
+          driver/audio/src32_inc \
+          driver/audio/lib/MTKINC \
+          driver/sys_drv/init/inc \
+          interface/driver/peripheral \
+          ./interface/sap \
+          ./interface/sap/md \
+          interface/driver/devdrv/mdipc \
+          ./custom/driver/common \
+          interface/driver/sleep_drv \
+          interface/protocol/general \
+          interface/driver/sys_drv \
+          ./interface/service/dhl \
+          interface/driver/devdrv/cuif/inc \
+          ./interface/service/dhl \
+          interface/l1/cl1/rfd
+
+#ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+INC_DIR += interface/protocol/enl2
+#else
+#INC_DIR += protocol/interface/el2
+#endif
+
+INC_DIR += interface/sap/md
+INC_DIR += interface/protocol/3g/csr
+
+# solution for 93/95 co-codebase re-arch for R3 auto-sync to UMOLYA TRUNK
+ifneq ($(wildcard interface/driver/dvfs_drv),)
+  INC_DIR += interface/driver/dvfs_drv/$(MD_VER_FOLDER)
+else
+  INC_DIR += driver/sleep_drv/public/inc
+endif
+
+ifneq ($(filter __CENTRALIZED_SLEEP_MANAGER__, $(strip $(MODULE_DEFS))),)
+  INC_DIR += driver/sleep_drv/public/inc
+endif
+ 
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = APCS_INTWORK
+ 
+# Define the source file search paths to SRC_PATH
+SRC_PATH += $(strip $(AUDFOLDER))
+SRC_PATH += $(strip $(AUDFOLDER))/afes
+SRC_PATH += $(strip $(AUDFOLDER))/inc
+SRC_PATH += driver/audio/src
+
+#fdr_reorg
+INC_DIR += interface/l1/cl1/common \
+           interface/protocol/nas_c2k \
+           interface/protocol/l2_c2k/1xrtt
diff --git a/mcu/make/module/driver/datapath/pciedev.mak b/mcu/make/module/driver/datapath/pciedev.mak
new file mode 100644
index 0000000..ad36484
--- /dev/null
+++ b/mcu/make/module/driver/datapath/pciedev.mak
@@ -0,0 +1,33 @@
+#ifeq ($(strip $(HIF_PCIE_SUPPORT)),TRUE)
+##############################################################################
+#                             pcie part                                      #
+##############################################################################
+ifneq ($(filter __PCIE_AT__, $(COM_DEFS)),)
+INC_DIR +=   driver/drvtest/hif/pcie_at/inc \
+             driver/hif/inc/hif_mhccifdev/
+endif
+
+INC_DIR +=   driver/devdrv/common/inc \
+             driver/hif/inc/hif_pciedev/  \
+             driver/hif/inc/ \
+             interface/driver/hif/hif_pciedev \
+             interface/driver/devdrv/pcie/ \
+             driver/hif/src/hif_pciedev/ \
+             interface/driver/peripheral/ \
+             interface/driver/hif/hif_mhccifdev/ \
+             interface/driver/devdrv/us_counter/ \
+             interface/service/hif/
+
+SRC_LIST +=  driver/hif/src/hif_pciedev/hif_pcie.c  \
+             driver/hif/src/hif_pciedev/drv_pciedev.c \
+             driver/hif/src/hif_pciedev/pcie_i2c.c 
+
+COMP_DEFS += 
+
+SRC_PATH +=  driver/hif/src/hif_pciedev
+
+ifeq ($(strip $(HIF_PCIE_DETECT)),TRUE)
+COMP_DEFS += __HIF_PCIE_DETECT__
+endif
+
+#endif
diff --git a/mcu/make/module/driver/driver_config.mak b/mcu/make/module/driver/driver_config.mak
new file mode 100644
index 0000000..6e1c426
--- /dev/null
+++ b/mcu/make/module/driver/driver_config.mak
@@ -0,0 +1,20 @@
+ifeq ($(strip $(RTOS)),MERTOS)

+  CATEGORY_INCDIRS += ./service/mertos/include

+  CATEGORY_INCDIRS += ./service/kal/common/include

+  CATEGORY_INCDIRS += ./service/kal/os/mertos/include

+  CATEGORY_INCDIRS += ./service/kal/lib/mlib/include

+endif

+

+

+# *************************************************************************

+# From Global include path 

+# *************************************************************************

+CATEGORY_INCDIRS += driver/sys_drv/init/inc

+

+CATEGORY_DEFS += 

+

+ifeq ($(strip $(LTO_BUILD)),TRUE)

+  ifeq ($(strip $(NO_LTO)),)

+      CFLAGS += -flto -fno-fat-lto-objects

+  endif

+endif

diff --git a/mcu/make/module/driver/legacy/bmt.mak b/mcu/make/module/driver/legacy/bmt.mak
new file mode 100644
index 0000000..5f9c3f9
--- /dev/null
+++ b/mcu/make/module/driver/legacy/bmt.mak
@@ -0,0 +1,19 @@
+# Define source file lists to SRC_LIST

+SRC_LIST = driver/peripheral/src/bmt.c \
+driver/peripheral/src/bmt_create.c \

+driver/peripheral/src/bmt_main.c \

+driver/peripheral/src/bmtutil.c \

+driver/peripheral/src/dcl_bmt.c \

+driver/peripheral/src/bmt_ext_charger.c \

+driver/peripheral/src/bmt_ext_cable_fac_if.c

+

+#  Define include path lists to INC_DIR

+INC_DIR = driver/peripheral/inc \
+          driver/drv/include \
+          driver/peripheral/inc
+

+# Define the specified compile options to COMP_DEFS

+COMP_DEFS = BMT_KAL_DEBUG

+

+# Define the source file search paths to SRC_PATH

+SRC_PATH = driver/peripheral/src
diff --git a/mcu/make/module/driver/legacy/extern/mtd.mak b/mcu/make/module/driver/legacy/extern/mtd.mak
new file mode 100644
index 0000000..b04a6e2
--- /dev/null
+++ b/mcu/make/module/driver/legacy/extern/mtd.mak
@@ -0,0 +1,73 @@
+# Define source file lists to SRC_LIST
+# flash_mtd.c is necessary for L1 to call NOR_GetReturnReadyLatency
+SRC_LIST = driver/storage/flash/mtd/src/flash_mtd.c
+
+ifeq ($(strip $(SERIAL_FLASH_SUPPORT)),TRUE)
+    SRC_LIST += driver/storage/flash/mtd/src/mtd_dal_spi.c \
+                	     driver/storage/flash/mtd/src/drv_spi.c
+    ifeq ($(strip $(FLASH_TEST_SELECT)),NOR_FLASH)
+      SRC_LIST += driver/storage/flash/mtd/src/flash_mtd_sf_ut.c
+    endif
+endif
+
+# NOR/SF driver
+ifeq ($(filter _NAND_FLASH_BOOTING_, $(strip $(MODULE_DEFS))),)
+ifeq ($(filter __EMMC_BOOTING__, $(strip $(MODULE_DEFS))),)
+  SRC_LIST += \
+              driver/storage/flash/mtd/src/flash_mtd.ramdisk.c \
+              driver/storage/flash/mtd/src/flash_cfi.c \
+              driver/storage/flash/mtd/src/flash_disk.c \
+              driver/storage/flash/mtd/src/flash_mtd_pf_dal.c \
+              driver/storage/flash/mtd/src/flash_mtd.amd.c \
+              driver/storage/flash/mtd/src/flash_mtd.intel.c
+  ifneq ($(filter __SERIAL_FLASH_EN__, $(strip $(MODULE_DEFS))),)
+    #SRC_LIST += \
+                #driver/storage/flash/mtd/src/flash_mtd_sf_common.c \
+                #driver/storage/flash/mtd/src/flash_mtd_sf_dal.c \
+                #driver/storage/flash/mtd/src/flash_mtd_sf_ut.c
+  endif
+endif
+endif
+
+ifeq ($(strip $(NAND_SUPPORT)),TRUE)
+# NAND driver build condition
+SRC_LIST += driver/storage/flash/mtd/src/NAND_MTD.c \
+            driver/storage/flash/mtd/src/flash_user.c
+endif
+# #if ( defined(__NAND_FDM_50__) && (defined(__NFI_VERSION2__)||defined(__NFI_VERSION3_1__)) )
+ifneq ($(filter __NAND_FDM_50__, $(strip $(MODULE_DEFS))),)
+  ifneq ($(filter __NFI_VERSION2__, $(strip $(MODULE_DEFS))),)
+    SRC_LIST += driver/storage/flash/mtd/src/NAND_DAL.c
+    SRC_LIST += driver/storage/flash/mtd/src/NAND_MTD_FDM50.c
+    SRC_LIST += driver/storage/flash/mtd/src/NAND_DevConfig.c
+  else 
+     ifneq ($(filter __NFI_VERSION3_1__, $(strip $(MODULE_DEFS))),)
+       SRC_LIST += driver/storage/flash/mtd/src/NAND_DAL.c
+       SRC_LIST += driver/storage/flash/mtd/src/NAND_MTD_FDM50.c
+       SRC_LIST += driver/storage/flash/mtd/src/NAND_DevConfig.c
+       SRC_LIST += driver/storage/flash/mtd/src/NAND_MTD_DRV.c
+     endif
+  endif
+endif
+
+#  RAM Disk for smartphone modem-only projects
+ifneq ($(filter __FS_RAMDISK__, $(strip $(MODULE_DEFS))),)
+  SRC_LIST += driver/storage/flash/mtd/src/flash_mtd.ramdisk.c
+endif
+
+#  Define include path lists to INC_DIR
+INC_DIR = ./service/sss/interface/inc \
+          ./service/sst/include \
+          driver/storage/flash/fdm/inc \
+          driver/storage/flash/mtd/inc \
+          driver/peripheral/inc \
+          ./service/fs/common/include \
+          ./service/sys_svc/gfh/public \
+          driver/devdrv/common/inc
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = 
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = driver/storage/flash/mtd/src
+
diff --git a/mcu/make/module/driver/legacy/peripheral.mak b/mcu/make/module/driver/legacy/peripheral.mak
new file mode 100644
index 0000000..c239ec7
--- /dev/null
+++ b/mcu/make/module/driver/legacy/peripheral.mak
@@ -0,0 +1,142 @@
+# Define source file lists to SRC_LIST

+SRC_LIST = driver/peripheral/src/dcl_rtc.c \
+		   driver/peripheral/src/dcl_aux.c \
+		   driver/peripheral/src/auxmain.c \
+		   driver/peripheral/src/i2c.c \
+		   driver/peripheral/src/rtc.c \
+		   driver/peripheral/src/drv_comm.c \
+		   driver/peripheral/src/drv_hisr.c \
+		   driver/peripheral/src/lpwr.c \
+       driver/peripheral/src/dcl_gpio.c \
+       driver/peripheral/src/dcl_i2c.c \
+       driver/peripheral/src/dcl_wdt.c \
+       driver/peripheral/src/dcl_gpt.c \
+       driver/peripheral/src/dcl_gpt_hw.c \
+       driver/peripheral/src/dcl_pwm.c \
+       driver/peripheral/src/dcl_adc.c \
+       driver/peripheral/src/adc.c \
+       driver/peripheral/src/adcmeasure.c \
+       driver/peripheral/src/adcsche.c \
+       driver/peripheral/src/gpio.c \
+       driver/peripheral/src/wdt.c \
+       driver/peripheral/src/pwm.c \
+       driver/peripheral/src/dcl_15_segment.c \
+       driver/peripheral/src/alerter.c \
+       driver/peripheral/src/dcl_chr_det.c \
+       driver/peripheral/src/dcl_pmu.c \
+       driver/peripheral/src/dcl_pmu_common.c \
+       driver/peripheral/src/dcl_pw.c \
+       driver/peripheral/src/kbdmain.c\
+       driver/peripheral/src/DclS_kbd.c\
+       driver/peripheral/src/DclH_kbd.c\
+       driver/peripheral/src/dbgprint.c\
+       driver/peripheral/src/Dcl_SeriPortDrv.c\
+       driver/peripheral/src/uart.c\
+       driver/peripheral/src/uart_vfifo.c\
+       driver/peripheral/src/uart_handler.c\
+       driver/peripheral/src/i2c_dual.c \
+       driver/peripheral/src/spi.c \
+       driver/peripheral/src/spi_hal.c \
+       driver/peripheral/src/hif_v2.c \
+       driver/peripheral/src/dcl_hts.c \
+       driver/peripheral/src/dcl_sts.c \
+       driver/peripheral/src/f32k_clk.c \
+       driver/peripheral/src/dcl_f32k_clk.c \
+       driver/peripheral/src/nli_arb.c\
+       driver/peripheral/src/gpio_setting.c
+# accdet

+ifneq ($(filter __ACCDET_SUPPORT__, $(strip $(MODULE_DEFS))),)

+  ifeq ($(filter __L1_STANDALONE__, $(strip $(MODULE_DEFS))),)

+    SRC_LIST += driver/peripheral/src/accdet.c
+  endif

+endif

+ifneq ($(filter __ACCDET_HYBRID_SOLUTION_SUPPORT__, $(strip $(MODULE_DEFS))),)

+  ifeq ($(filter __L1_STANDALONE__, $(strip $(MODULE_DEFS))),)

+    SRC_LIST += driver/peripheral/src/accdet.c
+  endif

+endif

+

+

+# PMU

+ifeq ($(strip $(PMIC)),MT6235PMU)

+   SRC_LIST += driver/peripheral/src/dcl_pmu6235.c
+endif

+ifneq ($(filter MT6236PMU MT6921PMU, $(strip $(PMIC))),)

+   SRC_LIST += driver/peripheral/src/dcl_pmu6236.c
+   SRC_LIST += driver/peripheral/src/pmic_MT6236PMU_drv.c
+endif

+ifeq ($(strip $(PMIC)),MT6253PMU)

+   SRC_LIST += driver/peripheral/src/dcl_pmu6253.c
+endif

+ifeq ($(strip $(PMIC)),MT6326_CCCI)

+   SRC_LIST += driver/peripheral/src/dcl_pmic6326_ccci.c
+endif

+ifeq ($(strip $(PMIC)),MT6326)

+   SRC_LIST += driver/peripheral/src/dcl_pmic6326.c
+endif

+ifeq ($(strip $(PMIC)),MT6251PMU)

+   SRC_LIST += driver/peripheral/src/dcl_pmu6251.c
+   SRC_LIST += driver/peripheral/src/pmic_MT6251PMU_drv.c
+endif

+ifeq ($(strip $(PMIC)),MT6252PMU)

+   SRC_LIST += driver/peripheral/src/dcl_pmu6252.c
+endif

+ifeq ($(strip $(PMIC)),MT6253ELPMU)

+   SRC_LIST += driver/peripheral/src/dcl_pmu6252.c
+endif

+ifeq ($(strip $(PMIC)),MT6256PMU)

+   SRC_LIST += driver/peripheral/src/dcl_pmu6256.c \
+   			   driver/peripheral/src/dcl_pmu6256_init.c
+endif

+ifeq ($(strip $(PMIC)),MT6255PMU)

+   SRC_LIST += driver/peripheral/src/dcl_pmu6255.c \
+   			   driver/peripheral/src/dcl_pmu6255_init.c
+endif

+ifeq ($(strip $(PMIC)),MT6276PMU)

+   SRC_LIST += driver/peripheral/src/dcl_pmu6276.c
+   SRC_LIST += driver/peripheral/src/pmic_MT6276PMU_drv.c
+endif

+ifeq ($(strip $(PMIC)),MT6573PMU)

+   SRC_LIST += driver/peripheral/src/dcl_pmu6573.c
+endif

+ifeq ($(strip $(PMIC)),MT6329)

+   SRC_LIST += driver/peripheral/src/dcl_pmic6329.c \
+			  driver/peripheral/src/dcl_pmic6329_init.c
+endif

+ifeq ($(strip $(PMIC)),MT6327)

+   SRC_LIST += driver/peripheral/src/dcl_pmic6327.c \
+			  driver/peripheral/src/dcl_pmic6327_init.c \
+			  driver/peripheral/src/i2c_pmic.c
+endif

+

+ifneq ($(filter __DMA_UART_VIRTUAL_FIFO__, $(strip $(MODULE_DEFS))),)

+	SRC_LIST += driver/peripheral/src/uart_vfifo.c
+endif

+

+# HIF

+# for HQA HIF/NFI concurrency test

+ifneq ($(filter __NAND_FLASH_HARDWARE_TEST__, $(strip $(MODULE_DEFS))),)

+    ifneq ($(filter __MAUI_BASIC__, $(strip $(MODULE_DEFS))),)

+      SRC_LIST += driver/peripheral/src/hif_v2_test.c
+    endif

+endif       

+

+COMP_DEFS += DRV_HTS_OFF

+COMP_DEFS += DRV_STS_OFF

+

+

+# Define include path lists to INC_DIR

+INC_DIR =  \

+          driver/peripheral/inc \
+          interface/driver/connectivity/usb_driver \
+          driver/connectivity/usb_driver/inc \
+          driver/drv/include \
+          ./custom/driver/drv/ast \
+          $(strip $(BUILD_CODEGENDIR)) \

+         $(call CUSTOM_FLD_MAPPING,./custom/driver/drv/misc_drv)
+# Define the specified compile options to COMP_DEFS

+COMP_DEFS = __DRV_COMM_INIT_DEINIT__

+

+# Define the source file search paths to SRC_PATH

+SRC_PATH = driver/peripheral/src
+

diff --git a/mcu/make/module/driver/legacy/sdio_device.mak b/mcu/make/module/driver/legacy/sdio_device.mak
new file mode 100644
index 0000000..1d8a9f7
--- /dev/null
+++ b/mcu/make/module/driver/legacy/sdio_device.mak
@@ -0,0 +1,20 @@
+SRC_LIST = driver/connectivity/sdio_device/src/sdio_custom.c \
+    	   driver/connectivity/sdio_device/src/sdio_hw.c \
+		   driver/connectivity/sdio_device/src/sdio_queue.c \
+		   driver/connectivity/sdio_device/src/sdio_fw.c \
+		   driver/connectivity/sdio_device/src/sdio_interrupt.c \
+		   driver/connectivity/sdio_device/src/sdio_test_util.c
+

+

+#  Define include path lists to INC_DIR

+INC_DIR = interface/driver/drv_def \
+          driver/connectivity/sdio_device/inc \
+          driver/regbase/inc \
+          driver/sleep_drv
+

+

+# Define the specified compile options to COMP_DEFS

+COMP_DEFS =

+

+# Define the source file search paths to SRC_PATH

+SRC_PATH = driver/connectivity/sdio_device/src
diff --git a/mcu/make/module/driver/legacy/sim_driver.mak b/mcu/make/module/driver/legacy/sim_driver.mak
new file mode 100644
index 0000000..46a52ee
--- /dev/null
+++ b/mcu/make/module/driver/legacy/sim_driver.mak
@@ -0,0 +1,27 @@
+# Define source file lists to SRC_LIST

+SRC_LIST = driver/storage/sim/src/dcl_sim.c \
+		   driver/storage/sim/src/icc_sim_common_mtk.c \
+		   driver/storage/sim/src/icc_switchControl0.c \
+		   driver/storage/sim/src/icc_switchControl1.c \
+		   driver/storage/sim/src/icc_switchControl2.c \
+		   driver/storage/sim/src/icc_switchControl_al.c \
+		   driver/storage/sim/src/icc_switchControl_mtk_0.c \
+		   driver/storage/sim/src/icc_switchControl_mtk_1.c \
+		   driver/storage/sim/src/MT6302_SPI.c
+

+

+

+#  Define include path lists to INC_DIR

+INC_DIR = driver/drv/include \
+          driver/storage/sim/inc \
+          ./service/sst/include \
+          ./service/ssf/inc \
+		  interface/driver/regbase
+

+

+# Define the specified compile options to COMP_DEFS

+COMP_DEFS =

+

+# Define the source file search paths to SRC_PATH

+SRC_PATH = driver/storage/sim/src
+

diff --git a/mcu/make/module/driver/legacy/usb.mak b/mcu/make/module/driver/legacy/usb.mak
new file mode 100644
index 0000000..37a1017
--- /dev/null
+++ b/mcu/make/module/driver/legacy/usb.mak
@@ -0,0 +1,94 @@
+# Define source file lists to SRC_LIST

+SRC_LIST = driver/connectivity/usb_class/src/usb.c \
+           driver/connectivity/usb_class/src/usb_adap.c \
+           driver/connectivity/usb_class/src/usb_resource.c \
+           driver/connectivity/usb_class/src/usb_mode.c \
+           driver/connectivity/usb_class/src/usb_task.c \
+           driver/connectivity/usb_class/src/usb_debug_tool.c
+

+

+# USB LOGGING

+ifneq ($(filter __USB_LOGGING__,$(strip $(MODULE_DEFS))),)

+SRC_LIST +=driver/connectivity/usb_class/src/usbacm_logging.c
+endif

+           

+ 

+# USB CDC ACM CLASS

+ifneq ($(filter __USB_COM_PORT_ENABLE__,$(strip $(MODULE_DEFS))),)

+SRC_LIST +=driver/connectivity/usb_class/src/usbacm_drv.c \
+           driver/connectivity/usb_class/src/usbacm_adap.c \
+           driver/connectivity/usb_class/src/usbacm_ft.c
+endif

+

+

+# USB STRESS TEST 

+ifneq ($(filter __USB_STRESS_TEST__,$(strip $(MODULE_DEFS))),)

+SRC_LIST +=driver/connectivity/usb_class/src/usbacm_echo.c
+endif

+

+

+# USB MASS STORAGE CLASS

+ifneq ($(filter __USB_MASS_STORAGE_ENABLE__,$(strip $(MODULE_DEFS))),)

+SRC_LIST +=driver/connectivity/usb_class/src/usbms_drv.c \
+           driver/connectivity/usb_class/src/usbms_adap.c \
+           driver/connectivity/usb_class/src/usbms_state.c
+endif

+

+

+

+# USB MTP CLASS

+ifneq ($(filter __USB_IMAGE_CLASS__,$(strip $(MODULE_DEFS))),)

+SRC_LIST +=driver/connectivity/usb_class/src/ptp_state.c \
+           driver/connectivity/usb_class/src/usbimage_drv.c \
+           driver/connectivity/usb_class/src/usbimage_mtp_state.c
+endif

+

+

+

+# USB WEBCAM CLASS

+ifneq ($(filter WEBCAM_SUPPORT,$(strip $(MODULE_DEFS))),)

+SRC_LIST +=driver/connectivity/usb_class/src/usbvideo_drv.c \
+           driver/connectivity/usb_class/src/usbvideo_state.c
+endif

+

+

+

+# USB OTG

+ifneq ($(filter __OTG_ENABLE__,$(strip $(MODULE_DEFS))),)

+SRC_LIST +=driver/connectivity/usb_class/src/usbd.c \
+           driver/connectivity/usb_class/src/usb_host_default_drv.c \
+           driver/connectivity/usb_class/src/usb_host_ms_drv.c \
+           driver/connectivity/usb_class/src/usb_host_ms_state.c \
+           driver/connectivity/usb_class/src/usb_host_ms_adap.c \
+           driver/connectivity/usb_class/src/usb_host_acm_drv.c \
+           driver/connectivity/usb_class/src/otg.c
+endif

+

+

+

+# ICUSB

+ifneq ($(filter __IC_USB_ENABLE__,$(strip $(MODULE_DEFS))),)

+SRC_LIST +=driver/connectivity/usb_class/src/icusb_debug_tool.c \
+           driver/connectivity/usb_class/src/icusb_eem_adap.c \
+           driver/connectivity/usb_class/src/icusb_eem_drv.c \
+           driver/connectivity/usb_class/src/icusb_iccd_adap.c \
+           driver/connectivity/usb_class/src/icusb_iccd_drv.c
+endif

+

+

+

+

+# Define include path lists to INC_DIR

+INC_DIR = driver/connectivity/usb_driver/inc \
+          driver/connectivity/usb_class/include \
+          interface/driver/connectivity/usb_driver \
+          ./service/fs/common/include \
+          protocol/layer4/l4/include \
+          interface/driver/peripheral \
+          driver/dsp_ram
+# Define the specified compile options to COMP_DEFS

+COMP_DEFS = APCS_INTWOR

+ 

+# Define the source file search paths to SRC_PATH

+SRC_PATH = driver/connectivity/usb_class/src
+ 

diff --git a/mcu/make/module/driver/legacy/usb_driver.mak b/mcu/make/module/driver/legacy/usb_driver.mak
new file mode 100644
index 0000000..3a3a06d
--- /dev/null
+++ b/mcu/make/module/driver/legacy/usb_driver.mak
@@ -0,0 +1,57 @@
+# Define source file lists to SRC_LIST

+SRC_LIST = driver/connectivity/usb_driver/src/usb_phy_drv.c \
+           driver/connectivity/usb_driver/src/upll_ctrl.c \
+           driver/connectivity/usb_driver/src/dcl_usb_drv.c \
+           driver/connectivity/usb_driver/src/dcl_usb_hcd.c
+          

+

+

+# USB Dummy API

+ifeq ($(filter __USB_ENABLE__,$(strip $(MODULE_DEFS))),)

+SRC_LIST +=driver/connectivity/usb_driver/src/usb_dummy.c
+endif

+

+

+# USB LOGGING

+ifneq ($(filter __USB_LOGGING__,$(strip $(MODULE_DEFS))),)

+SRC_LIST +=driver/connectivity/usb_driver/src/usblog_drv.c
+endif

+

+

+

+# USB MASS STORAGE CLASS

+ifneq ($(filter __USB_RAMDISK__,$(strip $(MODULE_DEFS))),)

+SRC_LIST +=driver/connectivity/usb_driver/src/usbms_ram.c
+endif

+           

+

+# USB CD ROM CLASS

+ifneq ($(filter __USB_MASS_STORAGE_CDROM_ENABLE__,$(strip $(MODULE_DEFS))),)

+SRC_LIST +=driver/connectivity/usb_driver/src/usbms_cdrom.c
+endif

+

+

+

+# USB OTG

+ifneq ($(filter __OTG_ENABLE__,$(strip $(MODULE_DEFS))),)

+SRC_LIST +=driver/connectivity/usb_driver/src/dcl_otg_drv.c
+endif

+

+           

+           

+#  Define include path lists to INC_DIR

+INC_DIR = driver/drv/include \
+          driver/connectivity/usb_driver/inc \
+          driver/connectivity/usb_class/include \
+          interface/driver/drv_def \
+          interface/driver/connectivity/usb_driver \
+		  interface/driver/regbase \
+          driver/peripheral/inc \
+          driver/sleep_drv/public/inc
+          

+

+# Define the specified compile options to COMP_DEFS

+COMP_DEFS = APCS_INTWORK

+

+# Define the source file search paths to SRC_PATH

+SRC_PATH = driver/connectivity/usb_driver/src
diff --git a/mcu/make/module/driver/media/extern/media.mak b/mcu/make/module/driver/media/extern/media.mak
new file mode 100644
index 0000000..21b5e92
--- /dev/null
+++ b/mcu/make/module/driver/media/extern/media.mak
@@ -0,0 +1,40 @@
+# Define source file lists to SRC_LIST
+
+SRC_LIST = driver/audio/med/common/src/med_main.c \
+           driver/audio/med/common/src/med_utility.c \
+           driver/audio/med/common/src/med_ext_smalloc.c
+
+ifeq ($(filter MED_NOT_PRESENT, $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/audio/med/audio/src/aud_main.c \
+            driver/audio/med/audio/src/aud_audio.c \
+            driver/audio/med/audio/src/aud_speech.c \
+            driver/audio/med/audio/src/aud_keytone.c \
+            driver/audio/med/audio/src/aud_tone.c \
+            driver/audio/med/audio/src/aud_ilm.c \
+            driver/audio/med/audio/src/aud_utility.c \
+            driver/audio/med/audio/src/aud_media.c
+
+else
+   ifneq ($(filter __VOLTE_SUPPORT__, $(strip $(MODULE_DEFS))),)
+   SRC_LIST += driver/audio/med/audio/src/aud_ilm.c \
+               driver/audio/med/audio/src/aud_main.c \
+               driver/audio/med/audio/src/aud_utility.c \
+               driver/audio/med/common/src/med_spc_io.c
+   endif            
+endif
+
+ ifneq ($(filter __ECALL_SUPPORT__, $(strip $(MODULE_DEFS))),)
+  SRC_LIST += driver/audio/med/audio/src/aud_ecall.c
+endif
+
+#  Define include path lists to INC_DIR
+INC_DIR = driver/audio/med/common/include \
+          driver/audio/med/audio/include \
+          interface/driver/hwdrv \
+          interface/driver/drv_sw_def \
+          interface/driver/drv_def \
+          interface/driver/connectivity/usb_driver \
+          interface/driver/peripheral
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = 
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv.mak b/mcu/make/module/driver/peripheral/extern/devdrv.mak
new file mode 100644
index 0000000..6adbf15
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv.mak
@@ -0,0 +1,129 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = driver/devdrv/common/src/devdrv_common.c \
+            driver/devdrv/asm/src/drv_asm.c
+
+ifeq ($(filter __ARM7EJ_S__, $(strip $(MODULE_DEFS))),)
+    SRC_LIST += driver/devdrv/common/src/$(COMPILER)/mon_counter.S
+endif
+
+#SRC_LIST = driver/devdrv/common/src/drv_comm.c \
+		   driver/devdrv/common/src/$(COMPILER)/mon_counter.S
+
+# Define include path lists to INC_DIR
+INC_DIR = driver/devdrv/common/inc \
+           driver/devdrv/trace \
+		   driver/sys_drv/cache/inc \
+		   driver/sys_drv/cache/inc/$(MD_VER_FOLDER) \
+		   driver/sys_drv/mpu/inc/$(MD_VER_FOLDER) \
+           driver/sys_drv/pmu/inc \
+           driver/sys_drv/pmu/inc/$(MD_VER_FOLDER) \
+           interface/driver/devdrv/ect \
+           interface/l1/el1/external \
+           ./service/sst/include \
+           ./service/sst/include \
+           ./service/sss/interface/inc \
+           ./service/sys_svc/gfh/public \
+           ./interface/service/sys_svc \
+		   interface/driver/devdrv/busmpu \
+           $(strip $(PROJDIR))/custom/driver/drv_gen \
+           ./interface/service/sst \
+           driver/devdrv/asm/inc \
+           interface/driver/sib_drv/scc \
+           interface/driver/sleep_drv \
+           driver/sib_drv/mtad/inc \
+           ./interface/service/prbm \
+		   ./interface/driver/hif/hif_pccif4dev \
+		   ./interface/driver/hif/hif_pccif5dev \
+		   ./interface/driver/hif/hif_mhccifdev 
+
+INC_DIR += ./interface/driver/storage/sim
+INC_DIR += driver/devdrv/pcie/inc
+
+#fdr_reorg
+INC_DIR += interface/protocol/as_c2k/common \
+           interface/service/sbp \
+           custom/protocol/common/ps
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = driver/devdrv/common/src \
+		  driver/devdrv/common/src/$(COMPILER)
+
+-include make/module/driver/peripheral/extern/devdrv/gpt.mak
+-include make/module/driver/peripheral/extern/devdrv/pcmon.mak
+-include make/module/driver/peripheral/extern/devdrv/uart.mak
+-include make/module/driver/peripheral/extern/devdrv/gdma_ps.mak
+-include make/module/driver/peripheral/extern/devdrv/l1gdma.mak
+-include make/module/driver/peripheral/extern/devdrv/usim.mak
+-include make/module/driver/peripheral/extern/devdrv/coresight.mak
+-include make/module/driver/peripheral/extern/devdrv/gpio.mak
+-include make/module/driver/peripheral/extern/devdrv/eint.mak
+-include make/module/driver/peripheral/extern/devdrv/dem.mak
+#-include make/module/driver/peripheral/extern/devdrv/pfc.mak
+-include make/module/driver/peripheral/extern/devdrv/idc.mak
+-include make/module/driver/peripheral/extern/devdrv/cirq.mak
+-include make/module/driver/peripheral/extern/devdrv/us_counter.mak
+-include make/module/driver/peripheral/extern/devdrv/devdrv_fakeapi.mak
+-include make/module/driver/peripheral/extern/devdrv/auxadc.mak
+#-include make/module/driver/mc.mak
+-include make/module/driver/peripheral/extern/devdrv/rtc.mak
+#-include make/module/driver/devdrv/malmo.mak
+-include make/module/driver/peripheral/extern/devdrv/pmic.mak
+-include make/module/driver/peripheral/extern/devdrv/pmic_wrap.mak
+-include make/module/driver/peripheral/extern/devdrv/spmi.mak
+-include make/module/driver/peripheral/extern/devdrv/bsi.mak
+-include make/module/driver/peripheral/extern/devdrv/cfgctl.mak
+-include make/module/driver/peripheral/extern/devdrv/f32k_clk.mak
+-include make/module/driver/peripheral/extern/devdrv/dcm.mak
+-include make/module/driver/peripheral/extern/devdrv/emi.mak
+-include make/module/driver/peripheral/extern/devdrv/pll.mak
+-include make/module/driver/peripheral/extern/devdrv/iomux.mak
+-include make/module/driver/peripheral/extern/devdrv/busmon.mak
+-include make/module/driver/peripheral/extern/devdrv/pdn.mak
+-include make/module/driver/peripheral/extern/devdrv/arm7wdt.mak
+-include make/module/driver/peripheral/extern/devdrv/boot_init.mak
+-include make/module/driver/peripheral/extern/devdrv/pw.mak
+-include make/module/driver/peripheral/extern/devdrv/chr_det.mak
+-include make/module/driver/peripheral/extern/devdrv/bus.mak
+-include make/module/driver/peripheral/extern/devdrv/busmpu.mak
+-include make/module/driver/peripheral/extern/devdrv/i2c.mak
+-include make/module/driver/peripheral/extern/devdrv/rstctl.mak
+-include make/module/driver/peripheral/extern/devdrv/mdl_ebc.mak
+-include make/module/driver/peripheral/extern/devdrv/log_seq.mak
+-include make/module/driver/peripheral/extern/devdrv/ect.mak
+-include make/module/driver/peripheral/extern/devdrv/elm.mak
+-include make/module/driver/peripheral/extern/devdrv/mdap_interface.mak
+-include make/module/driver/peripheral/extern/devdrv/cmif.mak
+-include make/module/driver/peripheral/extern/devdrv/cuif.mak
+-include make/module/driver/peripheral/extern/devdrv/csif.mak
+-include make/module/driver/peripheral/extern/devdrv/cs_pmu.mak
+-include make/module/driver/peripheral/extern/devdrv/d2d.mak
+-include make/module/driver/peripheral/extern/devdrv/dsp_bus.mak
+-include make/module/driver/peripheral/extern/devdrv/cs_sram_ctrl.mak
+-include make/module/driver/peripheral/extern/devdrv/soe.mak
+-include make/module/driver/peripheral/extern/devdrv/pms.mak
+-include make/module/driver/peripheral/extern/devdrv/digrf_platform.mak
+-include make/module/driver/peripheral/extern/devdrv/btdma.mak
+-include make/module/driver/peripheral/extern/devdrv/l3cache.mak
+-include make/module/driver/peripheral/extern/devdrv/pcie.mak
+-include make/module/driver/peripheral/extern/devdrv/tia.mak
+
+# 2016/05/31, temp comment this option due to Yuri Huang's request
+#ifeq ($(strip $(COMPILER)),GCC)
+#    CFLAGS += -Werror
+#endif
+
+ifneq ($(filter TRUE,$(SIM_SWTICH_CONTROLLER_MT6306)),)
+  -include make/module/driver/peripheral/extern/devdrv/mt6306.mak
+endif
+
+# These modules have no HW & Drv now, only fake api for compile
+#-include make\bsp\devdrv\lcd.mak
+
+ifeq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+  INC_DIR += ./interface/service/hif \
+    ./interface/service/hif
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/arm7wdt.mak b/mcu/make/module/driver/peripheral/extern/devdrv/arm7wdt.mak
new file mode 100644
index 0000000..0c8315f
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/arm7wdt.mak
@@ -0,0 +1,9 @@
+##############################################################################
+#                             devdrv/arm7wdt                                 #
+##############################################################################
+SRC_LIST += driver/devdrv/arm7wdt/src/drv_arm7wdt.c \
+             driver/devdrv/arm7wdt/src/dcl_arm7wdt.c
+
+SRC_PATH += driver/devdrv/arm7wdt/src
+
+INC_DIR += driver/devdrv/arm7wdt/inc
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/auxadc.mak b/mcu/make/module/driver/peripheral/extern/devdrv/auxadc.mak
new file mode 100644
index 0000000..489a274
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/auxadc.mak
@@ -0,0 +1,13 @@
+##############################################################################
+#                             devdrv/eint                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/auxadc/src/dcl_adc.c \
+             driver/devdrv/auxadc/src/adc.c \
+             driver/devdrv/auxadc/src/drv_thermal_protect.c \
+
+SRC_PATH += driver/devdrv/auxadc/src
+
+INC_DIR += driver/devdrv/auxadc/inc \
+             interface/driver/devdrv/emi \
+             interface/driver/devdrv/thermal \
+             $(call CUSTOM_FLD_MAPPING,./custom/driver/drv/misc_drv)
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/boot_init.mak b/mcu/make/module/driver/peripheral/extern/devdrv/boot_init.mak
new file mode 100644
index 0000000..c0a243d
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/boot_init.mak
@@ -0,0 +1,20 @@
+##############################################################################
+#                             devdrv/boot_init                               #
+##############################################################################
+SRC_LIST += driver/devdrv/boot_init/src/drv_boot_init.c \
+             driver/devdrv/boot_init/src/abm_init.c \
+             driver/devdrv/boot_init/src/arm7_init.c \
+             driver/devdrv/boot_init/src/bootrom_init.c \
+             driver/devdrv/boot_init/src/busmon_init.c \
+             driver/devdrv/boot_init/src/ca7_init.c \
+             driver/devdrv/boot_init/src/ccif_init.c \
+             driver/devdrv/boot_init/src/cldma_init.c \
+             driver/devdrv/boot_init/src/cr4pcmon_init.c \
+             driver/devdrv/boot_init/src/dbgsys_init.c \
+             driver/devdrv/boot_init/src/ehpi_master_init.c \
+             driver/devdrv/boot_init/src/ehpi_slave_init.c \
+             #driver/devdrv/boot_init/src/gdma_init.c
+
+SRC_PATH += driver/devdrv/boot_init/src
+
+INC_DIR += driver/devdrv/boot_init/inc
\ No newline at end of file
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/bsi.mak b/mcu/make/module/driver/peripheral/extern/devdrv/bsi.mak
new file mode 100644
index 0000000..332a10b
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/bsi.mak
@@ -0,0 +1,10 @@
+##############################################################################
+#                             devdrv/bsi                                     #
+##############################################################################
+ifneq ($(filter MT6290, $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/bsi/src/drv_bsi.c
+
+SRC_PATH += driver/devdrv/bsi/src
+
+INC_DIR += driver/devdrv/bsi/inc
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/btdma.mak b/mcu/make/module/driver/peripheral/extern/devdrv/btdma.mak
new file mode 100644
index 0000000..c07b8ac
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/btdma.mak
@@ -0,0 +1,10 @@
+##############################################################################
+#                             devdrv/btdma                                    #
+##############################################################################
+ifneq ($(filter __MD97__ __MD97P__, $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/btdma/src/btdma.c
+SRC_PATH += driver/devdrv/btdma/src
+
+INC_DIR += driver/devdrv/btdma/inc
+INC_DIR += interface/driver/devdrv/btdma
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/bus.mak b/mcu/make/module/driver/peripheral/extern/devdrv/bus.mak
new file mode 100644
index 0000000..15d4913
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/bus.mak
@@ -0,0 +1,8 @@
+##############################################################################
+#                             devdrv/bus                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/bus/$(MD_VER_FOLDER)/src/bus_drv.c
+
+SRC_PATH += driver/devdrv/bus/$(MD_VER_FOLDER)/src
+
+INC_DIR += driver/devdrv/bus/$(MD_VER_FOLDER)/inc
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/busmon.mak b/mcu/make/module/driver/peripheral/extern/devdrv/busmon.mak
new file mode 100644
index 0000000..3e74680
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/busmon.mak
@@ -0,0 +1,12 @@
+##############################################################################
+#                             devdrv/busmon                                  #
+##############################################################################
+
+SRC_LIST += driver/devdrv/busmon/src/$(MD_VER_FOLDER)/drv_busmon.c
+
+SRC_PATH += driver/devdrv/busmon/src/$(MD_VER_FOLDER) 
+
+INC_DIR += interface/driver/devdrv/busmon/$(MD_VER_FOLDER) 
+
+
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/busmpu.mak b/mcu/make/module/driver/peripheral/extern/devdrv/busmpu.mak
new file mode 100644
index 0000000..1583397
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/busmpu.mak
@@ -0,0 +1,8 @@
+##############################################################################
+#                             devdrv/bus                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/busmpu/src/$(MD_VER_FOLDER)/drv_busmpu.c
+
+SRC_PATH += driver/devdrv/busmpu/src/$(MD_VER_FOLDER)
+
+INC_DIR += driver/devdrv/busmpu/inc/$(MD_VER_FOLDER)
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/cfgctl.mak b/mcu/make/module/driver/peripheral/extern/devdrv/cfgctl.mak
new file mode 100755
index 0000000..6472cac
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/cfgctl.mak
@@ -0,0 +1,9 @@
+##############################################################################
+#                             devdrv/cfgctl                                  #
+##############################################################################
+SRC_LIST += driver/devdrv/cfgctl/src/drv_cfgctl.c
+
+SRC_PATH += driver/devdrv/cfgctl/src
+
+INC_DIR += driver/devdrv/cfgctl/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/chr_det.mak b/mcu/make/module/driver/peripheral/extern/devdrv/chr_det.mak
new file mode 100644
index 0000000..9649180
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/chr_det.mak
@@ -0,0 +1,14 @@
+##############################################################################
+#   NOTICE : We have no HW for this IP (rtc) now.                            #
+#            But for SW complie request,                                     #
+#            temporarily add the 'fake api' to make compile success.         #
+##############################################################################
+
+SRC_LIST += driver/devdrv/chr_det/src/dcl_chr_det.c
+
+
+SRC_PATH += driver/devdrv/chr_det/src
+
+INC_DIR += driver/devdrv/chr_det/inc
+
+COMP_DEFS += 
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/cirq.mak b/mcu/make/module/driver/peripheral/extern/devdrv/cirq.mak
new file mode 100644
index 0000000..a95d08c
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/cirq.mak
@@ -0,0 +1,15 @@
+##############################################################################
+#                             devdrv/gpt                                     #
+##############################################################################
+ifeq ($(filter __ARM7EJ_S__, $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cirq/$(MD_VER_FOLDER)/src/drv_mdcirq.c
+else
+SRC_LIST += driver/devdrv/cirq/src/drv_arm7cirq.c
+endif
+SRC_LIST += driver/devdrv/cirq/$(MD_VER_FOLDER)/src/drv_vpe_irq.c
+SRC_LIST += driver/devdrv/cirq/$(MD_VER_FOLDER)/src/isrentry.c \
+             driver/devdrv/cirq/$(MD_VER_FOLDER)/src/$(COMPILER)/mips_vic_entry.S
+SRC_PATH += driver/devdrv/cirq/$(MD_VER_FOLDER)/src
+INC_DIR += driver/devdrv/cirq/$(MD_VER_FOLDER)/inc \
+             driver/sys_drv/init/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/cmif.mak b/mcu/make/module/driver/peripheral/extern/devdrv/cmif.mak
new file mode 100644
index 0000000..86f416f
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/cmif.mak
@@ -0,0 +1,32 @@
+##############################################################################
+#                             devdrv/gpt                                     #
+##############################################################################
+
+             
+SRC_LIST += driver/devdrv/cmif/src/drv_cmif.c
+SRC_LIST += driver/devdrv/cmif/src/drv_cmif_l1core.c
+SRC_PATH += driver/devdrv/cmif/src
+
+INC_DIR += interface/driver/devdrv/cmif/inc
+INC_DIR += driver/devdrv/cmif/inc
+INC_DIR   += $(UNIVERSAL_COMMON)/interface/driver/sys_drv/config
+
+ifneq ($(filter __SSDVT_CMIF_TEST__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/cmif_test.c
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/cmif_test_l1core.c
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/memory_test.c
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/ssdvt_util.c
+SRC_PATH += driver/devdrv/cmif/cmif_test/src
+INC_DIR += driver/devdrv/cmif/cmif_test/inc
+INC_DIR += $(UNIVERSAL_COMMON)/interface/modem
+endif
+
+ifneq ($(filter __MEM_ACCESS_PATH_DVT__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cmif/mem_access_path_test/src/mem_access_path_test.c
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/memory_test.c
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/ssdvt_util.c
+SRC_PATH += driver/devdrv/cmif/cmif_test/src
+SRC_PATH += driver/devdrv/cmif/mem_access_path_test/src
+INC_DIR += driver/devdrv/cmif/cmif_test/inc
+INC_DIR += driver/devdrv/cmif/mem_access_path_test/inc
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/cs_pmu.mak b/mcu/make/module/driver/peripheral/extern/devdrv/cs_pmu.mak
new file mode 100755
index 0000000..20b9b0d
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/cs_pmu.mak
@@ -0,0 +1,16 @@
+##############################################################################
+#                             devdrv/cs_pmu                                  #
+##############################################################################
+ifneq ($(filter __MD97__ __MD97P__, $(strip $(MODULE_DEFS))),)
+# SRC_LIST += driver/devdrv/cs_pmu/src/
+# SRC_LIST += driver/devdrv/cs_pmu/src/
+# SRC_PATH += driver/devdrv/cs_pmu/src
+
+INC_DIR += driver/devdrv/cs_pmu/inc
+# INC_DIR += interface/driver/devdrv/csif
+# INC_DIR += $(UNIVERSAL_COMMON)/interface/driver/sys_drv/csif
+
+ifneq ($(filter __CS_PMU_HW_DVT__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cs_pmu/src/cs_pmu_dvt_main.c
+endif
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/cs_sram_ctrl.mak b/mcu/make/module/driver/peripheral/extern/devdrv/cs_sram_ctrl.mak
new file mode 100755
index 0000000..795cbd9
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/cs_sram_ctrl.mak
@@ -0,0 +1,10 @@
+##############################################################################
+#                             devdrv/cs_sram_ctrl                            #
+##############################################################################
+SRC_LIST += driver/devdrv/cs_sram_ctrl/src/cs_sram_ctrl.c
+
+SRC_PATH += driver/devdrv/cs_sram_ctrl/src
+
+INC_DIR += driver/devdrv/cs_sram_ctrl/inc \
+             interface/driver/devdrv/cs_sram_ctrl
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/csif.mak b/mcu/make/module/driver/peripheral/extern/devdrv/csif.mak
new file mode 100644
index 0000000..44bfa9b
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/csif.mak
@@ -0,0 +1,33 @@
+##############################################################################
+#                             devdrv/csif                                    #
+##############################################################################
+ifneq ($(filter __MD97__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/csif/mt6297/src/drv_csif_init.c
+SRC_LIST += driver/devdrv/csif/mt6297/src/drv_csif_main.c
+SRC_PATH += driver/devdrv/csif/mt6297/src
+
+INC_DIR += driver/devdrv/csif/mt6297/inc
+INC_DIR += interface/driver/devdrv/csif
+INC_DIR += interface/driver/devdrv/csif/mt6297
+INC_DIR += $(UNIVERSAL_COMMON)/interface/driver/sys_drv/csif
+
+ifneq ($(filter __SSDVT_CSIF_TEST__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/csif/mt6297/src/csif_dvt_main.c
+endif
+ifneq ($(filter __CSIF_PROFILING__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/csif/mt6297/src/csif_profiling_main.c
+endif
+endif
+
+ifneq ($(filter __MD97P__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/csif/mt6297p/src/drv_csif_init.c
+SRC_LIST += driver/devdrv/csif/mt6297p/src/drv_csif_main.c
+SRC_PATH += driver/devdrv/csif/mt6297p/src
+
+INC_DIR += driver/devdrv/csif/mt6297p/inc
+INC_DIR += interface/driver/devdrv/csif
+INC_DIR += interface/driver/devdrv/csif/mt6297p
+INC_DIR += $(UNIVERSAL_COMMON)/interface/driver/sys_drv/csif
+endif
+
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/cuif.mak b/mcu/make/module/driver/peripheral/extern/devdrv/cuif.mak
new file mode 100644
index 0000000..e570b29
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/cuif.mak
@@ -0,0 +1,52 @@
+##############################################################################
+#                             devdrv/gpt                                     #
+##############################################################################
+
+             
+SRC_LIST += driver/devdrv/cuif/src/drv_cuif.c
+SRC_LIST += driver/devdrv/cuif/src/drv_cuif_l1core.c
+SRC_PATH += driver/devdrv/cuif/src
+
+INC_DIR += driver/devdrv/cuif/inc
+INC_DIR += interface/driver/devdrv/cuif/inc
+
+ifneq ($(filter __CUIF_DRV_TEST__ , $(strip $(MODULE_DEFS))),)
+INC_DIR   += $(UNIVERSAL_COMMON)/interface/modem/
+endif
+
+ifneq ($(filter __SSDVT_CUIF_TEST__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cuif/cuif_test/src/cuif_test.c
+SRC_LIST += driver/devdrv/cuif/cuif_test/src/cuif_test_l1core.c
+SRC_LIST += driver/devdrv/cuif/cuif_test/src/memory_test.c
+SRC_LIST += driver/devdrv/cuif/cuif_test/src/ssdvt_util.c
+SRC_PATH += driver/devdrv/cuif/cuif_test/src
+INC_DIR += driver/devdrv/cuif/cuif_test/inc
+INC_DIR   += $(UNIVERSAL_COMMON)/interface/modem/
+endif
+
+ifneq ($(filter __USIP_POWER_ON_OFF_DVT__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cuif/usip_power_test/src/usip_power_test.c
+SRC_PATH += driver/devdrv/cuif/usip_power_test/src
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/ssdvt_util.c
+SRC_PATH += driver/devdrv/cmif/cmif_test/src
+INC_DIR += driver/devdrv/cuif/usip_power_test/inc/
+INC_DIR += driver/devdrv/cmif/cmif_test/inc
+endif
+
+ifneq ($(filter __DSP_SRAM_CTRL_DVT__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cuif/dsp_sram_ctrl_dvt/src/dsp_sram_ctrl_dvt.c
+SRC_PATH += driver/devdrv/cuif/dsp_sram_ctrl_dvt/src
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/ssdvt_util.c
+SRC_PATH += driver/devdrv/cmif/cmif_test/src
+INC_DIR += driver/devdrv/cmif/cmif_test/inc
+INC_DIR += driver/devdrv/cmif/mem_access_path_test/inc
+endif
+
+ifneq ($(filter __USIP_PMUCC_ON_OFF_DVT__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/cuif/pmu_cc_test/src/pmu_cc_test.c
+SRC_PATH += driver/devdrv/cuif/pmu_cc_test/src
+SRC_LIST += driver/devdrv/cmif/cmif_test/src/ssdvt_util.c
+SRC_PATH += driver/devdrv/cmif/cmif_test/src
+INC_DIR += driver/devdrv/cuif/pmu_cc_test/inc/
+INC_DIR += driver/devdrv/cmif/cmif_test/inc
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/d2d.mak b/mcu/make/module/driver/peripheral/extern/devdrv/d2d.mak
new file mode 100644
index 0000000..969cad3
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/d2d.mak
@@ -0,0 +1,16 @@
+##############################################################################
+#                             devdrv/d2d                                    #
+##############################################################################
+ifneq ($(filter MT6297 MT6297P, $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/d2d/src/drv_d2d_init.c
+SRC_LIST += driver/devdrv/d2d/src/drv_d2d_main.c
+SRC_PATH += driver/devdrv/d2d/src
+
+INC_DIR += driver/devdrv/d2d/inc
+INC_DIR += interface/driver/devdrv/d2d/inc
+
+ifneq ($(filter __SSDVT_D2D_TEST__ , $(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/d2d/src/d2d_dvt_main.c
+endif
+
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/dcm.mak b/mcu/make/module/driver/peripheral/extern/devdrv/dcm.mak
new file mode 100644
index 0000000..d859e14
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/dcm.mak
@@ -0,0 +1,20 @@
+##############################################################################
+#                             devdrv/gpt                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/dcm/$(MD_VER_FOLDER)/src/drv_dcm.c \
+             driver/devdrv/dcm/$(MD_VER_FOLDER)/src/drv_lpm.c
+
+ifeq ($(strip $(MD_VER_FOLDER)),md93)
+    SRC_LIST += driver/devdrv/dcm/$(MD_VER_FOLDER)/src/dcm_service.c
+else
+    ifeq ($(strip $(MD_VER_FOLDER)),md95)
+        SRC_LIST += driver/devdrv/dcm/$(MD_VER_FOLDER)/src/dcm_service.c
+    else
+        #No dcm_service.c
+    endif  
+endif			 
+			 
+SRC_PATH += driver/devdrv/dcm/$(MD_VER_FOLDER)/src
+
+INC_DIR += driver/devdrv/dcm/$(MD_VER_FOLDER)/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/dem.mak b/mcu/make/module/driver/peripheral/extern/devdrv/dem.mak
new file mode 100644
index 0000000..6bb536b
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/dem.mak
@@ -0,0 +1,9 @@
+##############################################################################

+#                             devdrv/dem                                     #

+##############################################################################

+SRC_LIST += driver/devdrv/dem/src/drv_dem.c
+

+SRC_PATH += driver/devdrv/dem/src
+

+INC_DIR += driver/devdrv/dem/inc
+

diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/devdrv_fakeapi.mak b/mcu/make/module/driver/peripheral/extern/devdrv/devdrv_fakeapi.mak
new file mode 100644
index 0000000..52299f0
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/devdrv_fakeapi.mak
@@ -0,0 +1,10 @@
+##############################################################################

+#                             devdrv/tty                                     #

+##############################################################################

+SRC_LIST += driver/devdrv/devdrv_fakeapi/src/devdrv_fakeapi.c
+

+

+SRC_PATH += driver/devdrv/devdrv_fakeapi/src
+

+INC_DIR += driver/devdrv/devdrv_fakeapi/src
+

diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/digrf_platform.mak b/mcu/make/module/driver/peripheral/extern/devdrv/digrf_platform.mak
new file mode 100644
index 0000000..908b50a
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/digrf_platform.mak
@@ -0,0 +1,36 @@
+##############################################################################
+#                             devdrv/digrf_platform                          #
+##############################################################################
+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_bus_ao.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_bus_off.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_dsb.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_global_con.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_mipi.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_off_clk.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_on_clk.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_on_irq.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_platform_init.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_cos_prep.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_iomux.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_busmon.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_exception.c
+SRC_LIST += driver/devdrv/digrf_platform/src/digrf_por.c
+
+ifneq ($(filter __DIGRF_PLATFORM_TEST__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/digrf_platform/src/ssdvt/digrf_dvt_test.c
+SRC_LIST += driver/devdrv/digrf_platform/src/ssdvt/digrf_busmon_dvt.c
+SRC_LIST += driver/devdrv/digrf_platform/src/ssdvt/digrf_mipi_dvt.c
+SRC_LIST += driver/devdrv/digrf_platform/src/ssdvt/digrf_dsb_dvt.c
+SRC_LIST += driver/devdrv/digrf_platform/src/ssdvt/digrf_on_irq_dvt.c
+endif
+
+
+SRC_PATH += driver/devdrv/cuif/src
+
+INC_DIR += driver/devdrv/digrf_platform/inc
+INC_DIR += interface/driver/devdrv/digrf_platform
+INC_DIR += interface/driver/dvfs_drv/md97
+INC_DIR += driver/devdrv/pmic_wrap/inc
+INC_DIR += interface/driver/sleep_drv
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/dsp_bus.mak b/mcu/make/module/driver/peripheral/extern/devdrv/dsp_bus.mak
new file mode 100644
index 0000000..ea2513b
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/dsp_bus.mak
@@ -0,0 +1,12 @@
+##############################################################################
+#                             devdrv/gpt                                     #
+##############################################################################
+
+             
+SRC_LIST += driver/devdrv/dsp_bus/src/dsp_bus_config.c
+SRC_LIST += driver/devdrv/dsp_bus/src/dsp_bus_dump.c
+SRC_PATH += driver/devdrv/dsp_bus/src
+
+INC_DIR += driver/devdrv/dsp_bus/inc
+
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/ect.mak b/mcu/make/module/driver/peripheral/extern/devdrv/ect.mak
new file mode 100755
index 0000000..87e6b26
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/ect.mak
@@ -0,0 +1,6 @@
+##############################################################################

+#                             devdrv/ect                                     #

+##############################################################################

+

+SRC_LIST += driver/devdrv/ect/src/ect.c

+SRC_LIST += driver/devdrv/ect/src/ect_dsp_cti_status.c

diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/eint.mak b/mcu/make/module/driver/peripheral/extern/devdrv/eint.mak
new file mode 100644
index 0000000..c5350f2
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/eint.mak
@@ -0,0 +1,13 @@
+##############################################################################
+#                             devdrv/eint                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/eint/src/dcl_eint.c \
+             driver/devdrv/eint/src/drv_eint.c \
+             driver/devdrv/eint/src/eint_setting_init.c
+
+SRC_PATH += driver/devdrv/eint/src
+
+INC_DIR += driver/devdrv/eint/inc \
+	     $(strip $(PROJDIR))/custom/driver/drv_gen \
+	     $(call CUSTOM_FLD_MAPPING,./custom/driver/drv/misc_drv)
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/elm.mak b/mcu/make/module/driver/peripheral/extern/devdrv/elm.mak
new file mode 100644
index 0000000..762d9d8
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/elm.mak
@@ -0,0 +1,22 @@
+##############################################################################
+#                             devdrv/elm                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/elm/src/$(MD_VER_FOLDER)/elm.c
+
+#SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/elm_trace_utmd.c
+ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+  ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+    ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+        ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+          SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/elm_trace_utmd.c
+        else
+          SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/elm_trace_utmd.c
+        endif     
+    else
+      SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/elm_trace_utmd.c
+    endif
+  endif
+endif	
+
+SRC_PATH += driver/devdrv/elm/src/$(MD_VER_FOLDER)
+INC_DIR += driver/devdrv/elm/inc
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/emi.mak b/mcu/make/module/driver/peripheral/extern/devdrv/emi.mak
new file mode 100644
index 0000000..e011740
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/emi.mak
@@ -0,0 +1,11 @@
+#############################################
+#				EMI Driver					#
+#############################################
+# Define source file lists to SRC_LIST
+SRC_LIST += driver/devdrv/emi/src/emimpu.c
+
+# Define include path lists to INC_DIR
+INC_DIR += driver/devdrv/emi/inc/
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH += driver/devdrv/emi/src
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/f32k_clk.mak b/mcu/make/module/driver/peripheral/extern/devdrv/f32k_clk.mak
new file mode 100644
index 0000000..8a9f6c3
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/f32k_clk.mak
@@ -0,0 +1,9 @@
+##############################################################################
+#                             devdrv/gpt                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/f32k/src/dcl_f32k_clk.c \
+
+SRC_PATH += driver/devdrv/f32k/src
+
+INC_DIR += driver/devdrv/f32k/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/gdma_l1.mak b/mcu/make/module/driver/peripheral/extern/devdrv/gdma_l1.mak
new file mode 100755
index 0000000..59e1e7b
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/gdma_l1.mak
@@ -0,0 +1,9 @@
+##############################################################################
+#                             devdrv/gdma                                    #
+##############################################################################
+SRC_LIST += driver/devdrv/gdma_l1/src/drv_gdma.c \
+
+SRC_PATH += driver/devdrv/gdma_l1/src
+
+INC_DIR += driver/devdrv/gdma_l1/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/gdma_ps.mak b/mcu/make/module/driver/peripheral/extern/devdrv/gdma_ps.mak
new file mode 100755
index 0000000..bbdf661
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/gdma_ps.mak
@@ -0,0 +1,40 @@
+##############################################################################
+#                             devdrv/gdma                                    #
+##############################################################################
+
+####################################################
+#                  For Gen93 GDMA
+####################################################
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6293)
+  SRC_LIST += driver/devdrv/gdma_ps/src/md93/drv_gdma.c
+  SRC_PATH += driver/devdrv/gdma_ps/src/md93
+  INC_DIR += driver/devdrv/gdma_ps/inc/md93
+endif
+
+####################################################
+#                  For Gen95 GDMA
+####################################################
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6295)
+  SRC_LIST += driver/devdrv/gdma_ps/src/md95/drv_gdma.c
+  SRC_PATH += driver/devdrv/gdma_ps/src/md95
+  INC_DIR += driver/devdrv/gdma_ps/inc/md95
+  COMP_DEFS += GDMA_PRIO_DISABLE #GDMA_PRIO_DISABLE is used to disable PRIORITY COMMON QUEUE;
+endif
+
+####################################################
+#                  For Gen97 GDMA
+####################################################
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+  SRC_LIST += driver/devdrv/gdma_ps/src/md97/drv_gdma.c
+  SRC_PATH += driver/devdrv/gdma_ps/src/md97
+  INC_DIR += driver/devdrv/gdma_ps/inc/md97
+endif
+
+####################################################
+#                  For Gen97P GDMA
+####################################################
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+  SRC_LIST += driver/devdrv/gdma_ps/src/md97/drv_gdma.c
+  SRC_PATH += driver/devdrv/gdma_ps/src/md97
+  INC_DIR += driver/devdrv/gdma_ps/inc/md97
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/gpio.mak b/mcu/make/module/driver/peripheral/extern/devdrv/gpio.mak
new file mode 100644
index 0000000..cd5f36d
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/gpio.mak
@@ -0,0 +1,12 @@
+##############################################################################
+#                             devdrv/gpio                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/gpio/src/dcl_gpio.c \
+             driver/devdrv/gpio/src/drv_gpio.c \
+             driver/devdrv/gpio/src/gpio_setting.c \
+
+SRC_PATH += driver/devdrv/gpio/src
+
+INC_DIR += driver/devdrv/gpio/inc \
+	     $(strip $(PROJDIR))/custom/driver/drv_gen
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/gpt.mak b/mcu/make/module/driver/peripheral/extern/devdrv/gpt.mak
new file mode 100644
index 0000000..5550736
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/gpt.mak
@@ -0,0 +1,11 @@
+##############################################################################
+#                             devdrv/gpt                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/gpt/src/dcl_gpt.c \
+             driver/devdrv/gpt/src/drv_gpt.c \
+             driver/devdrv/gpt/src/drv_litegpt.c
+
+SRC_PATH += driver/devdrv/gpt/src
+
+INC_DIR += driver/devdrv/gpt/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/i2c.mak b/mcu/make/module/driver/peripheral/extern/devdrv/i2c.mak
new file mode 100644
index 0000000..a9e4ec3
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/i2c.mak
@@ -0,0 +1,11 @@
+

+##############################################################################

+#                             devdrv/i2c                                   #

+##############################################################################

+SRC_LIST += driver/devdrv/i2c/src/dcl_i2c.c \
+				driver/devdrv/i2c/src/drv_i2c.c \
+

+

+SRC_PATH += driver/devdrv/i2c/src
+

+INC_DIR += driver/devdrv/i2c/inc
\ No newline at end of file
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/idc.mak b/mcu/make/module/driver/peripheral/extern/devdrv/idc.mak
new file mode 100644
index 0000000..7f21c87
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/idc.mak
@@ -0,0 +1,9 @@
+##############################################################################
+#                             devdrv/idc                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/idc/src/dcl_idc.c \
+             driver/devdrv/idc/src/drv_idc.c \
+
+SRC_PATH += driver/devdrv/idc/src
+
+INC_DIR += driver/devdrv/idc/inc
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/iomux.mak b/mcu/make/module/driver/peripheral/extern/devdrv/iomux.mak
new file mode 100644
index 0000000..d51720c
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/iomux.mak
@@ -0,0 +1,11 @@
+##############################################################################
+#                             devdrv/iomux                                     #
+##############################################################################
+ifeq ($(strip $(PLATFORM)), TK6291)
+SRC_LIST += driver/devdrv/iomux/src/drv_iomux.c
+
+SRC_PATH += driver/devdrv/iomux/src
+
+INC_DIR += driver/devdrv/iomux/inc
+endif						 
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/l3cache.mak b/mcu/make/module/driver/peripheral/extern/devdrv/l3cache.mak
new file mode 100644
index 0000000..1c52722
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/l3cache.mak
@@ -0,0 +1,7 @@
+
+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/l3cache/src/$(MD_VER_FOLDER)/drv_l3cache_hw.c
+SRC_PATH += driver/devdrv/l3cache/src/$(MD_VER_FOLDER)
+
+INC_DIR += driver/devdrv/l3cache/inc/$(MD_VER_FOLDER)
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/lcd.mak b/mcu/make/module/driver/peripheral/extern/devdrv/lcd.mak
new file mode 100644
index 0000000..bc68746
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/lcd.mak
@@ -0,0 +1,14 @@
+##############################################################################
+#   NOTICE : We have no HW for this IP (lcd) now.                            #
+#            But for SW complie request,                                     #
+#            temporarily add the 'fake api' to make compile success.         #
+##############################################################################
+
+SRC_LIST += driver/devdrv/lcd/src/wfd_lcd_adapter.c
+
+SRC_PATH += driver/devdrv/lcd/src
+
+INC_DIR += driver/devdrv/lcd/inc \
+             interface/driver/display/ddv1/ \
+
+COMP_DEFS += 
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/log_seq.mak b/mcu/make/module/driver/peripheral/extern/devdrv/log_seq.mak
new file mode 100755
index 0000000..143ebb6
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/log_seq.mak
@@ -0,0 +1,29 @@
+##############################################################################
+#                             log_seq                                        #
+##############################################################################
+ifeq ($(strip $(MTK_MODEM_ARCH)),MT6295)
+COMP_DEFS += __MD95__
+SRC_LIST += driver/devdrv/log_seq/src/${MD_VER_FOLDER}/logseq_drv_gen95.c
+else ifeq ($(strip $(MTK_MODEM_ARCH)),MT6293)
+COMP_DEFS += __MD93__
+SRC_LIST += driver/devdrv/log_seq/src/${MD_VER_FOLDER}/logseq_drv_gen93.c
+else ifeq ($(strip $(MTK_MODEM_ARCH)),MT6297)
+COM_DEFS += __MD97__
+SRC_LIST += driver/devdrv/log_seq/src/${MD_VER_FOLDER}/logseq_drv_gen97.c
+else ifeq ($(strip $(MTK_MODEM_ARCH)),MT6297P)
+COM_DEFS += __MD97P__
+SRC_LIST += driver/devdrv/log_seq/src/md97/logseq_drv_gen97.c
+else
+endif
+#SRC_LIST += driver/devdrv/log_seq/src/logseq_drv.c
+
+SRC_PATH += driver/devdrv/log_seq/src/${MD_VER_FOLDER}/
+
+INC_DIR += driver/devdrv/common/inc \
+				driver/devdrv/log_seq/inc \
+				interface/driver/devdrv/log_seq
+
+#ifeq ($(strip $(COMPILER)),GCC)
+#	CFLAGS += -Werror
+#endif
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/malmo.mak b/mcu/make/module/driver/peripheral/extern/devdrv/malmo.mak
new file mode 100644
index 0000000..0b30f1d
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/malmo.mak
@@ -0,0 +1,9 @@
+##############################################################################

+#                             devdrv/dnt                                     #

+##############################################################################

+SRC_LIST += driver/devdrv/malmo/src/MalmoDriver.c
+

+SRC_PATH += driver/devdrv/malmo/src
+

+#INC_DIR += driver/devdrv/malmo/inc
+

diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/mdap_interface.mak b/mcu/make/module/driver/peripheral/extern/devdrv/mdap_interface.mak
new file mode 100755
index 0000000..4af80f9
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/mdap_interface.mak
@@ -0,0 +1,27 @@
+##############################################################################
+#                             devdrv/bus                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/mdap_interface/src/drv_mdap_interface.c
+SRC_LIST += driver/devdrv/mdap_interface/src/$(MD_VER_FOLDER)/drv_mdap_interface_hw.c
+
+ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+    ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+      SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/amif_trace_utmd.c
+    else
+      SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/amif_trace_utmd.c
+    endif   
+else
+  SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/amif_trace_utmd.c
+endif
+endif
+endif
+
+SRC_PATH += driver/devdrv/mdap_interface/src
+SRC_PATH += driver/devdrv/mdap_interface/src/$(MD_VER_FOLDER)
+
+INC_DIR += interface/driver/devdrv/mdap_interface
+INC_DIR += driver/devdrv/mdap_interface/inc
+INC_DIR += driver/devdrv/mdap_interface/inc/$(MD_VER_FOLDER)
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/mdl_ebc.mak b/mcu/make/module/driver/peripheral/extern/devdrv/mdl_ebc.mak
new file mode 100755
index 0000000..3b1792e
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/mdl_ebc.mak
@@ -0,0 +1,15 @@
+##############################################################################
+#                             mdl_ebc                                        #
+##############################################################################
+#SRC_LIST += driver/devdrv/mdl_ebc/src/ebc_drv.c
+
+#SRC_PATH += driver/devdrv/mdl_ebc/src
+
+#INC_DIR += driver/devdrv/common/inc \
+# interface/driver/devdrv/mdl_ebc \
+# driver/devdrv/mdl_ebc/inc
+
+#ifeq ($(strip $(COMPILER)),GCC)
+	#CFLAGS += -Werror
+#endif
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/mdm_trc.mak b/mcu/make/module/driver/peripheral/extern/devdrv/mdm_trc.mak
new file mode 100644
index 0000000..1348f0b
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/mdm_trc.mak
@@ -0,0 +1,9 @@
+##############################################################################
+#                             devdrv/mdm_trc                                 #
+##############################################################################
+SRC_LIST += driver/devdrv/mdm_trc/src/mdm_trc.c
+
+SRC_PATH += driver/devdrv/mdm_trc/src
+
+#INC_DIR += driver/devdrv/mdm_trc/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/mt6306.mak b/mcu/make/module/driver/peripheral/extern/devdrv/mt6306.mak
new file mode 100755
index 0000000..e7edd1b
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/mt6306.mak
@@ -0,0 +1,25 @@
+# Define source file lists to SRC_LIST

+SRC_LIST += driver/devdrv/usim/mt6306/src/icc_switchControl0_mt6306.c \

+           driver/devdrv/usim/mt6306/src/icc_switchControl1_mt6306.c \

+           driver/devdrv/usim/mt6306/src/icc_switchControl2_mt6306.c \

+           driver/devdrv/usim/mt6306/src/MT6306_HW_I2C.c \

+           driver/devdrv/usim/mt6306/src/MT6306_I2C.c

+

+

+# Define include path lists to INC_DIR

+INC_DIR += driver/devdrv/usim/inc \

+          ./service/sst/include \

+          ./service/ssf/inc \

+          driver/devdrv/usim/mt6306/inc

+          

+		#interface/driver/devdrv/usim

+          #driver/sys_drv/regbase/inc \

+          #driver/sys_drv/dma/inc \

+         # driver/sys_drv/counter/inc \

+          

+# Define the specified compile options to COMP_DEFS

+COMP_DEFS +=

+

+# Define the source file search paths to SRC_PATH

+SRC_PATH += driver/devdrv/usim/mt6306/src

+

diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pcie.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pcie.mak
new file mode 100644
index 0000000..a69103a
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pcie.mak
@@ -0,0 +1,31 @@
+##############################################################################
+#                             devdrv/pcie                                     #
+##############################################################################
+ifneq ($(filter MT6297 , $(strip $(MODULE_DEFS))),)
+
+SRC_LIST += driver/devdrv/pcie/src/pcie.c \
+            driver/hif/src/hif_pciedev/pcie_mac.c
+
+SRC_PATH += driver/devdrv/pcie/src \
+            driver/hif/src/hif_pciedev
+
+INC_DIR += interface/driver/devdrv/pcie \
+           driver/hif/inc/hif_pciedev \
+           interface/driver/hif/hif_pciedev
+
+endif
+ifneq ($(filter MT6880 MT6890, $(strip $(MODULE_DEFS))),)
+
+SRC_LIST += driver/devdrv/pcie/src/pcie.c \
+            driver/hif/src/hif_pciedev/pcie_mac.c \
+            driver/hif/src/hif_pciedev/pcie_phy.c
+
+SRC_PATH += driver/devdrv/pcie/src \
+            driver/hif/src/hif_pciedev
+
+INC_DIR += interface/driver/devdrv/pcie \
+           driver/hif/inc/hif_pciedev \
+           interface/driver/hif/hif_pciedev
+
+endif
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pcmon.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pcmon.mak
new file mode 100644
index 0000000..ddeb770
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pcmon.mak
@@ -0,0 +1,9 @@
+##############################################################################
+#                             devdrv/pcmon                                   #
+##############################################################################
+SRC_LIST += driver/devdrv/pcmon/src/drv_pdamon.c
+
+SRC_PATH += driver/devdrv/pcmon/src
+
+INC_DIR += driver/devdrv/pcmon/inc/$(MD_VER_FOLDER)
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pdn.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pdn.mak
new file mode 100644
index 0000000..b22c991
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pdn.mak
@@ -0,0 +1,8 @@
+##############################################################################
+#                             devdrv/pdn                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/pdn/src/drvpdn.c
+
+SRC_PATH += driver/devdrv/pdn/src
+
+INC_DIR += interface/driver/devdrv/pdn
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pfb.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pfb.mak
new file mode 100644
index 0000000..258da0a
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pfb.mak
@@ -0,0 +1,9 @@
+##############################################################################
+#                             devdrv/pfb                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/pfb/src/drv_pfb.c
+
+SRC_PATH += driver/devdrv/pfb/src
+
+INC_DIR += driver/devdrv/pfb/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pll.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pll.mak
new file mode 100644
index 0000000..d4ffc1a
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pll.mak
@@ -0,0 +1,17 @@
+##############################################################################
+#                             devdrv/pll                                     #
+##############################################################################
+
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/pll/src/pll_gen93m17.c
+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/pll/src/pll_gen95.c
+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/pll/src/pll_gen97.c
+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += driver/devdrv/pll/src/pll_gen97p.c
+endif
+
+SRC_PATH += driver/devdrv/pll/src
+
+INC_DIR += interface/driver/devdrv/pll
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pmic.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pmic.mak
new file mode 100644
index 0000000..2189f79
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pmic.mak
@@ -0,0 +1,113 @@
+##############################################################################
+#                             devdrv/pmic                                    #
+##############################################################################
+SRC_LIST += driver/devdrv/pmic/src/dcl_pmu.c \
+             driver/devdrv/pmic/src/dcl_pmu_common.c \
+
+ifeq ($(strip $(PMIC)),NONE)
+COMP_DEFS += DRV_PMIC_OFF
+endif
+
+ifeq ($(strip $(PMIC)),MT6356)
+
+ifeq ($(strip $(PLATFORM)), MT6763)
+COMP_DEFS += MT6356 DRV_PMIC_WRAP_6763_REG DRV_PMIC_WRAP_V2
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6739)
+COMP_DEFS += MT6356 DRV_PMIC_WRAP_6739_REG DRV_PMIC_WRAP_V2
+endif
+
+SRC_LIST += driver/devdrv/pmic/src/dcl_pmic6356.c \
+               driver/devdrv/pmic/src/dcl_pmic6356_init.c
+INC_DIR += driver/devdrv/pmic_wrap/inc
+endif
+
+ifeq ($(strip $(PMIC)),MT6357)
+
+ifeq ($(strip $(PLATFORM)), MT6739)
+COMP_DEFS += MT6357 DRV_PMIC_WRAP_6739_REG DRV_PMIC_WRAP_V2
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6765)
+COMP_DEFS += MT6357 DRV_PMIC_WRAP_6765_REG DRV_PMIC_WRAP_V2
+endif
+
+SRC_LIST += driver/devdrv/pmic/src/dcl_pmic6357.c \
+               driver/devdrv/pmic/src/dcl_pmic6357_init.c
+INC_DIR += driver/devdrv/pmic_wrap/inc
+endif
+
+ifeq ($(strip $(PMIC)),MT6358)
+
+ifeq ($(strip $(PLATFORM)), MT6771)
+COMP_DEFS += MT6358 DRV_PMIC_WRAP_6771_REG DRV_PMIC_WRAP_V2
+endif
+
+ifeq ($(strip $(PLATFORM)), MT3967)
+COMP_DEFS += MT6358 DRV_PMIC_WRAP_3967_REG DRV_PMIC_WRAP_V2
+endif
+
+SRC_LIST += driver/devdrv/pmic/src/dcl_pmic6358.c \
+               driver/devdrv/pmic/src/dcl_pmic6358_init.c
+INC_DIR += driver/devdrv/pmic_wrap/inc
+endif
+
+ifeq ($(strip $(PMIC)),MT6359)
+
+ifeq ($(strip $(PLATFORM)), MT6779)
+COMP_DEFS += MT6359 DRV_PMIC_WRAP_6779_REG DRV_PMIC_WRAP_V2
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6297)
+COMP_DEFS += MT6297 DRV_PMIC_WRAP_6297_REG DRV_PMIC_WRAP_V2
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6297P)
+COMP_DEFS += MT6297P DRV_PMIC_WRAP_6297_REG DRV_PMIC_WRAP_V2
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6885)
+COMP_DEFS += MT6359 DRV_PMIC_WRAP_6885_REG DRV_PMIC_WRAP_V2
+endif
+
+SRC_LIST += driver/devdrv/pmic/src/dcl_pmic6359.c \
+               driver/devdrv/pmic/src/dcl_pmic6359_init.c
+INC_DIR += driver/devdrv/pmic_wrap/inc
+endif
+
+ifeq ($(strip $(PMIC)),MT6359P)
+
+ifeq ($(strip $(PLATFORM)), MT6885)
+COMP_DEFS += MT6359P DRV_PMIC_WRAP_6885_REG DRV_PMIC_WRAP_V3
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6873)
+COMP_DEFS += MT6359P DRV_PMIC_WRAP_6885_REG DRV_PMIC_WRAP_V3
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6853)
+COMP_DEFS += MT6359P DRV_PMIC_WRAP_6853_REG DRV_PMIC_WRAP_V3
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6893)
+COMP_DEFS += MT6359P DRV_PMIC_WRAP_6893_REG DRV_PMIC_WRAP_V3
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6833)
+COMP_DEFS += MT6359P DRV_PMIC_WRAP_6833_REG DRV_PMIC_WRAP_V3
+endif
+
+ifeq ($(strip $(PLATFORM)), MT6877)
+COMP_DEFS += MT6359P DRV_PMIC_WRAP_6877_REG DRV_PMIC_WRAP_V3
+endif
+
+SRC_LIST += driver/devdrv/pmic/src/dcl_pmic6359p.c \
+               driver/devdrv/pmic/src/dcl_pmic6359p_init.c
+INC_DIR += driver/devdrv/pmic_wrap/inc
+endif
+
+SRC_PATH += driver/devdrv/pmic/src
+
+INC_DIR += driver/devdrv/pmic/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pmic_wrap.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pmic_wrap.mak
new file mode 100644
index 0000000..152e760
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pmic_wrap.mak
@@ -0,0 +1,28 @@
+##############################################################################
+#                             devdrv/pmic_wrap                               #
+##############################################################################
+PMIC_WRAP_V2_COMPILER_FILTER_LIST = MT6356 MT6357 MT6358 MT6359
+
+PMIC_WRAP_V3_COMPILER_FILTER_LIST = MT6359P
+
+ifneq ($(filter $(PMIC_WRAP_V2_COMPILER_FILTER_LIST),$(PMIC)),)
+
+SRC_LIST += driver/devdrv/pmic_wrap/src/pmic_wrap_v2.c
+
+SRC_PATH += driver/devdrv/pmic_wrap/src
+
+INC_DIR += driver/devdrv/pmic_wrap/inc \
+             driver/devdrv/pmic/inc
+
+endif
+
+ifneq ($(filter $(PMIC_WRAP_V3_COMPILER_FILTER_LIST),$(PMIC)),)
+
+SRC_LIST += driver/devdrv/pmic_wrap/src/pmic_wrap_v3.c
+
+SRC_PATH += driver/devdrv/pmic_wrap/src
+
+INC_DIR += driver/devdrv/pmic_wrap/inc \
+             driver/devdrv/pmic/inc
+
+endif
\ No newline at end of file
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pms.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pms.mak
new file mode 100644
index 0000000..0cb4797
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pms.mak
@@ -0,0 +1,10 @@
+##############################################################################
+#                             devdrv/pms                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/pms/src/pms.c
+
+SRC_PATH += driver/devdrv/pms/src
+
+INC_DIR += driver/devdrv/pms/inc
+
+COMP_DEFS += 
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/pw.mak b/mcu/make/module/driver/peripheral/extern/devdrv/pw.mak
new file mode 100644
index 0000000..ae76daf
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/pw.mak
@@ -0,0 +1,14 @@
+##############################################################################
+#   NOTICE : We have no HW for this IP (rtc) now.                            #
+#            But for SW complie request,                                     #
+#            temporarily add the 'fake api' to make compile success.         #
+##############################################################################
+
+SRC_LIST += driver/devdrv/pw/src/dcl_pw.c
+
+
+SRC_PATH += driver/devdrv/pw/src
+
+INC_DIR += driver/devdrv/pw/inc
+
+COMP_DEFS += 
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/rstctl.mak b/mcu/make/module/driver/peripheral/extern/devdrv/rstctl.mak
new file mode 100644
index 0000000..9c2dcf0
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/rstctl.mak
@@ -0,0 +1,9 @@
+##############################################################################
+#                             devdrv/rstctl                                    #
+##############################################################################
+SRC_LIST += driver/devdrv/rstctl/src/dcl_rstctl.c \
+			 driver/devdrv/rstctl/src/drv_rstctl.c
+
+SRC_PATH += driver/devdrv/rstctl/src
+
+INC_DIR += driver/devdrv/rstctl/inc
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/rtc.mak b/mcu/make/module/driver/peripheral/extern/devdrv/rtc.mak
new file mode 100644
index 0000000..7fe9ee7
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/rtc.mak
@@ -0,0 +1,14 @@
+##############################################################################
+#   NOTICE : We have no HW for this IP (rtc) now.                            #
+#            But for SW complie request,                                     #
+#            temporarily add the 'fake api' to make compile success.         #
+##############################################################################
+
+SRC_LIST += driver/devdrv/rtc/src/dcl_rtc.c
+
+
+SRC_PATH += driver/devdrv/rtc/src
+
+INC_DIR += driver/devdrv/rtc/inc
+
+COMP_DEFS += 
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/soe.mak b/mcu/make/module/driver/peripheral/extern/devdrv/soe.mak
new file mode 100644
index 0000000..f163251
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/soe.mak
@@ -0,0 +1,11 @@
+##############################################################################
+#                             devdrv/soe                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/soe/src/drv_soe.c
+
+SRC_PATH += driver/devdrv/soe/src
+
+INC_DIR += interface/driver/devdrv/pdn \
+           driver/devdrv/soe/inc
+
+COMP_DEFS += __COMPILE_DRIVER__
\ No newline at end of file
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/spmi.mak b/mcu/make/module/driver/peripheral/extern/devdrv/spmi.mak
new file mode 100755
index 0000000..7febf20
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/spmi.mak
@@ -0,0 +1,19 @@
+##############################################################################
+#                             devdrv/spmi                                    #
+##############################################################################
+SRC_LIST += driver/devdrv/spmi/src/dcl_spmi.c
+
+ifeq ($(strip $(SPMI)),TRUE)
+  SRC_LIST += driver/devdrv/spmi/src/spmi_common.c \
+              driver/devdrv/spmi/src/spmi.c \
+	      driver/devdrv/spmi/src/spmi_dbg.c \
+	      driver/devdrv/spmi/src/pmif.c
+else
+  COMP_DEFS += DRV_SPMI_OFF
+endif
+
+SRC_PATH += driver/devdrv/spmi/src
+
+INC_DIR += driver/devdrv/spmi/inc \
+             driver/devdrv/pmic/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/tia.mak b/mcu/make/module/driver/peripheral/extern/devdrv/tia.mak
new file mode 100755
index 0000000..218e503
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/tia.mak
@@ -0,0 +1,22 @@
+##############################################################################
+#                             devdrv/tia                                     #
+##############################################################################
+
+ifeq ($(strip $(MD_TFWK)),TRUE)
+# Define source file lists to SRC_LIST
+SRC_LIST += driver/devdrv/tia/src/tia.c \
+            driver/devdrv/tia/src/tia_adc.c \
+            driver/devdrv/tia/src/tia_atcmd.c \
+            driver/devdrv/tia/src/tia_task.c
+
+# Define include path lists to INC_DIR
+INC_DIR  += driver/devdrv/tia/inc \
+            interface/driver/devdrv/tia \
+            interface/driver/tfwk_drv
+
+# Define the specified compile options to COMP_DEFS
+#COMP_DEFS +=
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH += driver/devdrv/tia/src
+endif
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/uart.mak b/mcu/make/module/driver/peripheral/extern/devdrv/uart.mak
new file mode 100644
index 0000000..32f33d0
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/uart.mak
@@ -0,0 +1,18 @@
+##############################################################################
+#                             devdrv/gpt                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/uart/src/dbgprint.c \
+             driver/devdrv/uart/src/uart_handler.c \
+			 driver/devdrv/uart/src/uart.c
+
+SRC_PATH += driver/devdrv/uart/src
+
+INC_DIR += driver/devdrv/uart/inc
+
+ifneq ($(filter ATEST_SLT_U3, $(strip $(MODULE_DEFS))),)
+COMP_DEFS += __SLT_TOOL_SUPPORT__
+endif # FOR SLT_TOOL U3 device
+
+ifneq ($(filter ATEST_SLT_SDIO, $(strip $(MODULE_DEFS))),)
+COMP_DEFS += __SLT_TOOL_SUPPORT__
+endif # FOR SLT_TOOL SDIO device
\ No newline at end of file
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/us_counter.mak b/mcu/make/module/driver/peripheral/extern/devdrv/us_counter.mak
new file mode 100644
index 0000000..7cc90a2
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/us_counter.mak
@@ -0,0 +1,11 @@
+##############################################################################
+#                             devdrv/gpt                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/us_counter/src/uscounter.c
+
+SRC_PATH += driver/devdrv/us_counter/src
+
+INC_DIR += interface/driver/devdrv/us_counter \
+			 driver/sleep_drv/public/inc \
+			 driver/sys_drv/init/inc
+
diff --git a/mcu/make/module/driver/peripheral/extern/devdrv/usim.mak b/mcu/make/module/driver/peripheral/extern/devdrv/usim.mak
new file mode 100644
index 0000000..baab84d
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/devdrv/usim.mak
@@ -0,0 +1,44 @@
+##############################################################################
+#                             devdrv/usim                                     #
+##############################################################################
+SRC_LIST += driver/devdrv/usim/src/dcl_sim.c \
+			 driver/devdrv/usim/src/icc_sim_common_mtk.c \
+			 driver/devdrv/usim/src/icc_switchControl_al.c \
+			 driver/devdrv/usim/src/icc_switchControl_mtk_0.c \
+			 driver/devdrv/usim/src/icc_switchControl_mtk_1.c \
+			 driver/devdrv/usim/src/usim_smt.c
+
+
+SRC_PATH += driver/devdrv/usim/src
+
+# Define the specified compile options to COMP_DEFS
+#COMP_DEFS += __NO_PMU__ \
+#			 __No_2G_Timer__ \
+ #            __temp_mask__ \
+#open this flag to enable drv_trace
+#COMP_DEFS += __SIM_DRV_TRACE__  \
+
+#In drvtest, we need these flags to do unit test
+ifeq ($(strip $(ATEST_ENABLE)),TRUE)
+	ifeq ($(strip $(ATEST_DRV_ENABLE)),TRUE)
+COMP_DEFS += __T1_HIGT_PRIORITY__ \
+			 __CHAINING_TEST__ \
+			 __SPEED_TEST__
+	endif
+endif
+			 
+#COMP_DEFS += __DBG_MSG__ \
+
+COMP_DEFS += __DBG_MSG__ \
+             __TBD__
+
+#INC_DIR += driver/devdrv/usim/inc \
+#			 ps/sim2/include \
+#			 dp_engine/che \
+#			 base/inc/chip/MT6290 \
+
+#  Define include path lists to INC_DIR
+INC_DIR += driver/devdrv/usim/inc \
+           ./service/sst/include \
+		   interface/driver/regbase \
+	   ./interface/service/hif \
diff --git a/mcu/make/module/driver/peripheral/extern/drv.mak b/mcu/make/module/driver/peripheral/extern/drv.mak
new file mode 100644
index 0000000..85ace45
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/extern/drv.mak
@@ -0,0 +1,32 @@
+# Define source file lists to SRC_LIST

+SRC_LIST = driver/drv/src/bf.c \
+           driver/drv/src/e_compass_sensor.c \
+           driver/drv/src/e_compass_main.c \
+           driver/drv/src/BC_drv.c
+

+#  Define include path lists to INC_DIR

+INC_DIR = driver/drv/include \
+          interface/driver/connectivity/usb_driver \
+          driver/connectivity/usb_driver/inc \
+          driver/storage/flash/mtd/inc \
+          driver/storage/flash/fdm/inc \
+          driver/storage/mc/inc \
+          driver/connectivity/usb_class/include \
+          ./service/sst/include \
+          ./service/sst/include \
+          ./service/ssf/inc \
+          interface/driver/drv_def \
+		  interface/driver/regbase \
+          driver/peripheral/inc
+

+ifeq ($(strip $(LGE_SECURITY)), TRUE)

+    INC_DIR += custom/modem/lgesecurity

+endif

+

+# Define the specified compile options to COMP_DEFS

+COMP_DEFS = APCS_INTWORK

+

+# Define the source file search paths to SRC_PATH

+SRC_PATH = driver/drv/src \
+           driver/connectivity/usb_driver/src \
+           driver/storage/mc/src
diff --git a/mcu/make/module/driver/peripheral/mc.mak b/mcu/make/module/driver/peripheral/mc.mak
new file mode 100644
index 0000000..fdce0f0
--- /dev/null
+++ b/mcu/make/module/driver/peripheral/mc.mak
@@ -0,0 +1,39 @@
+# Define source file\ lists to SRC_LIST
+    SRC_LIST += driver/storage/mc/src/dcl_memory_card.c \
+    		   driver/storage/mc/src/msdc.c \
+    		   driver/storage/mc/src/usbms_msdc.c
+    ifneq ($(filter __MSDC2_SD_MMC__, $(strip $(COM_DEFS))),)
+        SRC_LIST += driver/storage/mc/src/msdc_fake_kal.c \
+    		    driver/storage/mc/src/msdc2.c \
+    		    driver/storage/mc/src/sdio_drv.c \
+        	    #driver/storage/mc/src/msdc_test.c
+    endif
+## SD/MMC memory card select.
+    ifneq ($(filter __MSDC_SD_MMC__, $(strip $(MODULE_DEFS))),)
+        SRC_LIST += driver/storage/mc/src/sd.c \
+                    driver/storage/mc/src/sd_drv.c
+        ifneq ($(filter __MSDC2_SD_MMC__, $(strip $(COM_DEFS))),)
+            SRC_LIST += driver/storage/mc/src/sd2.c \
+                        driver/storage/mc/src/sd_drv2.c \
+                        driver/storage/mc/src/sd_adap.c
+        endif
+    endif
+
+
+
+#  Define include path lists to INC_DIR
+INC_DIR += interface/driver/drv_def \
+          driver/storage/mc/inc \
+          ./service/sst/include \
+          interface/driver/regbase \
+          ./service/fs/common/include \
+          driver/sys_drv/cache/inc \
+          driver/sys_drv/cache/inc/$(MD_VER_FOLDER) \
+          $(strip $(PROJDIR))/custom/driver/drv_gen 
+          
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS +=
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH += driver/storage/mc/src
+
diff --git a/mcu/make/module/driver/simulation/drv_sim.mak b/mcu/make/module/driver/simulation/drv_sim.mak
new file mode 100644
index 0000000..2efda22
--- /dev/null
+++ b/mcu/make/module/driver/simulation/drv_sim.mak
@@ -0,0 +1,32 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = MoDIS_VC9/drv_sim/src/w32_audio.c \
+           MoDIS_VC9/drv_sim/src/w32_dummy_drv.c \
+           MoDIS_VC9/drv_sim/src/w32_keys_dcl.c \
+           MoDIS_VC9/drv_sim/src/w32_l1.c \
+           MoDIS_VC9/drv_sim/src/w32_l4c.c \
+           MoDIS_VC9/drv_sim/src/w32_uart.c \
+           MoDIS_VC9/drv_sim/src/w32_gpt_dcl.c \
+           MoDIS_VC9/drv_sim/src/w32_memory_card.c
+
+ifneq ($(filter __FS_MODIS_FDM__,$(strip $(MODULE_DEFS))),)
+  SRC_LIST += MoDIS_VC9/drv_sim/src/w32_file_disk.c
+endif
+
+# If TCPIP_SUPPORT = NONE => Do not build modis_vc9\drv_sim\src\w32_socket.c
+#ifneq ($(strip $(TCPIP_SUPPORT)),NONE)
+# SRC_LIST += .\MoDIS_VC9\drv_sim\src\w32_socket.c \
+# .\MoDIS_VC9\drv_sim\src\w32_abm.c
+#endif
+
+#  Define include path lists to INC_DIR
+INC_DIR = MoDIS_VC9/MoDIS \
+          MoDIS_VC9/drv_sim/include \
+          driver/devdrv/emi/inc
+
+INC_DIR += driver/peripheral/inc
+
+# Define the specified compile options to COMP_DEFS

+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH

+SRC_PATH = MoDIS_VC9/drv_sim/include/src
diff --git a/mcu/make/module/driver/system/sys_drv.mak b/mcu/make/module/driver/system/sys_drv.mak
new file mode 100644
index 0000000..ffda28e
--- /dev/null
+++ b/mcu/make/module/driver/system/sys_drv.mak
@@ -0,0 +1,420 @@
+##############################################################
+# Define bootloader folder path
+##############################################################
+
+ifneq ($(filter MT6297_IA, $(strip $(MODULE_DEFS))),)
+    MD_VER_FOLDER = md97
+endif
+
+# Define source file lists to SRC_LIST
+SRC_LIST =driver/sys_drv/init/src/$(MD_VER_FOLDER)/idle_task.c \
+                    driver/sys_drv/dormant/src/$(MD_VER_FOLDER)/dormant_service.c
+# driver/sys_drv/init/src/info.c
+# driver/sys_drv/init/src/nfb_loader.c \
+
+ifeq ($(strip $(ESL_COSIM_LTE)),FALSE)
+  ifeq ($(strip $(COMPILER)),GCC)
+        CFLAGS += -Werror
+  endif
+endif
+
+ifneq ($(strip $(MD_VER_FOLDER)),md93)
+    SRC_LIST += driver/sys_drv/sfu/src/$(MD_VER_FOLDER)/drv_sfu.c
+    SRC_LIST += driver/sys_drv/spu/src/$(MD_VER_FOLDER)/drv_spu.c
+endif
+
+ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+ifeq ($(filter BASIC,$(TEST_LOAD_TYPE)),)
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+    ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+      SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/spu_trace_utmd.c
+    else
+      SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/spu_trace_utmd.c
+    endif   
+else
+  SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/spu_trace_utmd.c
+endif
+endif
+endif
+
+#ifneq ($(filter __DSP_FCORE4__, $(strip $(MODULE_DEFS))),)
+# SRC_LIST += driver/sys_drv/init/src/dmdsp_init.c
+#endif
+
+ifneq ($(filter __LP_SCHEDULE_ENABLE__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += driver/sys_drv/task_agent/src/tg_hisr.c
+endif
+
+ifneq ($(filter __SMART_PHONE_MODEM__ , $(strip $(MODULE_DEFS))),)
+# SRC_LIST += driver/sys_drv/emi/src/emimpu.c
+endif
+
+ifeq ($(filter __SMART_PHONE_MODEM__, $(strip $(MODULE_DEFS))),)
+# SRC_LIST += driver/sys_drv/emi/src/emi.c
+else
+# SRC_LIST += driver/sys_drv/emi/src/emi.c
+endif
+
+ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+  ifneq ($(filter __DSP_FCORE4__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += driver/sys_drv/ipc/src/mdci.c
+  endif
+endif
+
+ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+      #SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init.c
+      #SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_comm.c
+      #SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_trc.c
+      #SRC_LIST += driver/sys_drv/init/src/boot_cert_pattern.c
+endif
+
+ifeq ($(strip $(COMPILER)), GCC)
+  ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+    ifeq ($(strip $(MD_VER_FOLDER)),md93)
+      SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_gpr.S
+    endif
+    ifeq ($(strip $(MD_VER_FOLDER)),md97)
+      ifeq ($(filter MT6297_IA, $(strip $(MODULE_DEFS))),)
+         SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_vpe0.S
+         SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_vpe2.S
+         SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_tc.S
+      endif
+      SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/cache_dpdl2.c
+    endif
+    ifeq ($(strip $(MD_VER_FOLDER)),md97p)
+      SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_vpe0.S
+      SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_vpe2.S
+      SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_tc.S
+    endif
+    
+    ifneq ($(filter MT6297_IA, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += driver/sys_drv/init/src/md97ia/bootarm_gcc.S
+      SRC_LIST += driver/sys_drv/init/src/md97ia/stack_init.S
+      SRC_LIST += driver/sys_drv/init/src/md97ia/init_vpe1.S
+      SRC_LIST += driver/sys_drv/init/src/md97ia/init_cm.S
+      SRC_LIST += driver/sys_drv/init/src/md97ia/join_domain.S
+      SRC_LIST += driver/sys_drv/init/src/md97ia/init.c
+      SRC_LIST += driver/sys_drv/init/src/md97ia/init_comm.c
+      SRC_LIST += driver/sys_drv/init/src/md97ia/init_trc.c
+      SRC_LIST += driver/sys_drv/cache/src/md95/l1caches.S
+      SRC_LIST += driver/sys_drv/cache/src/md95/l2cache.S
+      SRC_LIST += driver/sys_drv/cache/src/md95/cache.c
+      SRC_LIST += driver/sys_drv/cache/src/md95/cache_util.c
+    else
+      SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/bootarm_gcc.S
+      SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/stack_init.S
+      SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_vpe1.S
+      SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_cm.S
+      SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/join_domain.S
+      SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init.c
+      SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_comm.c
+      SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/init_trc.c
+      SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/l1caches.S
+      SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/l2cache.S
+      SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/cache.c
+      SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/cache_util.c
+      ifeq ($(strip $(MD_VER_FOLDER)),md93)
+        #No idle_service.c
+      else
+        ifeq ($(strip $(MD_VER_FOLDER)),md95)
+          #No idle_service.c
+        else
+          SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/idle_service.c
+        endif  
+      endif
+    endif
+    #SRC_LIST += driver/sys_drv/init/src/set_gpr_boot_values.S
+    #SRC_LIST += driver/sys_drv/init/common/copy_c2_ram.S
+    #SRC_LIST += driver/sys_drv/init/common/init_caches.S
+    #SRC_LIST += driver/sys_drv/init/common/init_cp0.S
+    #SRC_LIST += driver/sys_drv/init/common/init_itc.S
+    #SRC_LIST += driver/sys_drv/init/common/init_L2_CM3.S
+    #SRC_LIST += driver/sys_drv/init/common/init_L23caches.S
+    #SRC_LIST += driver/sys_drv/init/common/init_segmentation.S
+    #SRC_LIST += driver/sys_drv/init/src/release_mp.S
+    #SRC_LIST += driver/sys_drv/init/common/init_CoreFPGA6_mem.S
+    #SRC_LIST += driver/sys_drv/init/common/init_caches2.S
+    #SRC_LIST += driver/sys_drv/cache/src/init_l1caches.S
+    #SRC_LIST += driver/sys_drv/init/common/init_L2_CM2.S
+    #SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/l1caches.S
+    #SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/l2cache.S
+    SRC_LIST += driver/sys_drv/hw_itc/src/hw_itc.c
+    SRC_LIST += driver/sys_drv/hw_itc/src/hw_itc_init.S
+    SRC_LIST += driver/sys_drv/cache/src/cm2_drv.c
+    SRC_LIST += driver/sys_drv/mpu/src/$(MD_VER_FOLDER)/mpu.c
+    SRC_LIST += driver/sys_drv/dormant/src/$(MD_VER_FOLDER)/interAptiv-dormantMode_gcc.S
+  endif
+
+else  # RVCT
+  SRC_LIST += driver/sys_drv/cache/src/cp15_rvct.S
+  ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+    SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/bootarm_rvct.S
+  endif
+endif
+
+ifneq ($(filter __ARM9_MMU__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += driver/sys_drv/cache/src/mmu.c
+endif
+
+ifneq ($(filter __ARM11_MMU__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += driver/sys_drv/cache/src/mmu.c
+endif
+
+ifneq ($(filter __CR4__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += driver/sys_drv/cache/src/mpu.c
+endif
+
+ifneq ($(filter __MIPS_IA__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mips_ia_pmu_montr.c
+      SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mips_ia_cm_pmu.c
+      SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mips_ia_cm_pmu_service.c
+      SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/mips_ia_utils.c
+
+      MIPS_IA_MR1_SRC_LIST := driver/sys_drv/init/src/md93/mips_ia_mr1_utils.c
+      MIPS_IA_MR2_SRC_LIST := driver/sys_drv/init/src/md93/mips_ia_mr2_utils.c
+      MIPS_IA_MR3_SRC_LIST := driver/sys_drv/init/src/md95/mips_ia_mr3_utils.c\
+           driver/sys_drv/pmu/src/md95/mips_ia_icm_pmu.c
+
+      MIPS_IA_MR_VERSION_MT6763:=MR2
+      MIPS_IA_MR_VERSION_MT6739:=MR2
+      MIPS_IA_MR_VERSION_MT6771:=MR2
+      MIPS_IA_MR_VERSION_MT6765:=MR2
+      MIPS_IA_MR_VERSION_MT6295M:=MR3
+      MIPS_IA_MR_VERSION_MT3967:=MR3
+      MIPS_IA_MR_VERSION_MT6785:=MR3
+      MIPS_IA_MR_VERSION_GEN_md92:=MR1
+      MIPS_IA_MR_VERSION_GEN_md93:=MR2
+      MIPS_IA_MR_VERSION_GEN_md95:=MR3
+      # check platform first
+      MIPS_IA_MR_VERSION:=$(MIPS_IA_MR_VERSION_$(strip ${PLATFORM}))
+      # if no platform, check generation
+      MIPS_IA_MR_VERSION:=$(if ${MIPS_IA_MR_VERSION}, ${MIPS_IA_MR_VERSION}, $(MIPS_IA_MR_VERSION_GEN_$(strip ${MD_VER_FOLDER})))
+      # otherwise, use default setting
+      MIPS_IA_MR_VERSION:=$(if ${MIPS_IA_MR_VERSION}, ${MIPS_IA_MR_VERSION}, MR2)
+
+      MIPS_IA_MR_SRC_LIST:=$(MIPS_IA_$(strip ${MIPS_IA_MR_VERSION})_SRC_LIST)
+      SRC_LIST +=   ${MIPS_IA_MR_SRC_LIST}
+
+mips_ia_pmu_montr.obj: CFLAGS += -minline-intermix
+
+else
+# For I7200
+      SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mdmcu_core_pmu.c
+      SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mdmcu_l2_pmu.c
+      SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mdmcu_pmu_drv.c
+      SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mdmcu_pmu_srv.c
+      SRC_LIST += driver/sys_drv/pmu/src/$(MD_VER_FOLDER)/mdmcu_pmu_cfg.c
+
+      SRC_LIST += driver/sys_drv/init/src/$(MD_VER_FOLDER)/mdmcu_init.c
+endif
+
+ifneq ($(filter __MTK_MMU_V2__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += driver/sys_drv/cache/src/mpu_mtk_mmu_v2_int.c
+endif
+
+
+###################################################################
+# Define include path lists to INC_DIR
+INC_DIR = ./service/sst/include \
+          ./service/sst/include \
+          $(strip $(PROJDIR))/verno \
+          ./service/sss/interface/inc \
+          driver/peripheral/inc \
+          driver/storage/flash/fdm/inc \
+          driver/sys_drv/mpu/inc/$(MD_VER_FOLDER) \
+          driver/sys_drv/init/inc \
+          interface/driver/sys_drv \
+          interface/driver/devdrv/pcmon \
+          driver/sys_drv/cache/inc \
+          driver/sys_drv/mmu/inc \
+          driver/sys_drv/pmu/inc \
+          driver/sys_drv/pmu/inc/$(MD_VER_FOLDER) \
+          ./service/sys_svc/region/inc \
+          ./service/sys_svc/excep_hdlr/inc \
+          ./service/sys_svc/gfh/public \
+          ./service/sys_svc/profile/inc \
+          ./service/sys_svc/dspfm_lte/inc \
+          driver/devdrv/emi/inc \
+          driver/devdrv/iomux/inc \
+          driver/devdrv/cfgctl/inc \
+          driver/devdrv/pms/inc \
+          driver/sys_drv/dormant/inc/$(MD_VER_FOLDER) \
+          driver/sys_drv/dormant/src/$(MD_VER_FOLDER) \
+          ./interface/service/sys_svc \
+          ./interface/service/sst \
+          ./interface/service/dhl \
+          driver/sys_drv/hw_itc/inc \
+          interface/driver/devdrv/mdipc \
+          interface/driver/devdrv/busmpu \
+          interface/driver/regbase \
+          interface/driver/devdrv/ect \
+          driver/devdrv/rstctl/inc \
+          driver/sleep_drv/internal/inc \
+          interface/driver/che \
+          driver/devdrv/elm/inc \
+          interface/driver/sib_drv/scc 
+ifneq ($(filter MT6297_IA, $(strip $(MODULE_DEFS))),)
+    INC_DIR += driver/devdrv/cirq/md97/inc \
+          driver/devdrv/bus/md97/inc \
+      driver/sys_drv/init/inc/md97ia\
+      driver/sys_drv/cache/inc/md95 
+else
+    INC_DIR += driver/devdrv/cirq/$(MD_VER_FOLDER)/inc \
+          driver/devdrv/bus/$(MD_VER_FOLDER)/inc \
+      driver/sys_drv/init/inc/$(MD_VER_FOLDER)\
+          driver/sys_drv/cache/inc/$(MD_VER_FOLDER)     
+endif
+      
+ifneq ($(filter __CACHE_TEST__, $(strip $(MODULE_DEFS))),)
+    SRC_LIST += driver/sys_drv/cache/src/cachetest/cachetest.c
+    INC_DIR += driver/sys_drv/cache/src/cachetest
+    ifeq ($(strip $(MD_VER_FOLDER)),md97)
+      SRC_LIST += driver/sys_drv/cache/src/$(MD_VER_FOLDER)/drvtest_cache_dpdl2.c
+    endif
+endif
+
+ifneq ($(strip $(MD_VER_FOLDER)),md93)
+ifneq ($(filter MT6297_IA, $(strip $(MODULE_DEFS))),)
+    INC_DIR += driver/sys_drv/sfu/inc/md95
+    INC_DIR += driver/sys_drv/spu/inc/md97
+else
+    INC_DIR += driver/sys_drv/sfu/inc/$(MD_VER_FOLDER)
+    INC_DIR += driver/sys_drv/spu/inc/$(MD_VER_FOLDER)
+endif
+endif
+# solution for 93/95 co-codebase re-arch for R3 auto-sync to UMOLYA TRUNK
+ifneq ($(wildcard interface/driver/dvfs_drv),)
+    INC_DIR += interface/driver/dvfs_drv/$(MD_VER_FOLDER)
+else
+    INC_DIR += driver/sleep_drv/public/inc
+endif
+
+ifneq ($(wildcard interface/driver/tfwk_drv),)
+    INC_DIR += interface/driver/tfwk_drv
+endif
+
+ifndef __MAUI_BASIC__
+    INC_DIR += interface/l1/mml1/external
+endif
+
+ifneq ($(filter __ESL_COSIM_LTE__, $(strip $(MODULE_DEFS))),)
+    INC_DIR += driver/devdrv/hsl/inc
+endif
+
+L1_UTMD_FILES += driver/sys_drv/spu/src/spu_trace_utmd.json
+INC_DIR += $(strip $(COMP_L1_TRC_DIR))
+###################################################################
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = APCS_INTWORK
+
+COMP_DEFS += $(strip $(PLATFORM))
+
+COMP_DEFS  += CACHE_FLUSH_IN_DORMANT=1
+
+ifeq ($(strip $(ENHANCED_SINGLE_BANK_NOR_FLASH_SUPPORT)),TRUE)
+  COMP_DEFS += SINGLE_BANK_SUPPORT
+endif
+
+ifeq ($(TS_PROFILING),TRUE)
+    COMP_DEFS   +=  __TIME_STAMP__\
+                    __TIME_STAMP_UTIL__\
+                    __TIME_STAMP_TDMA_TIMER__\
+                    __TIME_STAMP_FORCE_ENABLE__
+endif
+
+ifeq ($(strip $(call Upper,$(UE_SIMULATOR))),TRUE)
+    COMP_DEFS   +=  L1_SIM
+endif
+
+ifeq ($(strip $(TEST_LOAD_TYPE)),BASIC)
+  INC_DIR += ./interface/service/hif \
+    ./interface/service/hif
+endif
+
+ifneq ($(strip $(filter __ESL_ENABLE__,$(MODULE_DEFS))),)
+  SRC_LIST += driver/sys_drv/esl/src/esl_profile.c
+  ifeq ($(strip $(MD_VER_FOLDER)),md97)
+    SRC_LIST += driver/sys_drv/esl/src/md97_esl_test.c
+  else
+    SRC_LIST += driver/sys_drv/esl/src/esl_test.c
+  endif 
+  ifneq ($(strip $(MD_VER_FOLDER)),md97)
+    SRC_LIST += driver/sys_drv/esl/src/esl_dspr2.c
+    SRC_LIST += driver/sys_drv/init/$(MD_VER_FOLDER)/src/release_mp.S
+  endif
+  INC_DIR += driver/sys_drv/esl/inc
+endif
+
+ifneq ($(strip $(filter __SPV_UFPS_LOAD__,$(MODULE_DEFS))),)
+  INC_DIR += driver/sys_drv/esl/inc
+  SRC_LIST += driver/sys_drv/esl/src/esl_profile.c
+  ifeq ($(strip $(MD_VER_FOLDER)),md97)
+    SRC_LIST += driver/sys_drv/esl/src/md97_esl_test.c
+  else
+    SRC_LIST += driver/sys_drv/esl/src/esl_profile.c
+    SRC_LIST += driver/sys_drv/esl/src/spv_test.c
+    SRC_LIST += driver/sys_drv/esl/src/esl_dspr2.c
+    INC_DIR += driver/devdrv/elm/inc
+  endif
+endif
+
+ifneq ($(strip $(filter __ESL_BENCHMARK_COREMARK__,$(MODULE_DEFS))),)
+    SRC_LIST += driver/sys_drv/esl/src/coremark/core_list_join.c
+    SRC_LIST += driver/sys_drv/esl/src/coremark/core_main.c
+    SRC_LIST += driver/sys_drv/esl/src/coremark/core_matrix.c
+    SRC_LIST += driver/sys_drv/esl/src/coremark/core_state.c
+    SRC_LIST += driver/sys_drv/esl/src/coremark/core_util.c
+    SRC_LIST += driver/sys_drv/esl/src/coremark/barebones/core_portme.c
+    SRC_LIST += driver/sys_drv/esl/src/coremark/barebones/cvt.c
+    SRC_LIST += driver/sys_drv/esl/src/coremark/barebones/ee_printf.c
+    INC_DIR += driver/sys_drv/esl/src/coremark
+    INC_DIR += driver/sys_drv/esl/src/coremark/barebones
+
+    %/core_list_join.obj: CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+    %/core_main.obj:      CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+    %/core_matrix.obj:    CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+    %/core_state.obj:     CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+    %/core_util.obj:      CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+    %/core_portme.obj:    CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+    %/cvt.obj:            CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+    %/ee_printf.obj:      CFLAGS := -Wall -O3 -funroll-all-loops -falign-jumps=16 -falign-functions=16 -fgcse-sm -fgcse-las -finline-functions -finline-limit=1000 -msoft-float -mtune=i7200 -march=32r6 -mno-imadd -save-temps -fdollars-in-identifiers
+
+    TEMPspace :=
+    TEMPspace +=
+    #core_main.obj:      CFLAGS += -DCOMPILER_FLAGS=\"$(subst $(TEMPspace),:,$(filter -f% -m% -E% -O%,$(CFLAGS)))\"
+    %/core_main.obj:      CFLAGS += -DCOMPILER_FLAGS=\"$(subst $(TEMPspace),:,$(filter-out -W% -f%,$(CFLAGS)))\"
+endif
+
+ifneq ($(strip $(filter __ESL_BENCHMARK_DHRYSTONE__,$(MODULE_DEFS))),)
+    SRC_LIST += driver/sys_drv/esl/src/dhrystone/dhry_1.c
+    SRC_LIST += driver/sys_drv/esl/src/dhrystone/dhry_2.c
+    INC_DIR += driver/sys_drv/esl/src/dhrystone
+
+    %/dhry_1.obj:         CFLAGS := $(filter-out -O1 -O2 -O3 -Os -Werror=%,$(CFLAGS)) -O3
+    %/dhry_2.obj:         CFLAGS := $(filter-out -O1 -O2 -O3 -Os -Werror=%,$(CFLAGS)) -O3
+endif
+
+#fdr_reorg
+INC_DIR += interface/service/sbp \
+           interface/protocol/as_c2k/common \
+           custom/protocol/common/ps
+ifneq ($(filter __MIPS_IA__, $(strip $(MODULE_DEFS))),)
+%/esl_test.obj:     CFLAGS += -DDSPR2_TEST
+%/esl_profile.obj:  CFLAGS += -DDSPR2_TEST
+%/esl_dspr2.obj:    CFLAGS += -mdspr2
+%/interAptiv-dormantMode_gcc.obj:   AFLAGS := $(filter-out -mips16 -mips16e2, $(AFLAGS))
+endif
+
+%/bootarm_gcc.obj:                  AFLAGS := $(filter-out -mips16 -mips16e2, $(AFLAGS))
+ifeq ($(strip $(MD_VER_FOLDER)),md95)
+%/init_cm.obj:                      AFLAGS := $(filter-out -mips16 -mips16e2, $(AFLAGS))
+endif
+ifneq ($(filter MT6297_IA, $(strip $(MODULE_DEFS))),)
+ifeq ($(strip $(MD_VER_FOLDER)),md97)
+%/init_cm.obj:                      AFLAGS := $(filter-out -mips16 -mips16e2, $(AFLAGS))
+endif
+endif
+
+ifeq ($(strip $(LTO_BUILD)),TRUE)
+%/dormant_service.obj: CFLAGS := $(filter-out -flto -fno-fat-lto-objects, $(CFLAGS)) 
+endif
diff --git a/mcu/make/module/driver/tty/extern/tty.mak b/mcu/make/module/driver/tty/extern/tty.mak
new file mode 100644
index 0000000..4913a73
--- /dev/null
+++ b/mcu/make/module/driver/tty/extern/tty.mak
@@ -0,0 +1,33 @@
+#######################################################################

+#                             tty                                     #

+#######################################################################

+# Define source file lists to SRC_LIST

+SRC_LIST = driver/tty/src/dcl_tty.c
+

+ifneq ($(filter __TTY_UT__, $(strip $(MODULE_DEFS))),)

+    SRC_LIST += driver/tty/src/tty_ut.c
+endif

+

+ifneq ($(filter __EXCEPT_TTY_UT__, $(strip $(MODULE_DEFS))),)

+    SRC_LIST += driver/tty/src/excp_tty_ut.c
+endif

+

+ifneq ($(filter ATEST_SYS_TTYCORE, $(strip $(MODULE_DEFS))),)

+    SRC_LIST += driver/tty/src/tty_unit_test.c

+endif

+

+#  Define include path lists to INC_DIR

+INC_DIR = driver/tty/inc \
+          driver/devdrv/common/inc \
+          interface/protocol/l2_utility/flc2_v2
+

+# Define the specified compile options to COMP_DEFS

+COMP_DEFS = 

+

+# Define the source file search paths to SRC_PATH

+SRC_PATH = driver/tty/src
+

+#fdr_reorg

+INC_DIR += interface/service/sbp \

+           interface/protocol/as_c2k/common \

+           custom/protocol/common/ps
\ No newline at end of file
diff --git a/mcu/make/module/driver/ut/drvtest.mak b/mcu/make/module/driver/ut/drvtest.mak
new file mode 100644
index 0000000..65d5f24
--- /dev/null
+++ b/mcu/make/module/driver/ut/drvtest.mak
@@ -0,0 +1,89 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = driver/drvtest/common/src/drvtest_common.c \
+            driver/drvtest/common/src/drvtest_dummy.c
+ifeq ($(filter __ARM7EJ_S__, $(strip $(MODULE_DEFS))),)
+    SRC_LIST += driver/drvtest/common/src/drvtest_sm.c
+endif
+
+# Define include path lists to INC_DIR
+INC_DIR = driver/devdrv/common/inc \
+            driver/devdrv/iomux/inc \
+            driver/drvtest/common/inc \
+			driver/sys_drv/cache/inc \
+            driver/sys_drv/cache/inc/$(MD_VER_FOLDER) \
+            driver/sys_drv/init/inc \
+            interface/driver/sys_drv \
+            ./service/sst/include \
+            ./service/sst/include \
+            interface/driver/devdrv/mdipc \
+            driver/devdrv/mdipc/inc \
+			driver/devdrv/gpt/inc \
+            driver/sleep_drv/internal/inc \
+            driver/devdrv/cirq/$(MD_VER_FOLDER)/inc
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = driver/drvtest/common/src
+
+include make/module/driver/ut/drvtest/test.mak
+ifeq ($(strip $(HIF_USB_SUPPORT)),TRUE)
+include make/module/driver/drv_hif.mak
+endif
+-include make/module/driver/peripheral/extern/devdrv/iomux.mak
+include make/module/driver/ut/drvtest/gpt.mak
+-include make/module/driver/ut/drvtest/l2_copro.mak
+include make/module/driver/ut/drvtest/spic.mak
+include make/module/driver/ut/drvtest/nfi.mak
+-include make/module/driver/ut/drvtest/mac_phy_cosim.mak
+-include make/module/driver/ut/drvtest/l2_hw_logging.mak
+include make/module/driver/ut/drvtest/gdma_ps.mak
+include make/module/driver/ut/drvtest/hif.mak
+include make/module/driver/ut/drvtest/usim.mak
+include make/module/driver/ut/drvtest/rstctl.mak
+include make/module/driver/ut/drvtest/cpu.mak
+include make/module/driver/ut/drvtest/coresight.mak
+include make/module/driver/ut/drvtest/gpio.mak
+include make/module/driver/ut/drvtest/eint.mak
+
+include make/module/driver/ut/drvtest/dem.mak
+
+include make/module/driver/ut/drvtest/pfc.mak
+include make/module/driver/ut/drvtest/uart.mak
+include make/module/driver/ut/drvtest/idc.mak
+include make/module/driver/ut/drvtest/stress.mak
+include make/module/driver/ut/drvtest/drvtest_slt.mak
+include make/module/driver/ut/drvtest/mc_drvtest.mak
+include make/module/driver/ut/drvtest/dspfm.mak
+include make/module/driver/ut/drvtest/busmon.mak
+include make/module/driver/ut/drvtest/bsi.mak
+include make/module/driver/ut/drvtest/dormant.mak
+-include make/module/driver/ut/drvtest/ss.mak
+include make/module/driver/ut/drvtest/log_seq.mak
+include make/module/driver/ut/drvtest/bwl.mak
+-include make/module/driver/ut/drvtest/stp.mak
+-include make/module/driver/ut/drvtest/sdf.mak
+include make/module/driver/ut/drvtest/mtad.mak
+include make/module/driver/ut/drvtest/lp.mak
+include make/module/driver/ut/drvtest/sleep_it.mak
+-include make/module/driver/ut/drvtest/scc.mak
+include make/module/driver/ut/drvtest/pcmon.mak
+include make/module/driver/ut/drvtest/ect.mak
+include make/module/driver/ut/drvtest/asm.mak
+include make/module/driver/ut/drvtest/soe.mak
+include make/module/driver/ut/drvtest/lhif.mak
+include make/module/driver/ut/drvtest/dpcopro_at.mak
+-include make/module/driver/ut/drvtest/pcc.mak
+include make/module/driver/ut/drvtest/hifcldma_ap.mak
+include make/module/driver/ut/drvtest/dpmaif.mak
+include make/module/driver/ut/drvtest/mdcirq.mak
+include make/module/driver/peripheral/devdrv_sec.mak
+include make/module/driver/ut/drvtest/dhl_ulsp.mak
+include make/module/driver/ut/drvtest/pcie_at.mak
+include make/module/driver/ut/drvtest/cos.mak
+include make/module/driver/ut/drvtest/cldmadev_drvtest.mak
+include make/module/driver/ut/drvtest/che_drv.mak
+include make/module/driver/ut/drvtest/tia.mak
+
+#CFLAGS += -Werror
diff --git a/mcu/make/module/l1/cl1/extern/rfd_ext.mak b/mcu/make/module/l1/cl1/extern/rfd_ext.mak
new file mode 100644
index 0000000..de85b86
--- /dev/null
+++ b/mcu/make/module/l1/cl1/extern/rfd_ext.mak
@@ -0,0 +1,32 @@
+
+
+ifneq ($(strip $(MODIS_CONFIG)), TRUE)
+SRC_LIST = interface/l1/cl1/rfd/external/comm/rf_custom/cl1d_rf_error_check.c \
+           interface/l1/cl1/rfd/external/comm/rf_custom/cl1d_mmrf_share_data.c \
+           interface/l1/cl1/rfd/external/comm/rf_custom/cl1d_rf_mmrf_pcore.c
+endif
+
+SRC_LIST += interface/l1/cl1/rfd/external/comm/rf_custom/cl1_drdi.c
+
+
+SRC_PATH = interface/l1/cl1/rfd/external/comm/rf_custom
+
+# Define include path lists to INC_DIR
+INC_DIR = interface/l1/cl1/rfd/external/comm/rf_custom\
+           interface/service/nvram\
+           interface/l1/cl1/rfd\
+           ${UNIVERSAL_COMMON}/interface/modem
+
+
+INC_DIR += custom/l1/cl1_rf/$(strip $(C2K_RF_MODULE))
+INC_DIR += custom/l1/mml1_rf/$(strip $(MM_RF_MODULE))
+
+#fdr_reorg
+INC_DIR += interface/protocol/nas_c2k \
+           interface/protocol/agps \
+           interface/l1/cl1/common
+
+SRC_RULE_AUTOAMMS_DRDI := cl1_drdi.c
+TARGET_AMMS_DRDI_LIST := interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_list.txt interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_special_symbol_list.txt
+
+NOT_USE_CATEGORY_INCLUDE = TRUE
\ No newline at end of file
diff --git a/mcu/make/module/l1/el1/extern/el1d_ext.mak b/mcu/make/module/l1/el1/extern/el1d_ext.mak
new file mode 100644
index 0000000..19f827e
--- /dev/null
+++ b/mcu/make/module/l1/el1/extern/el1d_ext.mak
@@ -0,0 +1,80 @@
+# Define ./interface/modem folder path by project option 
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6293
+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6295
+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6297
+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6297p
+else
+	#no match chip
+endif
+# Define source file lists to SRC_LIST
+SRC_LIST = interface/l1/el1/external/comm/rf_custom/src/lrfcustomdata.c \
+           interface/l1/el1/external/comm/rf_custom/src/lte_custom_rf_mpr.c \
+           interface/l1/el1/external/comm/rf_custom/src/el1d_rf_dpd_error_check.c \
+           interface/l1/el1/external/comm/rf_custom/src/drdi/lrfdrdicommon_ext.c \
+           interface/l1/el1/external/comm/rf_custom/src/drdi/lrfdrdicaldata_ext.c \
+           interface/l1/el1/external/comm/rf_custom/src/drdi/ltpcdrdi_ext.c \
+           interface/l1/el1/external/comm/rf_custom/src/drdi/lrfdrdiant_ext.c \
+           interface/l1/el1/external/comm/rf_custom/src/drdi/ltxdrdimpr_ext.c \
+           interface/l1/el1/external/comm/rf_custom/src/drdi/ltxdrdihpue_ext.c \
+           interface/l1/el1/external/comm/rf_custom/src/lrfcustomdata_et.c \
+           interface/l1/el1/external/comm/rf_custom/src/lrfcustomdata_dpd.c \
+           interface/l1/el1/external/comm/rf_custom/src/lrfcustomdata_etdpd.c \
+           interface/l1/el1/external/comm/rf_custom/src/drdi/ltxdrdimpr_ext.c \
+           interface/l1/el1/external/comm/rf_custom/src/drdi/ldpddrdi_ext.c \
+           interface/l1/el1/external/comm/rf_custom/src/lrfcustomcommon_ext.c \
+           interface/l1/el1/external/comm/rf_custom/src/drdi/letdrdi_ext.c \
+           interface/l1/el1/external/comm/rf_custom/src/drdi/lrrcdrdi_ext.c
+
+
+ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += interface/l1/el1/external/md95/rf_custom/src/lte_custom_utas.c 
+endif
+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)
+SRC_LIST += interface/l1/el1/external/md97/rf_custom/src/lte_custom_utas.c 
+endif
+
+ifneq ($(filter __MTK_TARGET__ __LTE_L1SIM__, $(strip $(MODULE_DEFS))),)
+ SRC_LIST += interface/l1/el1/external/comm/rf_custom/src/lrfcustomerrorcheck.c \
+             interface/l1/el1/external/comm/rf_custom/src/el1d_rf_error_check.c \
+             interface/l1/el1/external/comm/rf_custom/src/drdi/lrfdrdicaldata_ext.c \
+             interface/l1/el1/external/comm/rf_custom/src/drdi/ltpcdrdi_ext.c \
+             interface/l1/el1/external/comm/rf_custom/src/drdi/lrfdrdiant_ext.c \
+             interface/l1/el1/external/comm/rf_custom/src/drdi/ltxdrdihpue_ext.c \
+             interface/l1/el1/external/comm/rf_custom/src/drdi/ltxdrdisar_ext.c \
+             interface/l1/el1/external/comm/rf_custom/src/lrfcustomdata_et.c \
+             interface/l1/el1/external/comm/rf_custom/src/lrfcustomdata_dpd.c \
+             interface/l1/el1/external/comm/rf_custom/src/lrfcustomdata_etdpd.c \
+             interface/l1/el1/external/comm/rf_custom/src/drdi/ldpddrdi_ext.c \
+             interface/l1/el1/external/comm/rf_custom/src/drdi/letdrdi_ext.c \
+             interface/l1/el1/external/comm/rf_custom/src/drdi/lrrcdrdi_ext.c
+endif
+
+#  Define include path lists to INC_DIR
+INC_DIR = interface/l1/el1/external/comm/rf_custom/inc \
+          interface/l1/el1/external \
+          $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/custom
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = interface/l1/el1/external/comm/rf_custom/src \
+           interface/l1/el1/external/comm/rf_custom/src/drdi
+
+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)
+   INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/common
+   INC_DIR += interface/l1/mml1/external/mml1_rf/mmrf_common
+   INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/sku_mgr
+   INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_fe
+   INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_rf
+   INC_DIR += custom/l1/mml1_devices/$(strip $(MM_DEVICE))
+endif
+ifneq ($(filter __CGA_SCAN_ONLY__, $(strip $(MODULE_DEFS))),)
+  CFLAGS += -fno-inline
+endif
+
+NOT_USE_CATEGORY_INCLUDE = TRUE
+
+SRC_RULE_AUTOAMMS_DRDI := lrfdrdicommon_ext.c lrfdrdiant_ext.c ltxdrdihpue_ext.c ltxdrdisar_ext.c ltpcdrdi_ext.c lrfdrdicaldata_ext.c ltxdrdimpr_ext.c ldpddrdi_ext.c letdrdi_ext.c
+TARGET_AMMS_DRDI_LIST := interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_list.txt interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_special_symbol_list.txt
\ No newline at end of file
diff --git a/mcu/make/module/l1/gl1/extern/l1_ext.mak b/mcu/make/module/l1/gl1/extern/l1_ext.mak
new file mode 100644
index 0000000..e0cc1c4
--- /dev/null
+++ b/mcu/make/module/l1/gl1/extern/l1_ext.mak
@@ -0,0 +1,52 @@
+# Define source file lists to SRC_LIST
+
+SRC_LIST = l1/gl1/l1d_ext/m12191.c \
+           l1/gl1/l1d_ext/m12192.c \
+           l1/gl1/l1d_ext/m12194.c \
+           l1/gl1/l1d_ext/m12193_l1core.c \
+           l1/gl1/l1d_ext/l1d_rf_error_check.c
+           
+SRC_LIST += l1/gl1/l1d_ext/l1d_rf_common.c
+
+ifneq ($(filter __2G_RF_CUSTOM_TOOL_SUPPORT__, $(strip $(MODULE_DEFS))),)
+   SRC_LIST += l1/gl1/l1d_ext/m12197_l1core.c
+endif
+
+#  Define include path lists to INC_DIR
+INC_DIR = l1/gl1/l1d_ext \
+          l1/interface/gl1/internal \
+          l1/interface/mml1 \
+          l1/gl1/l1d_ext
+
+ifeq ($(strip $(call Upper,$(UE_SIMULATOR))),TRUE)
+    INC_DIR += l1/gl1/common \
+               l1/gl1/interface \
+               l1/gl1/l1c \
+               l1/gl1/l1d \
+               l1/gl1/l1d_ext \
+               interface/protocol/gas/include \
+               interface/l1/ul1 \
+               l1/interface/el1 \
+               l1/interface/el1 \
+               l1/md_sm/l1sm \
+               l1/md_sm/common/l1sm
+endif
+
+ifneq ($(filter __UE_SIMULATOR__, $(strip $(MODULE_DEFS))),)
+  INC_DIR += l1_dm/common
+endif
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = __CATEGORY_MODEM__
+
+ifneq ($(filter __UE_SIMULATOR__, $(strip $(MODULE_DEFS))),)
+  COMP_DEFS += L1_SIM L1D_SIM __HYPER_SLEEP_MODE_CHIP__ AFC_13bit
+endif
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = l1/gl1/l1d_ext
+
+#fdr_reorg
+INC_DIR += interface/l1/cl1/common
+
+NOT_USE_CATEGORY_INCLUDE = TRUE
diff --git a/mcu/make/module/l1/gl1/extern/l1_ext_pcore.mak b/mcu/make/module/l1/gl1/extern/l1_ext_pcore.mak
new file mode 100644
index 0000000..d40a414
--- /dev/null
+++ b/mcu/make/module/l1/gl1/extern/l1_ext_pcore.mak
@@ -0,0 +1,21 @@
+# Define source file lists to SRC_LIST
+
+SRC_LIST = l1/gl1/l1d_ext/l1d_data_pcore.c \
+           l1/gl1/l1d_ext/m12190_pcore.c \
+           l1/gl1/l1d_ext/m12197_pcore.c \
+           l1/gl1/l1d_ext/l1d_mipi_data_pcore.c
+
+
+#  Define include path lists to INC_DIR
+INC_DIR = l1/gl1/l1d_ext \
+          
+INC_DIR += l1/gl1/l1d_ext
+
+INC_DIR += l1/interface/mml1
+
+INC_DIR += interface/l1/gl1/internal
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
diff --git a/mcu/make/module/l1/l1_config.mak b/mcu/make/module/l1/l1_config.mak
new file mode 100755
index 0000000..c923540
--- /dev/null
+++ b/mcu/make/module/l1/l1_config.mak
@@ -0,0 +1,57 @@
+CATEGORY_INCDIRS += ./interface/service/fsm
+CATEGORY_INCDIRS += interface/protocol/l2_utility/flc2_v2
+
+CATEGORY_INCDIRS += protocol/interface/ims \
+                    protocol/interface/l4 \
+                    protocol/interface/l4misc \
+                    protocol/interface/mcd/include \
+                    protocol/layer4/l4/include \
+                    protocol/layer4/l4/atci/include \
+                    protocol/layer4/l4/l4c/include/common \
+                    protocol/layer4/l4/l4c/include/proc \
+                    protocol/layer4/l4/csm/cc/include \
+                    protocol/layer4/l4/uem/include \
+                    protocol/layer4/l4/phb/include \
+                    protocol/layer4/l4/csm/cc/include \
+                    protocol/layer4/l4/csm \
+                    protocol/layer4/l4/tcm/etcm/include \
+                    protocol/layer4/l4/smsal/include \
+                    protocol/layer4/l4/tcm/rat_tcm/inc \
+                    protocol/layer4/l4/csm/ss/asn1/gen/include \
+                    protocol/layer4/l4/smu/include \
+                    protocol/layer4/l4/rac/common/include \
+                    protocol/layer4/l4/rac/ugrac/include \
+                    protocol/interface/asn/rr/include \
+                    protocol/layer4/l4/smslib/include \
+                    l1/gl1/l1d_ext
+
+ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+  CATEGORY_INCDIRS += protocol/layer4/l4/rac/erac/include
+endif             
+
+ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R8_SUPPORT)
+  CATEGORY_INCDIRS += l1/ul1/ul1d_ext
+else
+  ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R7_SUPPORT)
+    CATEGORY_INCDIRS += l1/ul1/ul1d_ext
+  else
+    ifneq ($(filter $(strip $(PLATFORM)),$(UL1_HS_PLATFORM)),)
+      CATEGORY_INCDIRS += protocol/ul1/ul1_hs/ul1d_ext
+    endif
+  endif
+endif
+
+#fdr_reorg
+CATEGORY_INCDIRS += protocol/interface/general
+
+# *************************************************************************
+# From Global include path 
+# *************************************************************************
+ifeq ($(strip $(ETCM)),TRUE)
+CATEGORY_INCDIRS += protocol/layer4/l4/tcm/etcm/include
+endif
+
+CATEGORY_INCDIRS += protocol/layer4/l4/tcm/rat_tcm/inc
+CATEGORY_DEFS += 
+
+CFLAGS := $(filter-out -fstrict-aliasing, $(CFLAGS)) -fno-strict-aliasing
diff --git a/mcu/make/module/l1/mmrf/extern/mml1_rf_ext.mak b/mcu/make/module/l1/mmrf/extern/mml1_rf_ext.mak
new file mode 100644
index 0000000..dad710a
--- /dev/null
+++ b/mcu/make/module/l1/mmrf/extern/mml1_rf_ext.mak
@@ -0,0 +1,48 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = interface/l1/mml1/external/mml1_rfd/src/mml1_rf_custom_data.c
+
+ifneq ($(filter __MD97__ __MD97P__, $(strip $(MODULE_DEFS))),)
+SRC_LIST += interface/l1/mml1/external/mml1_cdf/src/device_drivers_fe/mml1_cdf_device_driver_fe_intf.c \
+            interface/l1/mml1/external/mml1_cdf/src/common/mml1_cdf_custom_drdi_ext.c \
+            interface/l1/mml1/external/mml1_rfd/src/mml1_ant_custom_drdi_ext.c \
+            interface/l1/mml1/external/mml1_rf_common/src/mml1_rf_common_custom_drdi_ext.c \
+            interface/l1/mml1/external/mml1_rf_common/src/mml1_rf_common_custom_etdpd_ext.c
+endif
+
+#  Define include path lists to INC_DIR
+INC_DIR = interface/l1/mml1/external/mml1_rfd/inc
+
+ifneq ($(filter __MD97__ __MD97P__, $(strip $(MODULE_DEFS))),)
+INC_DIR += custom/l1/mml1_devices/$(strip $(MM_DEVICE)) \
+           interface/l1/mml1/external/mml1_cdf/inc/common \
+           interface/l1/mml1/external/mml1_cdf/inc/device_drivers_fe \
+           interface/l1/mml1/external/mml1_cdf/inc/device_drivers_rf \
+           interface/l1/mml1/external/mml1_cdf/inc/sku_mgr \
+           interface/l1/mml1/external/mml1_rf/mmrf_common \
+           interface/l1/mml1/external/mml1_rf_common/inc \
+           interface/l1/mml1/external
+endif
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = interface/l1/mml1/external/mml1_rfd/src
+
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+
+else 
+#  Define include path lists to INC_DIR
+INC_DIR += custom/l1/mml1_rf/$(MM_RF_MODULE)/DRDI/Set0
+endif
+
+ifneq ($(filter __EL1_FNEYE_INSTRUMENT_ALL_CONTEXT__ __EL1_FNEYE_INSTRUMENT_LISR__, $(strip $(MODULE_DEFS))),)
+  CFLAGS  += -finstrument-functions
+  CFLAGS  += -finstrument-functions-exclude-function-list=kal_get_current_core_id,kal_get_current_vpe_id
+endif
+
+ifneq ($(filter __CGA_SCAN_ONLY__ __EL1D_FNEYE_ENABLE__, $(strip $(MODULE_DEFS))),)
+  CFLAGS += -fno-inline
+endif
+
+NOT_USE_CATEGORY_INCLUDE = TRUE
+
+SRC_RULE_AUTOAMMS_DRDI := mml1_cdf_custom_drdi_ext.c mml1_ant_custom_drdi_ext.c mml1_rf_common_custom_drdi_ext.c
+TARGET_AMMS_DRDI_LIST := interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_list.txt interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_special_symbol_list.txt
\ No newline at end of file
diff --git a/mcu/make/module/l1/mmrf/extern/mml1_rf_ext_pcore.mak b/mcu/make/module/l1/mmrf/extern/mml1_rf_ext_pcore.mak
new file mode 100644
index 0000000..d146584
--- /dev/null
+++ b/mcu/make/module/l1/mmrf/extern/mml1_rf_ext_pcore.mak
@@ -0,0 +1,23 @@
+# Define source file lists to SRC_LIST

+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)

+SRC_LIST = interface/l1/mml1/external/mml1_rfd/src/mml1_rf_custom_func.c

+

+#  Define include path lists to INC_DIR

+INC_DIR = interface/l1/mml1/external/mml1_rfd/inc \

+          interface/l1/mml1/external

+else

+SRC_LIST = interface/l1/mml1/external/mml1_rfd/src/mml1_drdi.c

+		   

+#  Define include path lists to INC_DIR

+INC_DIR = interface/l1/mml1/external/mml1_rfd/inc \

+          interface/l1/mml1/external\

+          custom/l1/mml1_rf/$(MM_RF_MODULE)/DRDI/Set0

+endif

+

+# Define the source file search paths to SRC_PATH

+SRC_PATH = interface/l1/mml1/external/mml1_rfd/src

+

+SRC_RULE_AUTOAMMS_DRDI := mml1_drdi.c

+TARGET_AMMS_DRDI_LIST := interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_list.txt interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_special_symbol_list.txt

+

+NOT_USE_CATEGORY_INCLUDE = TRUE
\ No newline at end of file
diff --git a/mcu/make/module/l1/nl1/extern/nl1_ext.mak b/mcu/make/module/l1/nl1/extern/nl1_ext.mak
new file mode 100644
index 0000000..99481a2
--- /dev/null
+++ b/mcu/make/module/l1/nl1/extern/nl1_ext.mak
@@ -0,0 +1,78 @@
+# Define ./interface/modem folder path by project option

+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)

+    MD_VER_FOLDER_PATH = mt6293

+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)

+    MD_VER_FOLDER_PATH = mt6295

+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)

+    MD_VER_FOLDER_PATH = mt6297

+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)

+    MD_VER_FOLDER_PATH = mt6297p

+else

+    #no match chip

+endif

+# Define source file lists to SRC_LIST

+SRC_LIST = interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdicommon_ext.c  \

+           interface/l1/nl1/external/md97/rf_custom/src/cap_ext/drdi/nr_cap_drdicommon_type0_ext.c  \

+           interface/l1/nl1/external/md97/rf_custom/src/cap_ext/drdi/nr_cap_drdihwcap_type0_ext.c  \

+           interface/l1/nl1/external/md97/rf_custom/src/cap_ext/drdi/nr_cap_drdicommon_type1_ext.c  \

+           interface/l1/nl1/external/md97/rf_custom/src/cap_ext/drdi/nr_cap_drdihwcap_type1_ext.c  \

+           interface/l1/nl1/external/md97/rf_custom/src/cap_ext/drdi/nr_cap_drdicommon_type2_ext.c  \

+           interface/l1/nl1/external/md97/rf_custom/src/cap_ext/drdi/nr_cap_drdihwcap_type2_ext.c  \

+           interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdicaldata_ext.c \

+           interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_tx_drdihpue_ext.c     \

+           interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdipartialband_ext.c \

+           interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdisrs_ext.c \

+           interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_tx_drdimpr_ext.c \

+           interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdiant_ext.c \

+           interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdisar_ext.c \

+           interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdimimogroup_ext.c \

+           interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/nr_rfd_sar_ext.c \

+           interface/l1/nl1/external/comm/rf_custom/src/etdpd/nr_etdpd_customdata.c \

+           interface/l1/nl1/external/md97/rf_custom/src/etdpd/nr_dpd_customdata.c \

+           interface/l1/nl1/external/md97/rf_custom/src/etdpd/drdi/nr_dpd_drdicommon_ext.c \

+           interface/l1/nl1/external/md97/rf_custom/src/etdpd/drdi/nr_et_drdicommon_ext.c \

+           interface/l1/nl1/external/md97/rf_custom/src/etdpd/nr_et_customdata.c \

+           interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_tpc_drdi_ext.c\

+           interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdirfif_ext.c\

+           interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_cap_drdi_ext.c\

+           interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi/nr_rfd_drdisimultaneous_rtx_ext.c \

+           interface/l1/nl1/external/nl1_mpc_dsp/src/nr_mpc_dsp_cm.c

+           

+#  Define include path lists to INC_DIR

+INC_DIR = interface/l1/nl1/external \

+          interface/l1/nl1/external/5g  \

+          interface/l1/nl1/external/4g \

+          interface/l1/nl1/external/nl1_mpc_dsp/inc \

+          interface/l1/nl1/external/nl1_mpc_dsp/src \

+          interface/l1/mml1/external/mml1_cdf/inc/sku_mgr  \

+          interface/l1/mml1/external/mml1_cdf/inc/common  \

+          interface/l1/mml1/external/mml1_rf/mmrf_common \

+          interface/l1/mml1/external  \

+          $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/5g \

+          $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/custom \

+          interface/l1/nl1/external/comm/rf_custom/inc/etdpd \

+          interface/l1/nl1/external/md97/rf_custom/inc/etdpd \

+          interface/l1/mml1/external/mml1_etdpd

+  

+                                 

+# Define the source file search paths to SRC_PATH

+SRC_PATH = interface/l1/nl1/external/md97/rf_custom \

+           interface/l1/nl1/external/md97/rf_custom/src/rfd_ext/drdi \

+           interface/l1/nl1/external/md97/rf_custom/src/cap_ext/drdi

+

+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)

+   INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/common

+   INC_DIR += interface/l1/mml1/external/mml1_rf/mmrf_common

+   INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/sku_mgr

+   INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_fe

+   INC_DIR += interface/l1/mml1/external/mml1_cdf/inc/device_drivers_rf

+   INC_DIR += interface/l1/nl1/external/md97/rf_custom/inc/etdpd

+   INC_DIR += custom/l1/mml1_devices/$(strip $(MM_DEVICE))

+endif

+ifneq ($(filter __CGA_SCAN_ONLY__, $(strip $(MODULE_DEFS))),)

+  CFLAGS += -fno-inline

+endif

+NOT_USE_CATEGORY_INCLUDE = TRUE

+

+SRC_RULE_AUTOAMMS_DRDI := nr_tpc_drdi_ext.c nr_rfd_drdicommon_ext.c nr_rfd_drdicaldata_ext.c nr_tx_drdihpue_ext.c nr_rfd_drdipartialband_ext.c nr_rfd_drdisrs_ext.c nr_tx_drdimpr_ext.c nr_rfd_drdiant_ext.c nr_etdpd_customdata.c nr_dpd_drdicommon_ext.c nr_rfd_drdisar_ext.c nr_et_drdicommon_ext.c nr_rfd_drdirfif_ext.c nr_rfd_drdimimogroup_ext.c

+TARGET_AMMS_DRDI_LIST := interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_list.txt interface/l1/mml1/external/mml1_rfd/amms_drdi/auto_amms_drdi_special_symbol_list.txt
\ No newline at end of file
diff --git a/mcu/make/module/l1/ul1/extern/ul1_ext.mak b/mcu/make/module/l1/ul1/extern/ul1_ext.mak
new file mode 100644
index 0000000..de9ce6c
--- /dev/null
+++ b/mcu/make/module/l1/ul1/extern/ul1_ext.mak
@@ -0,0 +1,17 @@
+# Define source file lists to SRC_LIST
+SRC_LIST =
+SRC_LIST += interface/l1/ul1/external/wdata.c \
+            interface/l1/ul1/external/wdata_pcore.c
+
+# Define include path lists to INC_DIR
+INC_DIR =
+INC_DIR += interface/l1/ul1/external
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = __FS_FILTER__ \
+            __CATEGORY_MODEM__
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = interface/l1/ul1/external
+
+NOT_USE_CATEGORY_INCLUDE = TRUE
diff --git a/mcu/make/module/middleware/hif_control/extern/usbidle.mak b/mcu/make/module/middleware/hif_control/extern/usbidle.mak
new file mode 100644
index 0000000..4a14399
--- /dev/null
+++ b/mcu/make/module/middleware/hif_control/extern/usbidle.mak
@@ -0,0 +1,31 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = middleware/hif/usbidle/src/usbidle_task.c \
+           middleware/hif/usbidle/src/usbidle_hif.c \
+           middleware/hif/usbidle/src/usbidle_if.c
+
+# Define include path lists to INC_DIR
+INC_DIR = middleware/hif/interface \
+          middleware/hif/usbidle/include \
+          interface/driver/hif \
+          interface/driver/hif/hif_usbdev \
+          interface/protocol/l2_utility/flc2_v2
+
+# Define the specified compile options to COMP_DEFS
+ifdef HIF_USB30_SUPPORT
+  ifeq ($(strip $(HIF_USB30_SUPPORT)), TRUE) 
+       COMP_DEFS = __USBC_USB30_SUPPORT__
+  endif
+endif
+
+# Patch for MoDIS
+ifeq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+   COMP_DEFS += __USBC_USB30_SUPPORT__
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+    COMP_DEFS += __USBC_TARGET_HIF_DRIVER_SUPPORT__
+endif
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = middleware/hif/usbidle/src
+
diff --git a/mcu/make/module/middleware/hif_data/extern/ipc_fragment.mak b/mcu/make/module/middleware/hif_data/extern/ipc_fragment.mak
new file mode 100644
index 0000000..40b7158
--- /dev/null
+++ b/mcu/make/module/middleware/hif_data/extern/ipc_fragment.mak
@@ -0,0 +1,38 @@
+#
+# Define source file lists to SRC_LIST
+#
+SRC_LIST = middleware/hif/ipcore/src/ipc_fragment/ipc_fragment_defrag.c \
+           middleware/hif/ipcore/src/ipc_fragment/ipc_fragment_reassemble.c \
+           middleware/hif/ipcore/src/ipc_fragment/ipc_fragment_utility.c \
+           middleware/hif/ipcore/src/ipc_fragment/ipc_fragment_export.c \
+           middleware/hif/ipcore/src/ipc_fragment/ipc_fragment_frag.c \
+           middleware/hif/ipcore/src/ipc_fragment/ipc_fragment_ut.c
+
+# L1 trace configuration file
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+    #custom
+    ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+      SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/ipc_fragment_data_path_trace_utmd.c
+    else
+      SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/ipc_fragment_data_path_trace_utmd.c
+    endif
+else
+  SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/ipc_fragment_data_path_trace_utmd.c
+endif
+
+#
+#  Define include path lists to INC_DIR
+#
+INC_DIR = middleware/hif/interface \
+          middleware/hif/ipcore/include \
+          interface/service/prbm/
+
+#
+# Define the specified compile options to COMP_DEFS
+#
+COMP_DEFS =
+
+#
+# Define the source file search paths to SRC_PATH
+#
+SRC_PATH = middleware/hif/ipcore/src/ipc_fragment
diff --git a/mcu/make/module/middleware/hif_data/extern/ipcore.mak b/mcu/make/module/middleware/hif_data/extern/ipcore.mak
new file mode 100644
index 0000000..37f2c44
--- /dev/null
+++ b/mcu/make/module/middleware/hif_data/extern/ipcore.mak
@@ -0,0 +1,60 @@
+#
+# Define source file lists to SRC_LIST
+#
+SRC_LIST = middleware/hif/ipcore/src/ipc_task.c \
+           middleware/hif/ipcore/src/ipc_if.c \
+           middleware/hif/ipcore/src/ipc_session.c \
+           middleware/hif/ipcore/src/ipc_filter.c \
+           middleware/hif/ipcore/src/ipc_dhcp_adp.c \
+           middleware/hif/ipcore/src/ipc_notify.c \
+           middleware/hif/ipcore/src/ipc_utils.c \
+           middleware/hif/ipcore/src/ipc_data.c \
+           middleware/hif/ipcore/src/ipc_dpfm.c \
+           middleware/hif/ipcore/src/ipc_module_clean.c \
+           middleware/hif/ipcore/src/ipc_task_clean.c \
+           middleware/hif/ipcore/src/ipc_packet_parser.c
+
+# for Modem generation after Gen95
+ifneq ($(strip $(MTK_MODEM_ARCH)), MT6293) 
+SRC_LIST += middleware/hif/ipcore/src/ipc_data_ipf.c
+endif
+
+# Packet Filter Manager file lists
+SRC_LIST += middleware/hif/ipcore/src/pfm_garbage_filter.c \
+            middleware/hif/ipcore/src/pfm_if.c
+
+ifneq ($(filter ATEST_SYS_IPCORE, $(strip $(MODULE_DEFS))),)
+SRC_LIST += middleware/hif/ipcore/src/ipc_ut.c
+SRC_LIST += middleware/hif/ipcore/src/ipc_ut_ilm.c
+endif
+
+#
+#  Define include path lists to INC_DIR
+#
+INC_DIR = middleware/hif/interface \
+          middleware/hif/ipcore/include \
+          interface/service/prbm/ \
+          interface/service/rsra/ \
+          interface/protocol/nas_multimode/upcm \
+          interface/driver/hif/hif_lhifdev \
+          interface/driver/hif/hif_dpmaifdev \
+          interface/sap/md/MD97\
+          protocol/interface/enl2/el2
+
+#
+# Define the specified compile options to COMP_DEFS
+#
+COMP_DEFS =
+
+ifeq ($(strip $(LTM_EPDCP_SIMULATION_SUPPORT)), TRUE)
+COMP_DEFS += __LTM_EPDCP_SIMULATION_SUPPORT__
+endif
+
+#
+# Define the source file search paths to SRC_PATH
+#
+SRC_PATH = middleware/hif/ipcore/src
+
+ifeq ($(strip $(COMPILER)),GCC)
+CFLAGS += -O2 -mblockmov-limit=16
+endif
diff --git a/mcu/make/module/middleware/hif_data/extern/usbcore.mak b/mcu/make/module/middleware/hif_data/extern/usbcore.mak
new file mode 100644
index 0000000..eb75ef7
--- /dev/null
+++ b/mcu/make/module/middleware/hif_data/extern/usbcore.mak
@@ -0,0 +1,80 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = middleware/hif/usbcore/src/usbcore_task.c \
+           middleware/hif/usbcore/src/usbcore_class_device.c \
+           middleware/hif/usbcore/src/usbcore_hif.c \
+           middleware/hif/usbcore/src/usbcore_notify_event.c \
+           middleware/hif/usbcore/src/usbcore_stdreq.c \
+           middleware/hif/usbcore/src/usbcore_vendreq.c \
+           middleware/hif/usbcore/src/usbcore_except.c \
+           middleware/hif/usbcore/src/usbcore_ind_q.c \
+           middleware/hif/usbcore/src/usbcore_stack.c \
+           middleware/hif/usbcore/src/usbcore_resource.c \
+           middleware/hif/usbcore/src/usbcore_cosim.c 
+
+ifdef HIF_USB_ENUM_PORT_FOR_AP
+  ifeq ($(strip $(HIF_USB_ENUM_PORT_FOR_AP)), TRUE)
+    ifeq ($(strip $(HIF_CCCI_SUPPORT)), TRUE)
+	  SRC_LIST += middleware/hif/usbcore/src/usbcore_dual_owner.c
+	endif
+  endif
+endif
+		   
+# L1 trace configuration file
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+    #custom
+    ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+      SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/usbcore_data_path_trace_utmd.c
+    else
+      SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/usbcore_data_path_trace_utmd.c
+    endif
+else
+  SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/usbcore_data_path_trace_utmd.c
+endif
+
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+  ifdef MDDP_USB_SUPPORT
+    ifeq ($(strip $(MDDP_USB_SUPPORT)), TRUE)
+      SRC_LIST += middleware/hif/usbcore/src/usbcore_direct.c
+      ifdef UFPM_UT
+        ifeq ($(strip $(UFPM_UT)), TRUE)
+          SRC_LIST += middleware/hif/usbcore/src/usbcore_direct_ut.c
+        endif
+      endif
+    endif
+  else
+    ifdef MTK_MD_DIRECT_LOGGING_SUPPORT
+      ifeq ($(strip $(MTK_MD_DIRECT_LOGGING_SUPPORT)), TRUE)
+          SRC_LIST += middleware/hif/usbcore/src/usbcore_direct.c
+      endif
+    endif
+  endif  
+endif
+
+# Define include path lists to INC_DIR
+INC_DIR = middleware/hif/interface \
+          middleware/hif/usbcore/include \
+          interface/driver/hif \
+          interface/driver/hif/hif_usbdev \
+          interface/protocol/l2_utility/flc2_v2 \
+          interface/driver/lhifcore
+
+# Define the specified compile options to COMP_DEFS
+ifdef HIF_USB30_SUPPORT
+  ifeq ($(strip $(HIF_USB30_SUPPORT)), TRUE) 
+       COMP_DEFS = __USBC_USB30_SUPPORT__
+  endif
+endif
+
+# Patch for MoDIS
+ifeq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+   COMP_DEFS += __USBC_USB30_SUPPORT__
+endif
+
+ifneq ($(strip $(MODIS_CONFIG)),TRUE)
+    COMP_DEFS += __USBC_TARGET_HIF_DRIVER_SUPPORT__
+endif
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = middleware/hif/usbcore/src
+
diff --git a/mcu/make/module/middleware/hif_data/kpalv.mak b/mcu/make/module/middleware/hif_data/kpalv.mak
new file mode 100644
index 0000000..9860c8b
--- /dev/null
+++ b/mcu/make/module/middleware/hif_data/kpalv.mak
@@ -0,0 +1,21 @@
+#
+# Define source file lists to SRC_LIST
+#
+
+# Define source file lists to SRC_LIST
+SRC_LIST = middleware/kpalv/src/kpalv_task.c \
+           middleware/kpalv/src/kpalv_data.c \
+           middleware/kpalv/src/kpalv_ut.c
+
+
+# Define include path lists to INC_DIR
+INC_DIR = middleware/kpalv/include \
+          interface/middleware/hif
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS += 
+ 
+# Define the source file search paths to SRC_PATH
+SRC_PATH = middleware/kpalv/src
+
diff --git a/mcu/make/module/middleware/hif_data/uartcore.mak b/mcu/make/module/middleware/hif_data/uartcore.mak
new file mode 100644
index 0000000..9e4d6b1
--- /dev/null
+++ b/mcu/make/module/middleware/hif_data/uartcore.mak
@@ -0,0 +1,14 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = ./middleware/hif/uartcore/src/uartcore_task.c \
+
+# Define include path lists to INC_DIR
+INC_DIR = middleware/hif/interface
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Patch for MoDIS
+COMP_DEFS +=
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = ./middleware/hif/uartcore/src \
diff --git a/mcu/make/module/middleware/legacy/meut.mak b/mcu/make/module/middleware/legacy/meut.mak
new file mode 100644
index 0000000..c133aea
--- /dev/null
+++ b/mcu/make/module/middleware/legacy/meut.mak
@@ -0,0 +1,48 @@
+# Define source file lists to SRC_LIST

+SRC_LIST = ./middleware/meut/UDVT/Dvt_Target_Module/TS/src/dvt_ts.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/Rgu/src/dvt_RGU.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/I2c/src/dvt_i2c.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/Pwm/src/dvt_PWM.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/SIM/src/dvt_sim.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/Gpt/src/dvt_gpt.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/Comm_Protocol/src/dvt_comm_seq.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/Comm_Protocol/src/dvt_common.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/Rtc/src/Dvt_Rtc.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/Adc/src/Dvt_Adc.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/Uart/src/dvt_uart.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/Usb/src/dvt_usb.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/Usb/src/dvt_usbacm_drv.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/Usb/src/dvt_usb_mode.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/Usb/src/meut_usb.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/Usb/src/meut_testcase.c \

+           ./middleware/meut/UDVT/Dvt_Target_Module/Pmu/src/dvt_pmu.c \

+           ./middleware/meut/src/meut_main.c \

+           ./middleware/meut/src/meut_init.c

+ 

+# Define include path lists to INC_DIR

+INC_DIR = driver/drv/include \

+          driver/peripheral/inc \

+          driver/storage/mc/inc \

+          driver/storage/sim/inc \

+          ./service/kal/common/include \

+          ./service/kal/lib/mlib/include \

+          ./middleware/meut/UDVT/Dvt_Target_Module/Comm_Protocol/inc \

+          ./middleware/meut/UDVT/Dvt_Target_Module/Gpt/inc \

+          ./middleware/meut/UDVT/Dvt_Target_Module/Pwm/inc \

+          ./middleware/meut/UDVT/Dvt_Target_Module/Rtc/inc \

+          ./middleware/meut/UDVT/Dvt_Target_Module/I2c/inc \

+          ./middleware/meut/UDVT/Dvt_Target_Module/SIM/inc \

+          ./middleware/meut/UDVT/Dvt_Target_Module/TS/inc \

+          ./middleware/meut/UDVT/Dvt_Target_Module/Rgu/inc \

+          ./middleware/meut/UDVT/Dvt_Target_Module/Uart/inc \

+          driver/connectivity/usb_class/include \

+          ./middleware/meut/UDVT/Dvt_Target_Module/Usb/inc \

+          ./middleware/meut/UDVT/Dvt_Target_Module/Pmu/inc \

+          ./middleware/meut/UDVT/Dvt_Target_Module/Adc/inc \

+          ./middleware/mtkdebug \

+          driver/drv_def \

+          interface/driver/peripheral \

+ 

+# Define the specified compile options to COMP_DEFS

+COMP_DEFS =

+ 

diff --git a/mcu/make/module/middleware/meta/extern/ft.mak b/mcu/make/module/middleware/meta/extern/ft.mak
new file mode 100644
index 0000000..8c6ff14
--- /dev/null
+++ b/mcu/make/module/middleware/meta/extern/ft.mak
@@ -0,0 +1,70 @@
+# Define source file lists to SRC_LIST
+# in this case there should be only ft_main.c is compiled
+# keep ft_create for kal config
+# if !defined(__FACTORY_BIN__) && defined(__SPLIT_BINARY__)
+FACTORY_BIN_COMBINATION = __SPLIT_BINARY__ __FACTORY_BIN__
+ifeq ($(filter $(FACTORY_BIN_COMBINATION), $(strip $(MODULE_DEFS))), __SPLIT_BINARY__)
+SRC_LIST = middleware/meta/ft/src/ft_dummy.c
+else
+SRC_LIST = middleware/meta/ft/src/ft_main.c \
+           middleware/meta/ft/src/ft_mem.c \
+           middleware/meta/ft/src/ft_report.c \
+           middleware/meta/ft/src/ft_fnc.c \
+           middleware/meta/ft/src/ft_fnc_l1rf.c \
+           middleware/meta/ft/src/ft_fnc_misc.c \
+           middleware/meta/ft/src/ft_fnc_nvram.c \
+           middleware/meta/ft/src/ft_fnc_fat.c \
+           middleware/meta/ft/src/ft_fnc_custom.c \
+           middleware/meta/ft/src/ft_fnc_misc_ex.c \
+           middleware/meta/ft/src/ft_fnc_util.c \
+           middleware/meta/ft/src/ft_fnc_mmrf.c \
+           middleware/meta/ft/src/ft_fnc_nrf.c \
+           middleware/meta/ft/src/ft_fnc_l4.c
+# Define optional source file
+ifneq ($(filter __UMTS_RAT__, $(strip $(MODULE_DEFS))),)
+ifneq ($(filter __MTK_UL1_FDD__, $(strip $(MODULE_DEFS))),)
+SRC_LIST += middleware/meta/ft/src/ft_fnc_wcdma.c
+endif
+endif
+
+ifneq ($(filter __UMTS_TDD128_MODE__, $(strip $(MODULE_DEFS))),)
+ifneq ($(filter __AST_TL1_TDD__, $(strip $(MODULE_DEFS))),)
+SRC_LIST += middleware/meta/ft/src/ft_fnc_aux.c
+endif
+endif
+
+ifneq ($(filter __LTE_RAT__, $(strip $(MODULE_DEFS))),)
+SRC_LIST += middleware/meta/ft/src/ft_fnc_lterf.c
+endif
+
+ifneq ($(filter __C2K_RAT__, $(strip $(MODULE_DEFS))),)
+SRC_LIST += middleware/meta/ft/src/ft_fnc_c2krf.c
+endif
+
+endif
+#  Define include path lists to INC_DIR
+INC_DIR = ./interface/middleware/meta \
+          ./interface/service/sst \
+          ./interface/service/dhl \
+          protocol/layer4/l4/include \
+          middleware/meta/ft/inc \
+          driver/audio/med/audio/include \
+          driver/che/include \
+          interface/l1/gl1/external \
+          interface/l1/el1/external \
+          interface/l1/mml1/external \
+          protocol/interface/l4misc \
+          protocol/interface/ims \
+          ./interface/service/sys_svc 
+
+# Non-MODEM BSP include path
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = 
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = middleware/meta/ft/src
+
+#fdr_reorg
+INC_DIR += protocol/interface/general \
+           interface/l1/cl1/common
diff --git a/mcu/make/module/middleware/meta/extern/ftc.mak b/mcu/make/module/middleware/meta/extern/ftc.mak
new file mode 100644
index 0000000..cce7156
--- /dev/null
+++ b/mcu/make/module/middleware/meta/extern/ftc.mak
@@ -0,0 +1,13 @@
+# Define source file lists to SRC_LIST

+SRC_LIST = middleware/meta/ftc/ftc_main.c
+

+#  Define include path lists to INC_DIR

+INC_DIR = ./interface/middleware/meta \
+          driver/connectivity/usb_class/include
+

+# Define the specified compile options to COMP_DEFS

+COMP_DEFS = 

+

+# Define the source file search paths to SRC_PATH

+SRC_PATH = middleware/meta/ftc
+

diff --git a/mcu/make/module/middleware/middleware_config.mak b/mcu/make/module/middleware/middleware_config.mak
new file mode 100644
index 0000000..a6fe3e7
--- /dev/null
+++ b/mcu/make/module/middleware/middleware_config.mak
@@ -0,0 +1,18 @@
+CATEGORY_DEFS += 

+CATEGORY_INCDIRS += protocol/interface/ddm

+

+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)

+  CATEGORY_INCDIRS += protocol/interface/enl2/el2

+  CATEGORY_INCDIRS += protocol/interface/enl2/en_common

+else ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)

+  CATEGORY_INCDIRS += protocol/interface/enl2/el2

+  CATEGORY_INCDIRS += protocol/interface/enl2/en_common

+else

+  CATEGORY_INCDIRS += protocol/interface/el2

+endif

+

+ifeq ($(strip $(LTO_BUILD)),TRUE)

+  ifeq ($(strip $(NO_LTO)),)

+      CFLAGS += -flto -fno-fat-lto-objects

+  endif

+endif

diff --git a/mcu/make/module/middleware/simulation/comm.mak b/mcu/make/module/middleware/simulation/comm.mak
new file mode 100644
index 0000000..56326b0
--- /dev/null
+++ b/mcu/make/module/middleware/simulation/comm.mak
@@ -0,0 +1,21 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = MoDIS_VC9/comm/cShare.cpp
+
+#  Define include path lists to INC_DIR
+INC_DIR = MoDIS_VC9/comm
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = 
+
+ifeq ($(filter __MTK_TARGET__,$(strip $(MODULE_DEFS))),)
+  COMP_DEFS += GEN_FOR_PC __UCS2_ENCODING
+endif
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = MoDIS_VC9/comm
+
+ifeq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+  MODIS_DIS_OPTION += STDC_HEADERS
+endif
+
+NOT_USE_CATEGORY_INCLUDE := TRUE
diff --git a/mcu/make/module/middleware/simulation/modis.mak b/mcu/make/module/middleware/simulation/modis.mak
new file mode 100644
index 0000000..390a907
--- /dev/null
+++ b/mcu/make/module/middleware/simulation/modis.mak
@@ -0,0 +1,28 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = MoDIS_VC9/MoDIS/w32_winmain.cpp \
+           MoDIS_VC9/CrashHandlerlib/CrashHandlerClient.cpp \
+           MoDIS_VC9/CrashHandlerlib/CrashHandlerSharedMemory.cpp \
+		   MoDIS_VC9/CrashHandlerlib/OscarSST.c
+
+SRC_LIST += MoDIS_VC9/MoDIS/mtk_simulator.rc \
+            MoDIS_VC9/MoDIS/resource.h \
+            MoDIS_VC9/MoDIS/StdAfx.h \
+            MoDIS_VC9/MoDIS/mtk_icon.ICO \
+            MoDIS_VC9/MoDIS/mtk_simulator.ICO \
+            MoDIS_VC9/CrashHandlerlib/CrashHandlerClient.h \
+            MoDIS_VC9/CrashHandlerlib/CrashHandlerSharedMemory.h 
+			
+#  Define include path lists to INC_DIR
+INC_DIR = MoDIS_VC9/MoDIS \
+          MoDIS_VC9/CrashHandlerlib \
+          interface/protocol/uem/include \
+		  service/sst/include \
+		  service/sst/include_sec
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = MMI_ON_HARDWARE_P
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = MoDIS_VC9/MoDIS
+
+NOT_USE_CATEGORY_INCLUDE := TRUE
diff --git a/mcu/make/module/protocol/ims/extern/dispatcher.mak b/mcu/make/module/protocol/ims/extern/dispatcher.mak
new file mode 100644
index 0000000..fef7be5
--- /dev/null
+++ b/mcu/make/module/protocol/ims/extern/dispatcher.mak
@@ -0,0 +1,30 @@
+#
+# Define source file lists to SRC_LIST
+#
+SRC_LIST = protocol/dispatcher/src/dispatcher_if.c \
+           protocol/dispatcher/src/dispatcher_ut.c \
+           protocol/dispatcher/src/dispatcher_control.c
+
+
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+    SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/dispatcher_data_path_trace_utmd.c   
+else
+  SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/dispatcher_data_path_trace_utmd.c        
+endif
+  
+#
+#  Define include path lists to INC_DIR
+#
+INC_DIR = interface/protocol/dispatcher \
+          protocol/dispatcher/include \
+          interface/protocol/nas_multimode/upcm \
+          interface/service/qmu_bm \
+          interface/service/prbm/ \
+          interface/service/dhl \
+          interface/middleware/general \
+          interface/driver/lhifcore
+
+#
+# Define the source file search paths to SRC_PATH
+#
+SRC_PATH = protocol/dispatcher/src
diff --git a/mcu/make/module/protocol/l4/extern/l4misc.mak b/mcu/make/module/protocol/l4/extern/l4misc.mak
new file mode 100644
index 0000000..563e144
--- /dev/null
+++ b/mcu/make/module/protocol/l4/extern/l4misc.mak
@@ -0,0 +1,132 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = protocol/layer4/l4/uem/src/uem_proc_cmd.c \
+           protocol/layer4/l4/uem/src/uem_proc_msg.c \
+           protocol/layer4/l4/uem/src/uem_main.c \
+           protocol/layer4/l4/uem/src/uem_msg_hdlr.c \
+           protocol/layer4/l4/uem/src/uem_at_cmd.c \
+           protocol/layer4/l4/uem/src/uem_utility.c \
+           protocol/layer4/l4/uem/src/uem_gpio_ctrl.c \
+           protocol/layer4/l4/phb/src/phb_common.c \
+           protocol/layer4/l4/phb/src/phb_config.c \
+           protocol/layer4/l4/phb/src/phb_context.c \
+           protocol/layer4/l4/phb/src/phb_control_block.c \
+           protocol/layer4/l4/phb/src/phb_data_desc.c \
+           protocol/layer4/l4/phb/src/phb_data_entry_table.c \
+           protocol/layer4/l4/phb/src/phb_handler_approve.c \
+           protocol/layer4/l4/phb/src/phb_handler_delete.c \
+           protocol/layer4/l4/phb/src/phb_handler_read.c \
+           protocol/layer4/l4/phb/src/phb_handler_sat.c \
+           protocol/layer4/l4/phb/src/phb_handler_search.c \
+           protocol/layer4/l4/phb/src/phb_handler_startup.c \
+           protocol/layer4/l4/phb/src/phb_handler_write.c \
+           protocol/layer4/l4/phb/src/phb_ilm.c \
+           protocol/layer4/l4/phb/src/phb_main.c \
+           protocol/layer4/l4/phb/src/phb_name_num_index.c \
+           protocol/layer4/l4/phb/src/phb_nvram_access.c \
+           protocol/layer4/l4/phb/src/phb_pindex.c \
+           protocol/layer4/l4/phb/src/phb_sap.c \
+           protocol/layer4/l4/phb/src/phb_se.c \
+           protocol/layer4/l4/phb/src/phb_sim_access.c \
+           protocol/layer4/l4/phb/src/phb_utils.c \
+ 
+#  Define include path lists to INC_DIR
+INC_DIR = protocol/layer4/l4/csm \
+          protocol/layer4/l4/csm/cc/include \
+          protocol/layer4/l4/csm/ss/include \
+          protocol/layer4/l4/include \
+          protocol/layer4/l4/uem/include \
+          protocol/layer4/l4/smu/include \
+          protocol/layer4/l4/atci/include \
+          protocol/layer4/l4/l4c/include/common \
+          protocol/layer4/l4/l4c/include/proc \
+          protocol/layer4/l4/phb/include \
+          protocol/layer4/l4/smsal/include \
+          protocol/layer4/l4/rac/common/include \
+          protocol/layer4/l4/rac/ugrac/include \
+          protocol/interface/l4 \
+          protocol/interface/l4misc \
+          protocol/interface/ims \
+          ./interface/middleware/meta \
+          interface/service/kal \
+          interface/service/nvram \
+          interface/protocol/general \
+          interface/driver/hwdrv \
+          interface/driver/drv_def \
+          driver/peripheral/inc \
+          interface/protocol/uem/include
+
+
+#mtk04121
+ifneq ($(filter __ETCM__, $(strip $(MODULE_DEFS))),)
+INC_DIR += protocol/layer4/l4/tcm/etcm/include
+endif
+
+ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+    INC_DIR += protocol/layer4/l4/rac/erac/include
+endif
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = SMG_REL_97 \
+            __MOD_UEM__ \
+            UART_ENABLE \
+            __MOD_CSM__ \
+            __MOD_SMU__ \
+            __MOD_NVRAM__ \
+            __MOD_PHB__ \
+            __MOD_SMSAL__ \
+            __MOD_ATCI__ \
+            __MOD_L4C__ \
+            __SMS_PDU_MODE__ \
+            __SMS_ME_STORAGE__ \
+            __CB__ \
+            MP3_SUPPORT \
+            __EMS__ \
+            SMS_SHOW_REPORT_IN_SIM \
+            __UEM_DRV_KPDQUEUE__ \
+            __CB_MMI_MASK__ \
+            EMS_LITTLE_ENDIAN \
+            EMS_MEM_MANAGEMENT \
+            SAVE_MSG_TO_SAME_STORAGE \
+            DATA_DOWNLOAD \
+            __PHB_USIM_MULTI_ADN__ \
+            __CATEGORY_MODEM__
+ 
+# Define the source file search paths to SRC_PATH
+SRC_PATH = protocol/layer4/l4/src \
+          protocol/layer4/l4/l4c/src/common \
+          protocol/layer4/l4/atci/src \
+          protocol/layer4/l4/l4c/src/proc \
+          protocol/layer4/l4/uem/src \
+          protocol/layer4/l4/smu/src \
+          protocol/layer4/l4/uem/src \
+          protocol/layer4/l4/csm \
+          protocol/layer4/l4/csm/cc/src \
+          protocol/layer4/l4/csm/ss/src \
+          protocol/layer4/l4/phb/src \
+          protocol/layer4/l4/smsal/src \
+          protocol/layer4/l4/rac/common/src \
+          protocol/layer4/l4/rac/ugrac/src \
+          protocol/layer4/l4/tcm/common
+ 
+ifneq ($(filter __UGTCM__, $(strip $(MODULE_DEFS))),)
+SRC_PATH += protocol/layer4/l4/tcm/ugtcm
+endif
+
+#fdr_reorg
+INC_DIR += protocol/interface/general \
+           interface/l1/cl1/common \
+           interface/protocol/nas_c2k
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+  INC_DIR += protocol/interface/enl2/el2
+  INC_DIR += protocol/interface/enl2/en_common
+else ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+  INC_DIR += protocol/interface/enl2/el2
+  INC_DIR += protocol/interface/enl2/en_common
+else
+  INC_DIR += protocol/interface/el2
+endif
+INC_DIR += protocol/interface/lte
+INC_DIR += protocol/interface/agps
+
+NOT_USE_CATEGORY_INCLUDE = TRUE
diff --git a/mcu/make/module/protocol/l4/extern/sbp.mak b/mcu/make/module/protocol/l4/extern/sbp.mak
new file mode 100644
index 0000000..dc791da
--- /dev/null
+++ b/mcu/make/module/protocol/l4/extern/sbp.mak
@@ -0,0 +1,65 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = custom/service/sbp/sbp_utility.c \
+           custom/service/sbp/sbp_config_ctrl.c \
+           custom/service/sbp/sbp_task_clean.c \
+           custom/service/sbp/sbp_nvram_config.c \
+           custom/service/sbp/sbp_nvram_errc_config.c \
+           custom/service/sbp/sbp_nvram_ims_config.c \
+           custom/service/sbp/sbp_nvram_iwlan_config.c \
+           custom/service/sbp/sbp_nvram_ltecsr_config.c \
+           custom/service/sbp/sbp_nvram_mscap_config.c \
+           custom/service/sbp/sbp_nvram_phonemode_config.c \
+           custom/service/sbp/sbp_nvram_nwsel_config.c \
+           custom/service/sbp/sbp_nvram_vgmm_config.c \
+           custom/service/sbp/sbp_nvram_rac_config.c \
+           custom/service/sbp/sbp_nvram_rrc_config.c \
+           custom/service/sbp/sbp_nvram_sdm_config.c \
+           custom/service/sbp/sbp_nvram_vdm_config.c \
+           custom/service/sbp/sbp_nvram_n3cf_config.c \
+           custom/service/sbp/sbp_nvram_l4c_config.c \
+           custom/service/sbp/sbp_nvram_bip_config.c \
+           custom/service/sbp/sbp_nvram_el1c_config.c \
+           custom/service/sbp/sbp_nvram_d2_config.c \
+           custom/service/sbp/sbp_nvram_xcap_config.c \
+           custom/service/sbp/sbp_nvram_cval_config.c \
+           custom/service/sbp/sbp_nvram_hlp_config.c \
+           custom/service/sbp/sbp_task.c \
+           custom/service/sbp/sbp_sms_config.c \
+           custom/service/sbp/sbp_nvram_mcf_config.c \
+           custom/service/sbp/sbp_nvram_mrs_config.c \
+           custom/service/sbp/sbp_nvram_rrm_config.c \
+           custom/service/sbp/sbp_nvram_ssds_config.c \
+           custom/service/sbp/sbp_nvram_rsra_config.c \
+           custom/service/sbp/sbp_nvram_sim_config.c \
+           custom/service/sbp/sbp_nvram_c2k_config.c \
+           custom/service/sbp/sbp_nvram_tcm_config.c \
+           custom/service/sbp/sbp_nvram_sm_config.c \
+		   custom/service/sbp/sbp_nvram_esm_config.c\
+           custom/service/sbp/sbp_nvram_mm_config.c \
+	       custom/service/sbp/sbp_cc_config.c \
+	       custom/service/sbp/sbp_nvram_l5_config.c \
+           custom/service/sbp/sbp_atci_config.c
+
+ifeq ($(strip $(FIVEG_MODE_SUPPORT)),FIVEG_MODE)
+SRC_LIST += custom/service/sbp/sbp_nvram_nrrc_config.c
+endif
+
+ifeq ($(strip $(LGE_SECURITY)), TRUE)
+    INC_DIR  += custom/modem/lgesecurity
+endif
+
+# Define include path lists to INC_DIR
+# INC_DIR = $(strip .)/interface/modem/general
+INC_DIR = service/nvram/include \
+           interface/protocol/general \
+           interface/service/mcf
+
+#fdr_reorg
+INC_DIR += protocol/interface/general \
+           interface/l1/cl1/common \
+           interface/protocol/nas_c2k \
+           interface/protocol/as_c2k/1xrtt \
+           interface/protocol/as_c2k/evdo \
+           interface/protocol/l2_c2k/common \
+           interface/protocol/l4_c2k
+
diff --git a/mcu/make/module/protocol/protocol_config.mak b/mcu/make/module/protocol/protocol_config.mak
new file mode 100755
index 0000000..24c50c5
--- /dev/null
+++ b/mcu/make/module/protocol/protocol_config.mak
@@ -0,0 +1,76 @@
+CATEGORY_INCDIRS += ./interface/service/fsm
+CATEGORY_INCDIRS += interface/protocol/l2_utility/flc2_v2
+
+CATEGORY_INCDIRS += protocol/interface/nas_multimode/upcm
+CATEGORY_INCDIRS += protocol/interface/ddm
+CATEGORY_INCDIRS += protocol/interface/ims
+CATEGORY_INCDIRS += protocol/interface/lte
+CATEGORY_INCDIRS += protocol/interface/agps
+CATEGORY_INCDIRS += protocol/interface/errc
+CATEGORY_INCDIRS += protocol/interface/iwlan
+
+ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297)
+  CATEGORY_INCDIRS += protocol/interface/enl2/el2
+  CATEGORY_INCDIRS += protocol/interface/enl2/en_common
+else ifeq ($(strip $(MTK_MODEM_ARCH)), MT6297P)
+  CATEGORY_INCDIRS += protocol/interface/enl2/el2
+  CATEGORY_INCDIRS += protocol/interface/enl2/en_common
+else
+  CATEGORY_INCDIRS += protocol/interface/el2
+endif
+
+CATEGORY_INCDIRS += protocol/interface/ims \
+                    protocol/interface/l4 \
+                    protocol/interface/l4misc \
+                    protocol/interface/mcd/include \
+                    protocol/layer4/l4/include \
+                    protocol/layer4/l4/atci/include \
+                    protocol/layer4/l4/l4c/include/common \
+                    protocol/layer4/l4/l4c/include/proc \
+                    protocol/layer4/l4/csm/cc/include \
+                    protocol/layer4/l4/uem/include \
+                    protocol/layer4/l4/phb/include \
+                    protocol/layer4/l4/csm/cc/include \
+                    protocol/layer4/l4/csm \
+                    protocol/layer4/l4/tcm/etcm/include \
+                    protocol/layer4/l4/smsal/include \
+                    protocol/layer4/l4/tcm/rat_tcm/inc \
+                    protocol/layer4/l4/csm/ss/asn1/gen/include \
+                    protocol/layer4/l4/smu/include \
+                    protocol/layer4/l4/rac/common/include \
+                    protocol/layer4/l4/rac/ugrac/include \
+                    protocol/interface/asn/rr/include \
+                    protocol/layer4/l4/smslib/include \
+                    l1/gl1/l1d_ext
+
+ifneq ($(strip $(EUTRAN_MODE_SUPPORT)),NONE)
+  CATEGORY_INCDIRS += protocol/layer4/l4/rac/erac/include
+endif             
+
+ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R8_SUPPORT)
+  CATEGORY_INCDIRS += l1/ul1/ul1d_ext
+else
+  ifeq ($(strip $(UMTS_RELEASE_SUPPORT)),UMTS_R7_SUPPORT)
+    CATEGORY_INCDIRS += l1/ul1/ul1d_ext
+  else
+    ifneq ($(filter $(strip $(PLATFORM)),$(UL1_HS_PLATFORM)),)
+      CATEGORY_INCDIRS += protocol/ul1/ul1_hs/ul1d_ext
+    endif
+  endif
+endif
+
+#fdr_reorg
+CATEGORY_INCDIRS += protocol/interface/general
+
+# *************************************************************************
+# From Global include path 
+# *************************************************************************
+ifeq ($(strip $(ETCM)),TRUE)
+CATEGORY_INCDIRS += protocol/layer4/l4/tcm/etcm/include
+endif
+
+CATEGORY_INCDIRS += protocol/layer4/l4/tcm/rat_tcm/inc
+
+CATEGORY_DEFS += 
+
+CFLAGS := $(filter-out -fstrict-aliasing, $(CFLAGS)) -fno-strict-aliasing
diff --git a/mcu/make/module/protocol/simulation/usim_hw.mak b/mcu/make/module/protocol/simulation/usim_hw.mak
new file mode 100644
index 0000000..f8b4276
--- /dev/null
+++ b/mcu/make/module/protocol/simulation/usim_hw.mak
@@ -0,0 +1,103 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = protocol/smt/uesim_lte/usim_hw/UsimBpi.c \
+           protocol/smt/uesim_lte/usim_hw/UsimBsi.c \
+           protocol/smt/uesim_lte/usim_hw/UsimCdGn.c \
+           protocol/smt/uesim_lte/usim_hw/UsimCgi.c \
+           protocol/smt/uesim_lte/usim_hw/UsimCmbnr.c \
+           protocol/smt/uesim_lte/usim_hw/UsimCntr.c \
+           protocol/smt/uesim_lte/usim_hw/UsimCs4.c \
+           protocol/smt/uesim_lte/usim_hw/UsimDcxoSrchr.c \
+           protocol/smt/uesim_lte/usim_hw/UsimDftc.c \
+           protocol/smt/uesim_lte/usim_hw/UsimDtDmp.c \
+           protocol/smt/uesim_lte/usim_hw/UsimERx.c \
+           protocol/smt/uesim_lte/usim_hw/UsimETx.c \
+           protocol/smt/uesim_lte/usim_hw/UsimHaPlusAdapter.c \
+           protocol/smt/uesim_lte/usim_hw/UsimHsCe.c \
+           protocol/smt/uesim_lte/usim_hw/UsimHsRx.c \
+           protocol/smt/uesim_lte/usim_hw/UsimHsTx.c \
+           protocol/smt/uesim_lte/usim_hw/UsimHwCmmn.h \
+           protocol/smt/uesim_lte/usim_hw/UsimHwDfn.h \
+           protocol/smt/uesim_lte/usim_hw/UsimHwFnct.h \
+           protocol/smt/uesim_lte/usim_hw/UsimHwMisc.c \
+           protocol/smt/uesim_lte/usim_hw/UsimHwPublic.h\
+           protocol/smt/uesim_lte/usim_hw/UsimHwTypes.h \
+           protocol/smt/uesim_lte/usim_hw/UsimHwUtil.c \
+           protocol/smt/uesim_lte/usim_hw/UsimIRatChkr.c \
+           protocol/smt/uesim_lte/usim_hw/UsimMs3.c \
+           protocol/smt/uesim_lte/usim_hw/UsimPac.c \
+           protocol/smt/uesim_lte/usim_hw/UsimPll.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRake.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRf.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRfMt6159B.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRfMt6159C.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRfMt6160.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRfMt6162.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRfMt6162Dual.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRfOrionHplus.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRfPmic.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRfSmarti3G.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRfSonyCxa3359.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRxAmp.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRxBfe.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRxBrp.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRxBrpPhCh.c \
+           protocol/smt/uesim_lte/usim_hw/UsimRxSrp.c \
+           protocol/smt/uesim_lte/usim_hw/UsimSclrTmr.c \
+           protocol/smt/uesim_lte/usim_hw/UsimSdGn.c \
+           protocol/smt/uesim_lte/usim_hw/UsimSlwClk.c \
+           protocol/smt/uesim_lte/usim_hw/UsimSrchrTmr.c \
+           protocol/smt/uesim_lte/usim_hw/UsimSta.c \
+           protocol/smt/uesim_lte/usim_hw/UsimSysTmr.c \
+           protocol/smt/uesim_lte/usim_hw/UsimTrk.c \
+           protocol/smt/uesim_lte/usim_hw/UsimTxBrp.c \
+           protocol/smt/uesim_lte/usim_hw/UsimTxBrpDt.c \
+           protocol/smt/uesim_lte/usim_hw/UsimTxCrp.c \
+           protocol/smt/uesim_lte/usim_hw/uvrf/src/uvrf_bridge.c \
+           protocol/smt/uesim_lte/usim_hw/uvrf/src/uvrf_bridge_task.c \
+           protocol/smt/uesim_lte/usim_hw/UsimUSCntr.c
+
+# Define include path lists to INC_DIR
+INC_DIR = protocol/smt/uesim_lte/xsim_framework/generic/intf \
+          protocol/smt/uesim_lte/xsim_platform/mt6208 \
+          protocol/smt/uesim_lte/xsim_platform/mt6208/rf \
+          protocol/smt/uesim_lte/gsim_nw/intf \
+          protocol/smt/uesim_lte/gsim_hw/intf \
+          protocol/smt/uesim_lte/usim_hw/uvrf/intf \
+          protocol/smt/uesim_lte/usim_hw/uvrf/src \
+          protocol/smt/uesim_lte/usim_nw \
+          protocol/smt/uesim_lte/xsim_generic/uegw2/intf \
+          protocol/smt/uesim_lte/xsim_generic/uegw2/src \
+          protocol/smt/uesim_lte/xsim_generic/xcomm/intf \
+          protocol/smt/uesim_lte/xsim_generic/aos/intf \
+          protocol/smt/uesim_lte/usim_nw/mns_u_airctrl/intf \
+          l1/gl1/common \
+          l1/gl1/interface \
+          l1/gl1/l1c \
+          l1/gl1/l1d \
+          l1/gl1/l1d_ext \
+          interface/protocol/gas \
+          interface/l1/ul1 \
+    l1/interface/el1 \
+    l1/ul1/common \
+          l1/md_sm/l1sm \
+          l1/md_sm/common/l1sm \
+          driver/peripheral/inc
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = __ESIM_3G_HWSIM_DATA_PATH_ENABLE__ \
+            __ESIM_3G_HWSIM_ASSERT_DISABLE__ \
+            INTEGER_SIM_TIME \
+            L1_SIM \
+            L1D_SIM \
+            REG_MAY_NOT_EXIST \
+            AFC_13bit \
+            CH_RF_TEST \
+            __HYPER_SLEEP_MODE_CHIP__ \
+            USE_WAKEUP_INT \
+            MEM_CHECK_ON \
+            __HSPA_PLUS_SIM__ \
+            MT6326 \
+            TRACING_SUPPORT
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = protocol/smt/uesim_lte/usim_hw
diff --git a/mcu/make/module/protocol/simulation/usim_nw.mak b/mcu/make/module/protocol/simulation/usim_nw.mak
new file mode 100644
index 0000000..0dedf59
--- /dev/null
+++ b/mcu/make/module/protocol/simulation/usim_nw.mak
@@ -0,0 +1,49 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = protocol/smt/uesim_lte/usim_nw/UsimBchCctrchUeSim.c \
+ 					 protocol/smt/uesim_lte/usim_nw/UsimCctrchUeSim.c \
+	 				 protocol/smt/uesim_lte/usim_nw/UsimCmmn.h \
+					 protocol/smt/uesim_lte/usim_nw/UsimDfn.h \
+					 protocol/smt/uesim_lte/usim_nw/UsimDump_UL1C.h \
+					 protocol/smt/uesim_lte/usim_nw/UsimFnct.h \
+					 protocol/smt/uesim_lte/usim_nw/UsimFnctStub.c \
+					 protocol/smt/uesim_lte/usim_nw/UsimMisc.c \
+					 protocol/smt/uesim_lte/usim_nw/UsimScnnr.c \
+					 protocol/smt/uesim_lte/usim_nw/UsimScnnr_UL1C.h \
+					 protocol/smt/uesim_lte/usim_nw/UsimTypes.h \
+					 protocol/smt/uesim_lte/usim_nw/UsimUlCctrchUeSim.c \
+					 protocol/smt/uesim_lte/usim_nw/UsimUtil.c
+
+# Define include path lists to INC_DIR
+INC_DIR = protocol/smt/uesim_lte/xsim_framework/generic/intf \
+          protocol/smt/uesim_lte/usim_nw \
+          protocol/smt/uesim_lte/usim_hw \
+          l1/gl1/common \
+          l1/gl1/interface \
+          l1/gl1/l1c \
+          l1/gl1/l1d \
+          l1/gl1/l1d_ext \
+          interface/protocol/gas \
+          interface/l1/ul1 \
+    l1/interface/el1 \
+    l1/ul1/common \
+          l1/md_sm/l1sm \
+          l1/md_sm/common/l1sm
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = __ESIM_3G_HWSIM_DATA_PATH_ENABLE__ \
+            __ESIM_3G_HWSIM_ASSERT_DISABLE__ \
+            INTEGER_SIM_TIME \
+            L1_SIM \
+            L1D_SIM \
+            REG_MAY_NOT_EXIST \
+            AFC_13bit \
+            CH_RF_TEST \
+            __HYPER_SLEEP_MODE_CHIP__ \
+            USE_WAKEUP_INT \
+            MEM_CHECK_ON \
+            __HSPA_PLUS_SIM__ \
+            MT6326 \
+            TRACING_SUPPORT
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = protocol/smt/uesim_lte/usim_nw
diff --git a/mcu/make/module/service/asn1_common/extern/asn1_common.mak b/mcu/make/module/service/asn1_common/extern/asn1_common.mak
new file mode 100644
index 0000000..dca6d4e
--- /dev/null
+++ b/mcu/make/module/service/asn1_common/extern/asn1_common.mak
@@ -0,0 +1,13 @@
+# Define source file lists to SRC_LIST

+SRC_LIST = ./interface/service/asn1_common/asn_common.c \
+           ./interface/service/asn1_common/asn_uper_common.c \
+           ./interface/service/asn1_common/asn_memory.c
+

+#  Define include path lists to INC_DIR

+INC_DIR = 

+

+# Define the specified compile options to COMP_DEFS

+COMP_DEFS = 

+

+# Define the source file search paths to SRC_PATH

+SRC_PATH = ./interface/service/asn1_common
diff --git a/mcu/make/module/service/config/extern/config.mak b/mcu/make/module/service/config/extern/config.mak
new file mode 100644
index 0000000..45d5f02
--- /dev/null
+++ b/mcu/make/module/service/config/extern/config.mak
@@ -0,0 +1,35 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = ./service/config/src/hal/syscomp_config.c \
+           ./service/config/src/hal/task_config.c \
+           ./service/config/src/hal/stack_config.c \
+           ./service/config/src/hal/ctrl_buff_pool.c\
+           ./service/config/src/hal/mof_config.c
+
+#  Define include path lists to INC_DIR
+INC_DIR = driver/peripheral/inc \
+          ./service/kal/common/include \
+          ./interface/service/dhl
+
+ifneq ($(filter __ESL_MASE_GEN97__,$(CUSTOM_OPTION)),)
+INC_DIR += driver/devdrv/hsl/inc
+endif
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = 
+
+ifeq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+  # special for AST projects
+  COMP_DEFS += __UL1_ON_MNT__
+endif
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = ./service/config/src/hal
+
+# MERTOS config, note that the module which include this path must rebuild
+ifeq ($(strip $(RTOS)),MERTOS)
+#  INC_DIR += ./service/mertos_config/include
+endif
+
+ifeq ($(strip $(COMPILER)),GCC)
+    CFLAGS += -Werror
+endif
diff --git a/mcu/make/module/service/dhl/dbinfo.mak b/mcu/make/module/service/dhl/dbinfo.mak
new file mode 100644
index 0000000..0d1a3c8
--- /dev/null
+++ b/mcu/make/module/service/dhl/dbinfo.mak
@@ -0,0 +1,15 @@
+# Define source file lists to SRC_LIST
+SRC_LIST += $(strip $(BUILD_TSTDIR))/src/dbSig.c \
+            $(strip $(BUILD_TSTDIR))/src/filterSig.c \
+            $(strip $(BUILD_TSTDIR))/src/traceKey.c
+
+
+# Define include path lists to INC_DIR
+INC_DIR =
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH =
+ 
diff --git a/mcu/make/module/service/fs/fs.mak b/mcu/make/module/service/fs/fs.mak
new file mode 100644
index 0000000..5a3ef64
--- /dev/null
+++ b/mcu/make/module/service/fs/fs.mak
@@ -0,0 +1 @@
+SRC_LIST = ./service/fs/ccci_fs/src/mdfs_wrapper.c
\ No newline at end of file
diff --git a/mcu/make/module/service/hif/hmu.mak b/mcu/make/module/service/hif/hmu.mak
new file mode 100644
index 0000000..60b518a
--- /dev/null
+++ b/mcu/make/module/service/hif/hmu.mak
@@ -0,0 +1,28 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = service/hif/hmu/src/hmu.c
+SRC_LIST += service/hif/hmu/src/hmu_conf_data.c
+
+
+#  Define include path lists to INC_DIR
+INC_DIR = ./interface/service/hif \
+          ./interface/service/hif \
+		  service/hif/hmu/include \
+		  ./service/hif/interface \
+		  protocol/interface/ddm
+ 
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = _HMU_
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = service/hif/hmu/src
+
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+    #custom
+    ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+      SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/hif_srv_hmu_trace_utmd.c
+    else
+      SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/hif_srv_hmu_trace_utmd.c
+    endif
+else
+  SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/hif_srv_hmu_trace_utmd.c
+endif
\ No newline at end of file
diff --git a/mcu/make/module/service/hif/ubm.mak b/mcu/make/module/service/hif/ubm.mak
new file mode 100644
index 0000000..f86844c
--- /dev/null
+++ b/mcu/make/module/service/hif/ubm.mak
@@ -0,0 +1,35 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = service/hif/ubm/src/ubm.c \
+           service/hif/ubm/src/ubm_drb.c \
+           service/hif/ubm/src/ubm_fhb.c \
+           service/hif/ubm/src/ubm_nfhb.c \
+           service/hif/ubm/src/ubm_ul_meta.c \
+           service/hif/ubm/src/ubm_vrb.c \
+           service/hif/ubm/src/ubm_xit.c
+
+# L1 trace configuration file
+ifeq ($(strip $(CUSTOM_RELEASE)),TRUE)
+    #custom
+    ifeq ($(strip $(DHL_SUPPORT)),TRUE)
+      SRC_LIST += $(strip $(CUS_MTK_REL))/dhl/l1trace/ubm_data_path_trace_utmd.c
+    else
+      SRC_LIST += $(strip $(CUS_MTK_REL))/tst/l1trace/ubm_data_path_trace_utmd.c
+    endif
+else
+  SRC_LIST += $(strip $(CGEN_L1_OUTDIR))/ubm_data_path_trace_utmd.c
+endif
+
+#  Define include path lists to INC_DIR
+INC_DIR = ./interface/service/hif \
+          service/hif/ubm/include \
+          ./service/hif/interface \
+          interface/driver/lhifcore \
+          interface/middleware/hif \
+          interface/driver/hif \
+          ./interface/service/prbm \
+          interface/service/qmu_bm
+
+# Define the specified compile options to COMP_DEFS
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = service/hif/ubm/src
diff --git a/mcu/make/module/service/kal/ktest.mak b/mcu/make/module/service/kal/ktest.mak
new file mode 100644
index 0000000..647121a
--- /dev/null
+++ b/mcu/make/module/service/kal/ktest.mak
@@ -0,0 +1,87 @@
+# Define source file lists to SRC_LIST
+SRC_PATH = ./service/kal/ktest
+ifneq ($(filter __KTEST__, $(strip $(MODULE_DEFS))),)
+ifneq ($(strip $(KTEST_ENV)), RTOS_TEST)
+ifeq ($(strip $(KTEST_ENV)),STATIC_TEST)
+ifeq ($(strip $(RTOS)),MERTOS)
+SRC_LIST +=./service/kal/ktest/src/adaptation/ktest_adaptation_target_mertos.c
+else
+SRC_LIST +=./service/kal/ktest/src/adaptation/ktest_adaptation_target.c
+endif
+SRC_LIST +=./service/kal/ktest/src/common/ktest_smp.c \
+           ./service/kal/ktest/src/common/ktest_utilities.c \
+           ./service/kal/ktest/src/common/ktest_rtos.c \
+           ./service/kal/ktest/src/tests/ktest_smp_mt.c \
+           ./service/kal/ktest/src/tests/ktest_smp_mem.c \
+           ./service/kal/ktest/src/tests/ktest_smp_misc.c \
+           ./service/kal/ktest/src/tests/ktest_smp_ipc.c \
+           ./service/kal/ktest/src/tests/ktest_smp_timer.c \
+           ./service/kal/ktest/src/tests/ktest_profiler.c
+else
+SRC_LIST +=./service/kal/ktest/src/adaptation/ktest_adaptation_oscar.c \
+           ./service/kal/ktest/src/adaptation/ktest_adaptation_target.c \
+           ./service/kal/ktest/src/common/kal_autotest.c \
+           ./service/kal/ktest/src/common/ktest_interface.c \
+           ./service/kal/ktest/src/common/ktest_utilities.c \
+           ./service/kal/ktest/src/tests/ktest_tc_timer.c \
+           ./service/kal/ktest/src/tests/ktest_tc_nu_timer.c \
+           ./service/kal/ktest/src/tests/ktest_lib_timer.c \
+           ./service/kal/ktest/src/tests/ktest_tc_ipc.c \
+           ./service/kal/ktest/src/tests/ktest_tc_mm_adm.c \
+           ./service/kal/ktest/src/tests/ktest_tc_mm_afm.c \
+           ./service/kal/ktest/src/tests/ktest_tc_mm_ctrlbuf.c \
+           ./service/kal/ktest/src/tests/ktest_tc_task.c \
+           ./service/kal/ktest/src/tests/ktest_tc_utl.c \
+           ./service/kal/ktest/src/tests/ktest_tc_sandbox.c \
+           ./service/kal/ktest/src/tests/ktest_tc_mlib.c \
+           ./service/kal/ktest/src/tests/ktest_tc_slmm.c \
+           ./service/kal/ktest/src/tests/ktest_tc_vm.c 
+endif
+else
+ifeq ($(strip $(RTOS)),MERTOS)
+SRC_LIST +=./service/kal/ktest/src/common/ktest_rtos.c \
+           ./service/kal/ktest/src/common/ktest_utilities.c \
+           ./service/kal/ktest/src/adaptation/ktest_adaptation_target_mertos.c \
+           ./service/kal/ktest/src/tests/ktest_rtos_enh_mutex.c \
+           ./service/kal/ktest/src/tests/ktest_rtos_dpc.c \
+           ./service/kal/ktest/src/tests/ktest_rtos_isr.c \
+           ./service/kal/ktest/src/tests/ktest_rtos_mq.c \
+           ./service/kal/ktest/src/tests/ktest_rtos_timer.c \
+           ./service/kal/ktest/src/tests/ktest_rtos_misc.c \
+           ./service/kal/ktest/src/tests/ktest_rtos_kal_itc.c \
+           ./service/kal/ktest/src/tests/ktest_rtos_kal_buff_mgr.c \
+           ./service/kal/ktest/src/tests/ktest_profiler.c
+else
+SRC_LIST +=./service/kal/ktest/src/common/ktest_rtos.c \
+           ./service/kal/ktest/src/common/ktest_utilities.c \
+           ./service/kal/ktest/src/adaptation/ktest_adaptation_target.c \
+           ./service/kal/ktest/src/tests/ktest_rtos_misc.c \
+           ./service/kal/ktest/src/tests/ktest_profiler.c
+endif
+endif
+endif
+#  Define include path lists to INC_DIR
+INC_DIR = ./interface/service/config \
+          ./interface/service/kal \
+          interface/driver/peripheral \
+          interface/driver/hwdrv \
+          ./service/kal/ktest/inc \
+          ./service/kal/adaptation/include \
+          ./service/kal/common/include \
+          ./service/kal/mlib/include \
+          ./interface/sap/svc \
+          driver/sys_drv/cache/inc/ \
+          driver/sys_drv/init/inc/ \
+          ./service/sst/include \
+          ./service/sst/include \
+          protocol/interface/ims \
+          driver/devdrv/cirq/$(MD_VER_FOLDER)/inc
+
+ifeq ($(strip $(RTOS)),MERTOS)
+INC_DIR += ./service/mertos/include
+endif
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+
diff --git a/mcu/make/module/service/mcf/extern/mcf.mak b/mcu/make/module/service/mcf/extern/mcf.mak
new file mode 100644
index 0000000..d3e482c
--- /dev/null
+++ b/mcu/make/module/service/mcf/extern/mcf.mak
@@ -0,0 +1,52 @@
+# Define ./interface/modem folder path by project option 
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6293
+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6295
+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6297
+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6297p
+else
+	#no match chip
+endif
+#
+# Define source file lists to SRC_LIST
+#
+SRC_LIST = service/mcf/src/mcf_if.c \
+           service/mcf/src/mcf_task.c \
+           service/mcf/src/mcf_util.c \
+           service/mcf/src/mcf_task_clean.c
+
+ifeq ($(strip $(MODIS_CONFIG)),TRUE)
+    SRC_LIST += service/mcf/src/mcf_utfwk.c
+    ifneq ($(filter ATEST_SYS_MCF, $(strip $(MODULE_DEFS))),)
+        SRC_LIST += service/mcf/src/mcf_ut.c \
+                    service/mcf/src/mcf_utfwk_sample_code.c
+    endif
+endif
+
+SRC_LIST += $(strip $(PROJDIR))/modem/mcf/mcf_db.c
+
+#
+#  Define include path lists to INC_DIR
+#
+INC_DIR = service/mcf/include \
+          interface/service/mcf \
+          interface/service/nvram \
+          $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/custom \
+		  
+INC_DIR += $(strip $(PROJDIR))/modem/mcf/
+
+#
+# Define the specified compile options to COMP_DEFS
+#
+ifneq ($(filter ATEST_SYS_MCF, $(strip $(MODULE_DEFS))),)
+    COMP_DEFS += __MCF_FIND_TAG_SUPPORT__
+endif
+COMP_DEFS += __MCF_FIND_GID_SUPPORT__
+
+#
+# Define the source file search paths to SRC_PATH
+#
+SRC_PATH = service/mcf/src
diff --git a/mcu/make/module/service/mertos/extern/mertos_config.mak b/mcu/make/module/service/mertos/extern/mertos_config.mak
new file mode 100644
index 0000000..f4a13cf
--- /dev/null
+++ b/mcu/make/module/service/mertos/extern/mertos_config.mak
@@ -0,0 +1,21 @@
+# Define source file lists to SRC_LIST
+SRC_LIST  = service/mertos_config/src/mer_config_task.c \
+            service/mertos_config/src/mer_config_fixmem.c \
+            service/mertos_config/src/mer_config_sync_enhmutex.c 
+             
+# Define include path lists to INC_DIR
+INC_DIR  =  service/mertos/include \
+            interface/service/kal \
+            service/mertos_config/include \
+			service/kal/os/mertos/include
+
+
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = _MER_SERVICE_CPU_INTERAPTIV_ __ESL_DBG_UTIL__
+COMP_DEFS = __MER_CONFIG_MUST_REBUILD__
+
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH  = service/mertos_config/src 
+ 
+
diff --git a/mcu/make/module/service/mtf/mtf.mak b/mcu/make/module/service/mtf/mtf.mak
new file mode 100755
index 0000000..bb16b2b
--- /dev/null
+++ b/mcu/make/module/service/mtf/mtf.mak
@@ -0,0 +1,20 @@
+# Define source file lists to SRC_LIST
+SRC_LIST += service/mtf/base/mt_dispatcher.c \
+			service/mtf/base/mt_task.c \
+			service/mtf/base/mt_task_clean.c \
+			service/mtf/formatter/mtf_base.c \
+			service/mtf/formatter/mtf_icd.c \
+			service/mtf/formatter/mtf_ilm.c \
+			service/mtf/formatter/mtf_peer_trace.c \
+			service/mtf/translate_elements/mte_base.c \
+# Define include path lists to INC_DIR
+INC_DIR =   service/mtf/inc \
+			interface/service/mtf \
+			interface/service/icd \
+			interface/protocol/general \
+			interface/sap/md \
+			$(strip $(PROJDIR))/modem/icd_ac_gen
+
+# Define the specified compile option to COMP_DEFS
+COMP_DEFS =
+
diff --git a/mcu/make/module/service/nvram/extern/nvram.mak b/mcu/make/module/service/nvram/extern/nvram.mak
new file mode 100644
index 0000000..de270ef
--- /dev/null
+++ b/mcu/make/module/service/nvram/extern/nvram.mak
@@ -0,0 +1,172 @@
+# Define ./interface/modem folder path by project option 
+ifneq ($(filter __MD93__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6293
+else ifneq ($(filter __MD95__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6295
+else ifneq ($(filter __MD97__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6297
+else ifneq ($(filter __MD97P__,$(strip $(MODULE_DEFS))),)
+	MD_VER_FOLDER_PATH = mt6297p
+else
+	#no match chip
+endif
+# Define source file lists to SRC_LIST
+SRC_LIST = ./service/nvram/src/nvram_factory_config.c \
+           ./service/nvram/src/nvram_handler_read.c \
+           ./service/nvram/src/nvram_handler_reset.c \
+           ./service/nvram/src/nvram_handler_startup.c \
+           ./service/nvram/src/nvram_handler_write.c \
+		   ./service/nvram/src/nvram_handler_monitor.c \
+           ./service/nvram/src/nvram_drval_fat.c \
+           ./service/nvram/src/nvram_ilm.c \
+           ./service/nvram/src/nvram_io.c \
+           ./service/nvram/src/nvram_ltable.c \
+           ./service/nvram/src/nvram_main.c \
+           ./service/nvram/src/nvram_multi_folder.c \
+           ./service/nvram/src/nvram_interface.c \
+           ./service/nvram/src/nvram_l1def.c \
+           ./service/nvram/src/nvram_util.c \
+           ./service/nvram/src/nvram_el1def.c \
+           ./service/nvram/src/nvram_nl1def.c \
+           ./service/nvram/src/nvram_mml1def.c \
+           ./service/nvram/src/nvram_tl1def.c \
+           ./service/nvram/src/nvram_ltable_register.c
+
+
+ifneq ($(filter __NVRAM_PSEUDO_MERGE__, $(strip $(MODULE_DEFS))),)
+	SRC_LIST += ./service/nvram/src/nvram_pseudo_merge.c
+endif
+ifneq ($(filter __NVRAM_OTP__, $(strip $(MODULE_DEFS))),)
+	SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+endif
+ifneq ($(filter __CUSTOMER_TC01_DISK__, $(strip $(MODULE_DEFS))),)
+	ifneq ($(filter __MTK_UL1_FDD__, $(strip $(MODULE_DEFS))),)
+		SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+	endif	
+endif
+ifneq ($(filter __SYSDRV_BACKUP_DISK__, $(strip $(MODULE_DEFS))),)
+	SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+endif
+
+ifneq ($(filter __SYSDRV_BACKUP_DISK_FAT__, $(strip $(MODULE_DEFS))),)
+	SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+endif
+
+ifneq ($(filter __NVRAM_UT_TEST__, $(strip $(MODULE_DEFS))),)
+	SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+endif
+
+ifneq ($(filter __SYSDRV_BACKUP_DISK_RAW__, $(strip $(MODULE_DEFS))),)
+	SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+	SRC_LIST += ./service/nvram/src/nvram_msg_handler.c
+endif
+ifneq ($(filter __SECURE_DATA_STORAGE__, $(strip $(MODULE_DEFS))),)
+	SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+	SRC_LIST += ./service/nvram/src/nvram_msg_handler.c
+endif
+
+ifneq ($(filter __CCCIFS_SUPPORT__, $(strip $(MODULE_DEFS))),)
+	ifneq ($(filter __MODEM_CARD__, $(strip $(MODULE_DEFS))),)
+		SRC_LIST += ./service/nvram/src/nvram_ex_io.c
+		SRC_LIST += ./service/nvram/src/nvram_msg_handler.c
+	endif	
+endif
+
+ifneq ($(filter __UMTS_RAT__, $(strip $(MODULE_DEFS))),)
+  ifneq ($(filter __MTK_UL1_FDD__, $(strip $(MODULE_DEFS))),)
+    SRC_LIST += ./service/nvram/src/nvram_ul1def.c
+  endif
+endif
+
+ifneq ($(filter __C2K_RAT__ __CL1_TASK_ENABLE__, $(strip $(MODULE_DEFS))),)
+  SRC_LIST += ./service/nvram/src/nvram_cl1def.c
+endif
+
+ifneq ($(filter __NVRAM_COMPRESS_SUPPORT__, $(strip $(MODULE_DEFS))),)
+  SRC_LIST += ./service/nvram/src/nvram_unzip.c
+endif
+
+ifneq ($(filter __SYSDRV_BACKUP_DISK__, $(strip $(MODULE_DEFS))),)
+  SRC_LIST += ./service/nvram/src/nvram_msg_handler.c
+endif
+
+ifneq ($(filter __CUSTOMER_TC01_DISK__, $(strip $(MODULE_DEFS))),)
+  SRC_LIST += ./service/nvram/src/nvram_msg_handler.c
+endif
+
+ifneq ($(filter __SECURE_DATA_STORAGE__, $(strip $(MODULE_DEFS))),)
+  SRC_LIST += ./service/nvram/src/nvram_msg_handler.c
+endif
+
+ifneq ($(filter TST_HANDLER, $(strip $(MODULE_DEFS))),)
+  SRC_LIST += ./service/nvram/src/nvram_handler_tst.c
+endif
+
+ifneq ($(filter __NVRAM_UNIT_TEST__, $(strip $(MODULE_DEFS))),)
+  SRC_LIST += ./service/nvram/src/nvram_tst.c
+endif
+
+ifneq ($(filter __NVRAM_UT_TEST__, $(strip $(MODULE_DEFS))),)
+  SRC_LIST += ./service/nvram/src/nvram_ut_test.c
+endif
+
+ifneq ($(filter __NVRAM_LID_CACHE__, $(strip $(MODULE_DEFS))),)
+  SRC_LIST += ./service/nvram/src/nvram_cache.c
+  SRC_LIST += ./service/nvram/src/nvram_cache_dirty_valid_mask.c
+  SRC_LIST += ./service/nvram/src/nvram_cache_event.c
+  SRC_LIST += ./service/nvram/src/nvram_cache_queue.c
+  SRC_LIST += ./service/nvram/src/nvram_cache_white_list.c
+  SRC_LIST += ./service/nvram/src/nvram_pre_read.c
+endif
+
+ifneq ($(filter __NV_CHKSUM_ENHANCE__, $(strip $(MODULE_DEFS))),)
+  SRC_LIST += ./service/nvram/src/nvram_chksum_algorithm.c
+endif
+
+# ifneq ($(filter __XXX__, $(strip $(MODULE_DEFS))),)
+#	SRC_LIST += xxxx\xxxxx\AAA.c
+# endif
+# ifeq ($(strip $(NAND_SUPPORT)),FALSE)
+#                SRC_LIST += xxxx
+# endif
+
+# Define include path lists to INC_DIR
+INC_DIR = ./service/nvram/include \
+          ./custom/middleware/common \
+          ./interface/service/mcf \
+          ./interface/l1/el1/external/comm/rf_custom/inc \
+          ./interface/l1/cl1/rfd/external/comm/rf_custom \
+          ./interface/driver/devdrv/busmpu \
+          ./interface/service/hif \
+          ./interface/driver/sleep_drv\
+           interface/l1/nl1/external \
+           $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/5g \
+           $(UNIVERSAL_COMMON)/interface/modem/$(MD_VER_FOLDER_PATH)/common/nr/external/custom \
+         
+ifneq ($(filter __MD97__ __MD97P__,$(strip $(MODULE_DEFS))),)
+INC_DIR += interface/l1/nl1/external/
+INC_DIR += interface/l1/nl1/external/5g
+INC_DIR += interface/l1/nl1/external/4g
+endif
+
+
+ifneq ($(filter __NVRAM_LID_CACHE__, $(strip $(MODULE_DEFS))),)
+  INC_DIR += $(strip $(PROJDIR))/nvram_auto_gen/
+endif
+
+ifeq ($(strip $(LGE_SECURITY)), TRUE)
+    INC_DIR += custom/modem/lgesecurity
+endif
+          
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS =
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = ./service/nvram/src
+
+COMP_DEFS += CURR_MODULE=MOD_$(strip $(call Upper,$(COMPONENT))) 
+
+#fdr_reorg
+INC_DIR += interface/l1/cl1/common
+
+NO_LTO := TRUE
diff --git a/mcu/make/module/service/oscar/oscar.mak b/mcu/make/module/service/oscar/oscar.mak
new file mode 100644
index 0000000..6762538
--- /dev/null
+++ b/mcu/make/module/service/oscar/oscar.mak
@@ -0,0 +1,27 @@
+# Define source file lists to SRC_LIST
+SRC_LIST = MoDIS_VC9/oscar/src/osc_main.c \
+           MoDIS_VC9/oscar/src/osc_platform.c \
+           MoDIS_VC9/oscar/src/osc_queue.c \
+           MoDIS_VC9/oscar/src/osc_semaphore.c \
+           MoDIS_VC9/oscar/src/osc_enhmutex.c \
+           MoDIS_VC9/oscar/src/osc_system.c \
+           MoDIS_VC9/oscar/src/osc_thread.c \
+           MoDIS_VC9/oscar/src/osc_timer.c \
+           MoDIS_VC9/oscar/src/osc_utility.c \
+           MoDIS_VC9/oscar/src/osc_buffer.c \
+           MoDIS_VC9/oscar/src/osc_event.c \
+           MoDIS_VC9/oscar/src/osc_critical_section.c \
+           MoDIS_VC9/oscar/src/osc_swla.c
+ 
+# Define include path lists to INC_DIR
+INC_DIR = MoDIS_VC9/oscar/include
+
+# Define the specified compile options to COMP_DEFS
+ifeq ($(strip $(UE_SIMULATOR)), TRUE)
+COMP_DEFS = __UT_ISR_OPTIMIZE__
+
+endif
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = MoDIS_VC9/oscar/src
+ 
diff --git a/mcu/make/module/service/service_config.mak b/mcu/make/module/service/service_config.mak
new file mode 100644
index 0000000..fc21403
--- /dev/null
+++ b/mcu/make/module/service/service_config.mak
@@ -0,0 +1,18 @@
+ifeq ($(strip $(RTOS)),MERTOS)

+  CATEGORY_INCDIRS += ./service/mertos/include

+  CATEGORY_INCDIRS += ./service/kal/common/include

+  CATEGORY_INCDIRS += ./service/kal/os/mertos/include

+  CATEGORY_INCDIRS += ./service/kal/lib/mlib/include

+endif

+

+CATEGORY_INCDIRS += ./service/sst/include

+CATEGORY_INCDIRS += ./service/sst/include

+CATEGORY_INCDIRS += ./service/fs/common/include

+

+CATEGORY_DEFS += 

+

+ifeq ($(strip $(LTO_BUILD)),TRUE)

+  ifeq ($(strip $(NO_LTO)),)

+      CFLAGS += -flto -fno-fat-lto-objects

+  endif

+endif

diff --git a/mcu/make/module/service/sss/sss.mak b/mcu/make/module/service/sss/sss.mak
new file mode 100644
index 0000000..b864126
--- /dev/null
+++ b/mcu/make/module/service/sss/sss.mak
@@ -0,0 +1,77 @@
+##############################################################
+# Define bootloader folder path
+##############################################################
+
+# Define source file lists to SRC_LIST
+           
+ifneq ($(filter __SV5_ENABLED__ __SV5X_ENABLED__,$(strip $(MODULE_DEFS))),)
+SRC_LIST = ./service/sss/components/src/SSS_secure_shared_v5.c \
+           ./service/sss/components/src/SSS_efuse_blow.c \
+           ./service/sss/components/crypto/src/br_crypto_common.c \
+           ./service/sss/components/crypto/src/br_crypto_drv.c \
+           ./service/sss/components/crypto/src/br_crypto_drv_M1_RSA.c \
+           ./service/sss/components/crypto/src/br_crypto_drv_SEJ_AES_HW.c \
+           ./service/sss/components/crypto/src/br_crypto_drv_SEJ_AES_SW.c \
+           ./service/sss/components/crypto/src/br_crypto_drv_SHA256_SW.c \
+           ./service/sss/components/crypto/src/br_crypto_lib.c \
+           ./service/sss/components/crypto/src/br_crypto_scheme.c \
+           ./service/sss/components/crypto/src/br_sd_crypto.c \
+           ./service/sss/components/crypto/src/br_M1_RSA_v1.c \
+           ./service/sss/components/crypto/src/br_sha256_sw.c \
+           ./service/sss/components/crypto/src/br_aes_sw.c
+endif
+ 
+# Define include path lists to INC_DIR
+INC_DIR = ./service/sst/include \
+          ./service/sst/include_sec \
+          ./service/sss/components/inc \
+          ./service/sss/interface/inc \
+          driver/drv/include \
+          driver/che/include \
+          ./service/sss/interface/crypto/export/public \
+          ./service/sss/components/crypto/export/private \
+          ./service/sss/components/crypto/inc \
+          ./service/sss/components/GFH/private \
+          ./service/sys_svc/gfh/public \
+          ./service/sys_svc/profile/inc \
+          ./interface/service/sst
+ 
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = APCS_INTWORK \
+            __MTK_SECURE_PLATFORM__ \
+            __CP_DEFINED_ALL_CONTEXT__ \
+            __CP_DEFINED_WORKING_BUF__ \
+            __CRYPTO_ENCRYPT__  \
+            __CRYPTO_SCHEME__ \
+            __CRYPTO_LIB__ \
+            __CS_SIG_SINGLE__ \
+            __CS_MTK_CIPHER__ \
+            __CS_CIPHER__ \
+            __CS_HASH__ \
+            __CL_GFH_SIG__ \
+            __CL_MTK_CIPHER__ \
+            __CL_SIG_SINGLE_AND_PHASH_V1__ \
+            __CL_SIG_MULTI_V1__ \
+            __RSA_SW__ \
+            __SHA256_SW__ \
+            __SHA1_SW__ \
+            __SOE_AES_HW__ \
+            __SEJ_AES_HW__ \
+            __AES_SW__ \
+            __AES_HW__ \
+            __3DES_SW__  \
+            __TIME_STAMP__
+
+#            __SEJ_3DES_HW__ \
+#            __3DES_HW__ \
+#            __SHA256_HW__ \
+#            __SHA1_HW__ \
+
+# Turn-on asembly support. To sync with BootROM
+#COMP_DEFS +=__SHA1_HW_ASM__ \
+#            __SEJ_AES_HW_ASM__
+
+# Define the source file search paths to SRC_PATH
+SRC_PATH = ./service/sss/components/src \
+           ./service/sss/components/crypto/src
+ 
diff --git a/mcu/make/module/service/sys_svc/extern/sys_svc.mak b/mcu/make/module/service/sys_svc/extern/sys_svc.mak
new file mode 100644
index 0000000..d365cef
--- /dev/null
+++ b/mcu/make/module/service/sys_svc/extern/sys_svc.mak
@@ -0,0 +1,126 @@
+##############################################################
+# Define bootloader folder path
+##############################################################
+
+# Define source file lists to SRC_LIST
+      SRC_LIST = ./service/sys_svc/excep_hdlr/src/excep_hdlr.c
+
+ifneq ($(filter __SV5_ENABLED__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += ./service/sys_svc/gfh/public/br_GFH_parser.c
+      SRC_LIST += ./service/sys_svc/gfh/public/br_GFH_file_info.c
+      SRC_LIST += ./service/sys_svc/ftl/src/FTL.c
+else ifneq ($(filter __SV5X_ENABLED__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += ./service/sys_svc/ftl/src/FTL.c
+      SRC_LIST += ./service/sys_svc/gfh/public/br_GFH_parser.c
+      SRC_LIST += ./service/sys_svc/gfh/public/br_GFH_file_info.c
+else
+      SRC_LIST += ./service/sys_svc/gfh/public/br_GFH_parser.c
+      SRC_LIST += ./service/sys_svc/gfh/public/br_GFH_file_info.c
+endif
+
+
+ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += ./service/sys_svc/region/src/init_memory_stack.c
+endif
+
+ifneq ($(filter __MD93__, $(strip $(MODULE_DEFS))),)
+	SRC_LIST += ./service/sys_svc/gfh/public/Gen93/maui_GFH_body.c
+else ifneq ($(filter __MD95__, $(strip $(MODULE_DEFS))),)
+	SRC_LIST += ./service/sys_svc/gfh/public/maui_GFH_body.c
+else ifneq ($(filter __MD97__ __MD97P__, $(strip $(MODULE_DEFS))),)
+	SRC_LIST += ./service/sys_svc/gfh/public/maui_GFH_body.c
+else
+	#error "no chip matched for maui_GFH_body design"
+endif
+
+SRC_LIST += ./service/sys_svc/region/src/regioninit_c_gcc.c
+
+ifeq ($(strip $(COMPILER)), GCC)
+   ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += ./service/sys_svc/region/src/stack_gcc.S
+      SRC_LIST += ./service/sys_svc/region/src/regioninit_gcc.S
+   endif
+else  # RVCT
+   ifneq ($(filter __MTK_TARGET__, $(strip $(MODULE_DEFS))),)
+      SRC_LIST += ./service/sys_svc/region/src/stack_rvct.S
+      SRC_LIST += ./service/sys_svc/region/src/regioninit_rvct.S
+      SRC_LIST += ./service/sys_svc/region/src/l6478e.s
+   endif
+endif
+
+
+ifeq ($(TS_PROFILING),TRUE)
+      SRC_LIST += ./service/sys_svc/profile/src/br_time_stamp.c
+      SRC_LIST += ./service/sys_svc/profile/src/maui_time_stamp_util.c
+      SRC_LIST += ./service/sys_svc/profile/src/time_stamp_timer.c
+endif
+
+ifneq ($(filter __LTE_RAT__, $(strip $(MODULE_DEFS))),)
+       SRC_LIST += ./service/sys_svc/dspfm_lte/src/dspfm.c
+endif
+
+SRC_LIST += ./service/sys_svc/brom_ext/src/brom_ext.c
+
+###################################################################
+# Define include path lists to INC_DIR
+INC_DIR = ./service/sst/include \
+          ./service/sst/include \
+          $(strip $(PROJDIR))/verno \
+          ./service/ssf/inc \
+          ./service/sss/interface/inc \
+          driver/peripheral/inc \
+          driver/storage/flash/fdm/inc \
+          driver/sys_drv/cache/inc \
+          driver/sys_drv/cache/inc/$(MD_VER_FOLDER) \
+          driver/sys_drv/init/inc \
+          driver/sys_drv/pmu/inc \
+          ./service/sys_svc/region/inc \
+          ./service/sys_svc/excep_hdlr/inc \
+          ./service/sys_svc/gfh/public \
+          ./service/sys_svc/profile/inc \
+          ./service/sys_svc/dspfm_lte/inc \
+          interface/driver/regbase \
+          interface/driver/devdrv/busmpu \
+          ./interface/service/sst \
+          ./service/sys_svc/brom_ext/inc \
+          ./interface/service/mdmp \
+          ./interface/service/hif \
+          driver/sys_drv/mpu/inc/$(MD_VER_FOLDER)
+
+###################################################################
+# Define the specified compile options to COMP_DEFS
+COMP_DEFS = APCS_INTWORK
+
+COMP_DEFS += $(strip $(PLATFORM))
+
+
+ifeq ($(strip $(NEED_BUILD_BOOTLOADER)),TRUE)
+  COMP_DEFS += __BL_ENABLE__
+endif
+
+ifeq ($(strip $(ENHANCED_SINGLE_BANK_NOR_FLASH_SUPPORT)),TRUE)
+  COMP_DEFS += SINGLE_BANK_SUPPORT
+endif
+
+ifeq ($(TS_PROFILING),TRUE)
+    COMP_DEFS   +=  __TIME_STAMP__\
+                    __TIME_STAMP_UTIL__\
+                    __TIME_STAMP_TDMA_TIMER__\
+                    __TIME_STAMP_FORCE_ENABLE__
+endif
+
+ifneq ($(filter __MD93__, $(strip $(MODULE_DEFS))),)
+	#COMP_DEFS +=  __USE_PSS__
+else ifneq ($(filter __MD95__ __MD97__ __MD97P__, $(strip $(MODULE_DEFS))),)
+	COMP_DEFS +=  __CERT_CHAIN_IMG__
+endif
+
+ifneq ($(strip $(COMPILER_ISA)),NANOMIPS)
+%/regioninit_c_gcc.obj: CFLAGS += -minline-intermix
+endif
+
+ifeq ($(strip $(LTO_BUILD)),TRUE)
+%/maui_GFH_body.obj: CFLAGS := $(filter-out -flto -fno-fat-lto-objects, $(CFLAGS))
+%/br_GFH_file_info.obj: CFLAGS := $(filter-out -flto -fno-fat-lto-objects, $(CFLAGS))
+%/br_GFH_parser.obj: CFLAGS := $(filter-out -flto -fno-fat-lto-objects, $(CFLAGS))
+endif
diff --git a/mcu/make/module/service/verno/extern/verno.mak b/mcu/make/module/service/verno/extern/verno.mak
new file mode 100644
index 0000000..f475bf7
--- /dev/null
+++ b/mcu/make/module/service/verno/extern/verno.mak
@@ -0,0 +1,12 @@
+# Define source file lists to SRC_LIST

+SRC_LIST = $(strip $(PROJDIR))/verno/verno.c

+ 

+# Define include path lists to INC_DIR

+INC_DIR =

+

+# Define the specified compile options to COMP_DEFS

+COMP_DEFS =

+

+# Define the source file search paths to SRC_PATH

+SRC_PATH = $(strip $(PROJDIR))/verno

+