[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
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