rules.mk 6.4 KB

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