rules.mk 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. LOCAL_DIR := $(GET_LOCAL_DIR)
  2. MT_BOOT_OBJ_DIR := $(BOOTLOADER_OUT)/build-$(PROJECT)/app/mt_boot
  3. ifeq ($(CUSTOM_SEC_CRYPTO_SUPPORT), yes)
  4. OBJS += \
  5. $(TO_ROOT)../../../mediatek/custom/common/security/fastboot/cust_auth.o
  6. endif
  7. ifeq ($(strip $(MTK_EMMC_SUPPORT)),yes)
  8. FASTBOOT_PARALLEL_DOWNLOAD :=yes
  9. endif
  10. OBJS += \
  11. $(LOCAL_DIR)/mt_boot.o \
  12. $(LOCAL_DIR)/odm_mdtbo.o \
  13. $(LOCAL_DIR)/decompressor.o\
  14. $(LOCAL_DIR)/fastboot.o \
  15. $(LOCAL_DIR)/iothread.o \
  16. $(LOCAL_DIR)/sec_hrid.o \
  17. $(LOCAL_DIR)/sec_socid.o \
  18. $(LOCAL_DIR)/sys_commands.o \
  19. $(LOCAL_DIR)/aee/mrdump_dummy.o \
  20. $(LOCAL_DIR)/aee/mrdump_key_setup.o \
  21. $(LOCAL_DIR)/blockheader.o \
  22. $(LOCAL_DIR)/bootargs.o \
  23. $(LOCAL_DIR)/fdt_op.o
  24. ifeq ($(FASTBOOT_PARALLEL_DOWNLOAD),yes)
  25. OBJS += \
  26. $(LOCAL_DIR)/mtransfer/bulk_process.o \
  27. $(LOCAL_DIR)/mtransfer/sparse_state_machine.o \
  28. $(LOCAL_DIR)/mtransfer/transfer_parallel.o
  29. DEFINES += MTK_ULTRA_FLASH
  30. INCLUDES += -I$(LOCAL_DIR)/mtransfer
  31. ifeq ($(MTK_TLC_NAND_SUPPORT),yes)
  32. OBJS += \
  33. $(LOCAL_DIR)/mtransfer/bulk_process_nand.o \
  34. $(LOCAL_DIR)/mtransfer/sparse_state_machine_nand.o
  35. endif
  36. endif
  37. # DCONFIG
  38. ifeq ($(ARCH_HAVE_DCONFIG),yes)
  39. DEFINES += MTK_DCONFIG_SUPPORT
  40. endif
  41. # MRDUMP setting sanity check
  42. ifneq ($(ARCH_HAVE_MT_RAMDUMP),yes)
  43. ifneq ($(ARCH_HAVE_MT_RAMDUMP),no)
  44. ifneq ($(ARCH_HAVE_MT_RAMDUMP),)
  45. $(error Unknown ARCH_HAVE_MT_RAMDUMP setting.)
  46. endif
  47. endif
  48. endif
  49. ifneq ($(MTK_MRDUMP_ENABLE),dconfig)
  50. ifneq ($(MTK_MRDUMP_ENABLE),yes)
  51. ifneq ($(MTK_MRDUMP_ENABLE),no)
  52. ifneq ($(MTK_MRDUMP_ENABLE),)
  53. $(error Unknown MTK_MRDUMP_ENABLE setting.)
  54. endif
  55. endif
  56. endif
  57. endif
  58. # MRDUMP setting check
  59. build_mt_ramdump := no
  60. # user(default disable MRDUMP)
  61. ifeq ($(TARGET_BUILD_VARIANT),user)
  62. ifeq ($(MTK_MRDUMP_ENABLE),yes)
  63. build_mt_ramdump := yes
  64. endif
  65. ifeq ($(MTK_MRDUMP_ENABLE),dconfig)
  66. build_mt_ramdump := dconfig
  67. endif
  68. endif
  69. # eng(default enable MRDUMP)
  70. ifeq ($(TARGET_BUILD_VARIANT),eng)
  71. build_mt_ramdump := yes
  72. ifeq ($(MTK_MRDUMP_ENABLE),no)
  73. build_mt_ramdump := no
  74. endif
  75. endif
  76. # userdebug(default enable MRDUMP)
  77. ifeq ($(TARGET_BUILD_VARIANT),userdebug)
  78. build_mt_ramdump := yes
  79. ifeq ($(MTK_MRDUMP_ENABLE),no)
  80. build_mt_ramdump := no
  81. endif
  82. endif
  83. ifneq ($(build_mt_ramdump),no)
  84. # MRDUMP depend on AEE/MINI
  85. ifneq ($(KEDUMP_MINI),yes)
  86. $(info Disable mrdump support - AEE/mini disabled)
  87. build_mt_ramdump := no
  88. endif
  89. # MRDUMP show build warning if ARCH_HAVE_MT_RAMDUMP = no, and MTK_MRDUMP_ENABLE = yes
  90. ifeq ($(ARCH_HAVE_MT_RAMDUMP),no)
  91. $(info Disable mrdump support - architecture no support)
  92. build_mt_ramdump := no
  93. endif
  94. # MRDUMP doesn't support MLC NAND
  95. ifeq ($(MTK_MLC_NAND_SUPPORT),yes)
  96. $(info Disable mrdump support - mlc nand)
  97. build_mt_ramdump := no
  98. endif
  99. endif
  100. ifneq ($(build_mt_ramdump),no)
  101. ifeq ($(build_mt_ramdump),dconfig)
  102. DEFINES += MTK_MRDUMP_SUPPORT=2
  103. else
  104. DEFINES += MTK_MRDUMP_SUPPORT=1
  105. endif
  106. ifeq ($(strip $(MTK_MRDUMP_PARTITION_ENABLE)),yes)
  107. DEFINES += MRDUMP_PARTITION_ENABLE
  108. endif
  109. ifeq ($(strip $(MTK_MRDUMP_PARTITION_ENABLE)),debug)
  110. ifneq ($(TARGET_BUILD_VARIANT),user)
  111. DEFINES += MRDUMP_PARTITION_ENABLE
  112. endif
  113. endif
  114. OBJS += \
  115. $(LOCAL_DIR)/aee/aee.o \
  116. $(LOCAL_DIR)/aee/mrdump_datafs.o \
  117. $(LOCAL_DIR)/aee/mrdump_dbgscript.o \
  118. $(LOCAL_DIR)/aee/mrdump_dconfig.o \
  119. $(LOCAL_DIR)/aee/mrdump_elf.o \
  120. $(LOCAL_DIR)/aee/mrdump_mpart.o \
  121. $(LOCAL_DIR)/aee/mrdump_null.o \
  122. $(LOCAL_DIR)/aee/mrdump_rsvmem.o \
  123. $(LOCAL_DIR)/aee/mrdump_sddev.o \
  124. $(LOCAL_DIR)/aee/mrdump_usb.o \
  125. $(LOCAL_DIR)/aee/mrdump_zip.o
  126. endif
  127. OBJS += $(LOCAL_DIR)/mt_hvc_call.o
  128. ifeq ($(KEDUMP_MINI), yes)
  129. OBJS += $(LOCAL_DIR)/aee/KEDump.o \
  130. $(LOCAL_DIR)/aee/armmmu_translate.o \
  131. $(LOCAL_DIR)/aee/platform_debug.o \
  132. $(LOCAL_DIR)/aee/reboot_record.o \
  133. $(LOCAL_DIR)/aee/mrdump_setup.o
  134. endif
  135. OBJS += \
  136. $(LOCAL_DIR)/aee/ram_console.o
  137. SECRO_TYPE := GMP
  138. OBJS += \
  139. $(LOCAL_DIR)/dl_commands.o
  140. ifeq ($(MTK_SECURITY_SW_SUPPORT), yes)
  141. ifeq ($(MTK_SEC_FASTBOOT_UNLOCK_SUPPORT), yes)
  142. OBJS += $(LOCAL_DIR)/sec_unlock.o
  143. endif
  144. endif
  145. ifeq ($(MTK_SMC_ID_MGMT), yes)
  146. DEFINES += MTK_SMC_ID_MGMT
  147. OBJS += $(LOCAL_DIR)/mt_secure_call.o
  148. endif
  149. ifeq ($(MTK_DIS_ATF_RAM_DUMP), yes)
  150. DEFINES += MTK_DIS_ATF_RAM_DUMP
  151. endif
  152. ifeq ($(BUILD_SEC_LIB),yes)
  153. #directories
  154. CRYPTO_DIR := $(LOCAL_DIR)/crypto
  155. SEC_DIR := $(LOCAL_DIR)/sec
  156. SEC_PLAT_DIR := $(LOCAL_DIR)/platform
  157. EXPORT_INC_DIR := $(LOCAL_DIR)/export_inc
  158. #source files te built
  159. CRYPTO_LOCAL_OBJS := $(patsubst $(CRYPTO_DIR)/%.c,$(CRYPTO_DIR)/%.o,$(wildcard $(CRYPTO_DIR)/*.c))
  160. SEC_LOCAL_OBJS := $(patsubst $(SEC_DIR)/%.c,$(SEC_DIR)/%.o,$(wildcard $(SEC_DIR)/*.c))
  161. SEC_PLAT_LOCAL_OBJS := $(patsubst $(SEC_PLAT_DIR)/%.c,$(SEC_PLAT_DIR)/%.o,$(wildcard $(SEC_PLAT_DIR)/*.c))
  162. #objet files to be archived(referenced by make/build.mk)
  163. CRYPTO_OBJS := $(patsubst $(CRYPTO_DIR)/%.c,$(MT_BOOT_OBJ_DIR)/crypto/%.o,$(wildcard $(CRYPTO_DIR)/*.c))
  164. SEC_OBJS := $(patsubst $(SEC_DIR)/%.c,$(MT_BOOT_OBJ_DIR)/sec/%.o,$(wildcard $(SEC_DIR)/*.c))
  165. SEC_PLAT_OBJS := $(patsubst $(SEC_PLAT_DIR)/%.c,$(MT_BOOT_OBJ_DIR)/platform/%.o,$(wildcard $(SEC_PLAT_DIR)/*.c))
  166. #include path and object file list for building
  167. INCLUDES += -I$(CRYPTO_DIR)/inc -I$(SEC_DIR)/inc -I$(SEC_PLAT_DIR) -I$(EXPORT_INC_DIR)
  168. OBJS += $(CRYPTO_LOCAL_OBJS) $(SEC_LOCAL_OBJS) $(SEC_PLAT_LOCAL_OBJS)
  169. endif
  170. ifeq ($(BUILD_DEVINFO_LIB),yes)
  171. DEVINFO_DIR := $(LOCAL_DIR)/devinfo
  172. DEVINFO_LOCAL_OBJS := $(patsubst $(DEVINFO_DIR)/%.c,$(DEVINFO_DIR)/%.o,$(wildcard $(DEVINFO_DIR)/*.c))
  173. DEVINFO_OBJS := $(patsubst $(DEVINFO_DIR)/%.c,$(MT_BOOT_OBJ_DIR)/devinfo/%.o,$(wildcard $(DEVINFO_DIR)/*.c))
  174. INCLUDES += -I$(DEVINFO_DIR)
  175. OBJS += $(DEVINFO_LOCAL_OBJS)
  176. endif
  177. ifeq ($(BUILD_HW_CRYPTO_LIB),yes)
  178. HW_CRYPTO_DIR := $(LOCAL_DIR)/hw_crypto
  179. INCLUDES += -I$(HW_CRYPTO_DIR)/inc
  180. HW_CRYPTO_LOCAL_OBJS := $(patsubst $(HW_CRYPTO_DIR)/%.c,$(HW_CRYPTO_DIR)/%.o,$(wildcard $(HW_CRYPTO_DIR)/*.c))
  181. HW_CRYPTO_OBJS := $(patsubst $(HW_CRYPTO_DIR)/%.c,$(MT_BOOT_OBJ_DIR)/hw_crypto/%.o,$(wildcard $(HW_CRYPTO_DIR)/*.c))
  182. OBJS += $(HW_CRYPTO_LOCAL_OBJS)
  183. endif
  184. ifeq ($(MTK_AB_OTA_UPDATER),yes)
  185. INCLUDES += -I$(LK_TOP_DIR)/platform/common/bootctrl
  186. endif
  187. INCLUDES += -I$(LK_TOP_DIR)/platform/common/RoT
  188. INCLUDES += -Iplatform/$(PLATFORM)/include/platform
  189. ifeq ($(CFG_MTK_WDT_COMMON), yes)
  190. INCLUDES += -I$(LK_TOP_DIR)/platform/common/wdt
  191. endif
  192. INCLUDES += -I$(LK_TOP_DIR)/dev/md_com
  193. ifeq ($(strip $(MTK_EMMC_SUPPORT)),yes)
  194. ifeq ($(strip $(MTK_MMC_COMBO_DRV)),yes)
  195. INCLUDES += -I$(LK_TOP_DIR)/platform/common/storage/mmc/inc
  196. else
  197. INCLUDES += -I$(LK_TOP_DIR)/platform/$(PLATFORM)/include
  198. endif
  199. endif
  200. ifeq ($(strip $(MNTL_SUPPORT)),yes)
  201. ifeq ($(strip $(MTK_MMC_COMBO_DRV)),yes)
  202. INCLUDES += -I$(LK_TOP_DIR)/platform/common/storage/mmc/inc
  203. else
  204. INCLUDES += -I$(LK_TOP_DIR)/platform/$(PLATFORM)/include
  205. endif
  206. endif