rules.mk 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  1. LOCAL_DIR := $(GET_LOCAL_DIR)
  2. ARCH := arm
  3. ARM_CPU := cortex-a53
  4. CPU := generic
  5. MMC_SLOT := 1
  6. PLATFORM_SECURITY_VERSION:=20
  7. DEFINES += PLATFORM_SECURITY_VERSION=$(PLATFORM_SECURITY_VERSION)
  8. MTK_AVB20_SUPPORT:=no
  9. AVB_SHA256_CRYPTO_HW_SUPPORT:=no
  10. # mtk gpt version
  11. GPT_VER := 3
  12. DEFINES += GPT_VER=$(GPT_VER)
  13. # choose one of following value -> 2: permissive /3: enforcing
  14. SELINUX_STATUS := 3
  15. # set kernel decompress size limit (50MB)
  16. KERNEL_DECOMPRESS_SIZE := 0x03200000
  17. DEFINES += KERNEL_DECOMPRESS_SIZE=$(KERNEL_DECOMPRESS_SIZE)
  18. # overwrite SELINUX_STATUS value with PRJ_SELINUX_STATUS, if defined. it's by project variable.
  19. ifdef PRJ_SELINUX_STATUS
  20. SELINUX_STATUS := $(PRJ_SELINUX_STATUS)
  21. endif
  22. ifeq (yes,$(strip $(MTK_BUILD_ROOT)))
  23. SELINUX_STATUS := 2
  24. DEFINES += MTK_BUILD_ROOT
  25. endif
  26. DEFINES += PLATFORM=\"$(PLATFORM)\"
  27. DEFINES += SELINUX_STATUS=$(SELINUX_STATUS)
  28. DEFINES += PERIPH_BLK_BLSP=1
  29. DEFINES += WITH_CPU_EARLY_INIT=0 WITH_CPU_WARM_BOOT=0 \
  30. MMC_SLOT=$(MMC_SLOT)
  31. # provide PMIC full (cold) reset functionality
  32. MTK_PMIC_FULL_RESET := yes
  33. ifeq ($(MTK_PMIC_FULL_RESET), yes)
  34. DEFINES += MTK_PMIC_FULL_RESET
  35. endif
  36. CFG_DTB_EARLY_LOADER_SUPPORT := yes
  37. MBLOCK_LIB_SUPPORT := yes
  38. ifeq ($(MBLOCK_LIB_SUPPORT), yes)
  39. DEFINES += MBLOCK_LIB_SUPPORT=2
  40. MBLOCK_LIB_SUPPORT := 2
  41. MODULES += lib/mblock
  42. INCLUDES += -I$(LOCAL_DIR)/../../lib/mblock
  43. endif
  44. ifeq ($(CFG_DTB_EARLY_LOADER_SUPPORT), yes)
  45. DEFINES += CFG_DTB_EARLY_LOADER_SUPPORT=1
  46. endif
  47. MTK_3LEVEL_PAGETABLE := yes
  48. ifeq ($(MTK_3LEVEL_PAGETABLE), yes)
  49. DEFINES += MTK_3LEVEL_PAGETABLE
  50. endif
  51. ifeq ($(MTK_SECURITY_SW_SUPPORT), yes)
  52. DEFINES += MTK_SECURITY_SW_SUPPORT
  53. endif
  54. ifeq ($(MTK_SECURITY_ANTI_ROLLBACK), yes)
  55. DEFINES += MTK_SECURITY_ANTI_ROLLBACK
  56. endif
  57. ifeq ($(MD_RMA_SUPPORT), yes)
  58. DEFINES += MD_RMA_SUPPORT
  59. endif
  60. ifeq ($(MTK_GOOGLE_TRUSTY_SUPPORT), yes)
  61. DEFINES += MTK_LM_2LEVEL_PAGETABLE_MODE
  62. endif
  63. # choose one of following value -> 0: disabled/1: enable
  64. MTK_POWER_ON_WRITE_PROTECT := 1
  65. ifdef PRJ_MTK_POWER_ON_WRITE_PROTECT
  66. MTK_POWER_ON_WRITE_PROTECT := $(PRJ_MTK_POWER_ON_WRITE_PROTECT)
  67. endif
  68. ifeq ($(MTK_POWER_ON_WRITE_PROTECT), 1)
  69. DEFINES += MTK_POWER_ON_WRITE_PROTECT=$(MTK_POWER_ON_WRITE_PROTECT)
  70. ifeq ($(MTK_SIM_LOCK_POWER_ON_WRITE_PROTECT), yes)
  71. DEFINES += MTK_SIM_LOCK_POWER_ON_WRITE_PROTECT
  72. endif
  73. endif
  74. ifeq ($(MTK_SEC_FASTBOOT_UNLOCK_SUPPORT), yes)
  75. DEFINES += MTK_SEC_FASTBOOT_UNLOCK_SUPPORT
  76. ifeq ($(MTK_SEC_FASTBOOT_UNLOCK_KEY_SUPPORT), yes)
  77. DEFINES += MTK_SEC_FASTBOOT_UNLOCK_KEY_SUPPORT
  78. endif
  79. endif
  80. ifeq ($(MTK_KERNEL_POWER_OFF_CHARGING),yes)
  81. #Fastboot support off-mode-charge 0/1
  82. #1: charging mode, 0:skip charging mode
  83. DEFINES += MTK_OFF_MODE_CHARGE_SUPPORT
  84. endif
  85. ifneq ($(filter user, $(TARGET_BUILD_VARIANT)),)
  86. DEFINES += USER_LOAD
  87. endif
  88. DEFINES += MTK_SMC_K32_SUPPORT
  89. DEFINES += CONFIG_ARM_ERRATA_855873
  90. KEDUMP_MINI := yes
  91. ARCH_HAVE_MT_RAMDUMP := yes
  92. # Use it Carefully! Make sure that you know what you are doing!
  93. # This config will force MRDUMP enabled.
  94. ifeq ($(MTK_MRDUMP_ENABLE),)
  95. #MTK_MRDUMP_ENABLE := yes
  96. endif
  97. # Use SRAM to preserve control block
  98. ifneq ($(wildcard $(LOCAL_DIR)/include/platform/mtk_mrdump.h),)
  99. DEFINES += MTK_SRAM_MRDUMP_CB
  100. endif
  101. DEFINES += $(shell echo $(BOOT_LOGO) | tr a-z A-Z)
  102. MTK_EMMC_POWER_ON_WP := yes
  103. ifeq ($(MTK_EMMC_SUPPORT),yes)
  104. ifeq ($(MTK_EMMC_POWER_ON_WP),yes)
  105. DEFINES += MTK_EMMC_POWER_ON_WP
  106. endif
  107. endif
  108. ifdef MTK_CARRIEREXPRESS_PACK
  109. ifneq ($(strip $(MTK_CARRIEREXPRESS_PACK)), no)
  110. DEFINES += MTK_CARRIEREXPRESS_PACK
  111. ifeq ($(filter OP01, $(subst _, $(space), $(MTK_REGIONAL_OP_PACK))), OP01)
  112. DEFINES += MTK_CARRIEREXPRESS_PACK_OP01
  113. endif
  114. ifeq ($(filter OP02, $(subst _, $(space), $(MTK_REGIONAL_OP_PACK))), OP02)
  115. DEFINES += MTK_CARRIEREXPRESS_PACK_OP02
  116. endif
  117. ifeq ($(filter OP09, $(subst _, $(space), $(MTK_REGIONAL_OP_PACK))), OP09)
  118. DEFINES += MTK_CARRIEREXPRESS_PACK_OP09
  119. endif
  120. ifneq ($(filter NONE, $(subst _, $(space), $(OPTR_SPEC_SEG_DEF))), NONE)
  121. ifeq ($(filter OP01, $(subst _, $(space), $(OPTR_SPEC_SEG_DEF))), OP01)
  122. GLOBAL_DEVICE_DEFAULT_OPTR := 1
  123. DEFINES += GLOBAL_DEVICE_DEFAULT_OPTR=$(GLOBAL_DEVICE_DEFAULT_OPTR)
  124. endif
  125. ifeq ($(filter OP02, $(subst _, $(space), $(OPTR_SPEC_SEG_DEF))), OP02)
  126. GLOBAL_DEVICE_DEFAULT_OPTR := 2
  127. DEFINES += GLOBAL_DEVICE_DEFAULT_OPTR=$(GLOBAL_DEVICE_DEFAULT_OPTR)
  128. endif
  129. ifeq ($(filter OP09, $(subst _, $(space), $(OPTR_SPEC_SEG_DEF))), OP09)
  130. GLOBAL_DEVICE_DEFAULT_OPTR := 9
  131. DEFINES += GLOBAL_DEVICE_DEFAULT_OPTR=$(GLOBAL_DEVICE_DEFAULT_OPTR)
  132. endif
  133. endif
  134. endif
  135. endif
  136. MTK_PARTITION_COMMON := yes
  137. ifeq ($(MTK_PARTITION_COMMON), yes)
  138. DEFINES += MTK_PARTITION_COMMON
  139. endif
  140. MTK_SSUSB := yes
  141. ifeq ($(MTK_SSUSB), yes)
  142. INCLUDES += -I$(LK_TOP_DIR)/platform/common/mt_ssusb
  143. OBJS += \
  144. $(LOCAL_DIR)/mt_ssusb/mt_ssusbphy.o
  145. MTK_SSUSBPHY_A60810 := yes
  146. DEFINES += USB3_PHY_SIFV1
  147. ifeq ($(MACH_TYPE), mt6755)
  148. DEFINES += SUPPORT_U3
  149. endif
  150. endif
  151. $(info libshowlogo new path ------- $(LOCAL_DIR)/../../lib/libshowlogo)
  152. INCLUDES += -I$(LOCAL_DIR)/include \
  153. -I$(LOCAL_DIR)/include/platform \
  154. -I$(LOCAL_DIR)/../../lib/libshowlogo \
  155. -I$(LK_TOP_DIR)/app/mt_boot/ \
  156. -Icustom/$(FULL_PROJECT)/lk/include/target \
  157. -Icustom/$(FULL_PROJECT)/lk/lcm/inc \
  158. -Icustom/$(FULL_PROJECT)/lk/inc \
  159. -Icustom/$(FULL_PROJECT)/common \
  160. -Icustom/$(FULL_PROJECT)/kernel/dct/ \
  161. -I$(BUILDDIR)/include/dfo \
  162. -I$(LOCAL_DIR)/../../dev/lcm/inc
  163. INCLUDES += -I$(DRVGEN_OUT)/inc
  164. OBJS += \
  165. $(LOCAL_DIR)/bitops.o \
  166. $(LOCAL_DIR)/mt_gpio.o \
  167. $(LOCAL_DIR)/mt_disp_drv.o \
  168. $(LOCAL_DIR)/mt_gpio_init.o \
  169. $(LOCAL_DIR)/mt_i2c.o \
  170. $(LOCAL_DIR)/platform.o \
  171. $(LOCAL_DIR)/uart.o \
  172. $(LOCAL_DIR)/interrupts.o \
  173. $(LOCAL_DIR)/timer.o \
  174. $(LOCAL_DIR)/debug.o \
  175. $(LOCAL_DIR)/boot_mode.o \
  176. $(LOCAL_DIR)/load_image.o \
  177. $(LOCAL_DIR)/atags.o \
  178. $(LOCAL_DIR)/partition_setting.o \
  179. $(LOCAL_DIR)/mt_get_dl_info.o \
  180. $(LOCAL_DIR)/addr_trans.o \
  181. $(LOCAL_DIR)/factory.o \
  182. $(LOCAL_DIR)/mtk_key.o \
  183. $(LOCAL_DIR)/mt_logo.o\
  184. $(LOCAL_DIR)/boot_mode_menu.o\
  185. $(LOCAL_DIR)/mmc_common_inter.o \
  186. $(LOCAL_DIR)/mmc_core.o\
  187. $(LOCAL_DIR)/mmc_test.o\
  188. $(LOCAL_DIR)/msdc_io.o\
  189. $(LOCAL_DIR)/msdc.o\
  190. $(LOCAL_DIR)/msdc_dma.o\
  191. $(LOCAL_DIR)/msdc_utils.o\
  192. $(LOCAL_DIR)/msdc_irq.o\
  193. $(LOCAL_DIR)/mmc_rpmb.o\
  194. $(LOCAL_DIR)/mtk_wdt.o\
  195. $(LOCAL_DIR)/mt_rtc.o\
  196. $(LOCAL_DIR)/ddp_manager.o\
  197. $(LOCAL_DIR)/ddp_path.o\
  198. $(LOCAL_DIR)/ddp_ovl.o\
  199. $(LOCAL_DIR)/ddp_rdma.o\
  200. $(LOCAL_DIR)/ddp_misc.o\
  201. $(LOCAL_DIR)/ddp_info.o\
  202. $(LOCAL_DIR)/ddp_dither.o\
  203. $(LOCAL_DIR)/ddp_dump.o\
  204. $(LOCAL_DIR)/ddp_dsi.o\
  205. $(LOCAL_DIR)/primary_display.o\
  206. $(LOCAL_DIR)/disp_lcm.o\
  207. $(LOCAL_DIR)/ddp_pwm.o\
  208. $(LOCAL_DIR)/pwm.o \
  209. $(LOCAL_DIR)/fpc_sw_repair2sw.o\
  210. $(LOCAL_DIR)/mtk_auxadc.o\
  211. $(LOCAL_DIR)/mt_efuse.o \
  212. $(LOCAL_DIR)/emi_mpu.o\
  213. $(LOCAL_DIR)/sec_policy.o\
  214. $(LOCAL_DIR)/sec_root.o\
  215. $(LOCAL_DIR)/sec_efuse.o\
  216. $(LOCAL_DIR)/mt_dummy_read.o\
  217. $(LOCAL_DIR)/pll.o \
  218. $(LOCAL_DIR)/sec_otp.o
  219. ifeq ($(MTK_AB_OTA_UPDATER),yes)
  220. OBJS += $(LOCAL_DIR)/write_protect_ab.o
  221. else
  222. OBJS += $(LOCAL_DIR)/write_protect.o
  223. endif
  224. ifeq ("$(PMIC_CHIP)","mt6353")
  225. OBJS += $(LOCAL_DIR)/pmic_wrap_init_v1.o
  226. OBJS += $(LOCAL_DIR)/upmu_common_6353.o
  227. OBJS += $(LOCAL_DIR)/mt_pmic_6353.o
  228. OBJS += $(LOCAL_DIR)/mt_battery_6353.o
  229. else
  230. OBJS += $(LOCAL_DIR)/pmic_wrap_init.o
  231. OBJS += $(LOCAL_DIR)/upmu_common.o
  232. OBJS += $(LOCAL_DIR)/mt_pmic.o
  233. OBJS += $(LOCAL_DIR)/mt6311.o
  234. OBJS += $(LOCAL_DIR)/mt_battery.o
  235. endif
  236. ifeq ($(MTK_SECURITY_SW_SUPPORT), yes)
  237. OBJS += $(LOCAL_DIR)/img_auth_stor.o
  238. endif
  239. ifneq ($(MACH_FPGA_LED_SUPPORT), yes)
  240. OBJS += $(LOCAL_DIR)/mt_leds.o
  241. endif
  242. ifneq ($(MTK_EMMC_SUPPORT),yes)
  243. # OBJS +=$(LOCAL_DIR)/mtk_nand.o
  244. # OBJS +=$(LOCAL_DIR)/bmt.o
  245. endif
  246. ifeq ($(MTK_USB2JTAG_SUPPORT),yes)
  247. OBJS += $(LOCAL_DIR)/mt_usb2jtag.o
  248. DEFINES += MTK_USB2JTAG_SUPPORT
  249. endif
  250. ifeq ($(MTK_MT8193_SUPPORT),yes)
  251. OBJS +=$(LOCAL_DIR)/mt8193_init.o
  252. OBJS +=$(LOCAL_DIR)/mt8193_ckgen.o
  253. OBJS +=$(LOCAL_DIR)/mt8193_i2c.o
  254. endif
  255. ifeq ($(MTK_KERNEL_POWER_OFF_CHARGING),yes)
  256. OBJS +=$(LOCAL_DIR)/mt_kernel_power_off_charging.o
  257. DEFINES += MTK_KERNEL_POWER_OFF_CHARGING
  258. endif
  259. ifeq ($(MTK_PUMP_EXPRESS_PLUS_SUPPORT),yes)
  260. DEFINES += MTK_PUMP_EXPRESS_PLUS_SUPPORT
  261. endif
  262. ifeq ($(MTK_BQ24261_SUPPORT),yes)
  263. OBJS +=$(LOCAL_DIR)/bq24261.o
  264. else
  265. ifeq ($(MTK_BQ24296_SUPPORT),yes)
  266. OBJS +=$(LOCAL_DIR)/bq24296.o
  267. else
  268. ifeq ($(MTK_NCP1854_SUPPORT),yes)
  269. OBJS +=$(LOCAL_DIR)/ncp1854.o
  270. else
  271. ifeq ($(MTK_BQ25896_SUPPORT),yes)
  272. OBJS +=$(LOCAL_DIR)/bq25890.o
  273. DEFINES += MTK_BQ25896_SUPPORT
  274. DEFINES += SWCHR_POWER_PATH
  275. endif
  276. endif
  277. endif
  278. endif
  279. ifeq ($(DUMMY_AP),yes)
  280. OBJS +=$(LOCAL_DIR)/dummy_ap.o
  281. OBJS +=$(LOCAL_DIR)/spm_md_mtcmos.o
  282. endif
  283. LK_LD_MD_SUPPORT := yes
  284. ifeq ($(LK_LD_MD_SUPPORT), yes)
  285. INCLUDES += -I$(LOCAL_DIR)/../common/md
  286. OBJS +=$(LOCAL_DIR)/ccci_lk_load_img_plat.o
  287. #DEFINES += LK_OPT_TO_KERNEL_CCCI
  288. DEFINES += LK_LD_MD_SUPPORT
  289. DEFINES += ENABLE_PARSING_LK_ENV
  290. ifneq (,$(strip $(MTK_PROTOCOL1_RAT_CONFIG)))
  291. DEFINES += MTK_PROTOCOL1_RAT_CONFIG="\"$(strip $(MTK_PROTOCOL1_RAT_CONFIG))\""
  292. endif
  293. endif
  294. ifeq ($(MTK_EFUSE_WRITER_SUPPORT), yes)
  295. DEFINES += MTK_EFUSE_WRITER_SUPPORT
  296. endif
  297. ifeq ($(TRUSTONIC_TEE_SUPPORT),yes)
  298. DEFINES += TRUSTONIC_TEE_SUPPORT
  299. endif
  300. ifeq ($(RDA_STATUS_SUPPORT),yes)
  301. DEFINES += RDA_STATUS_SUPPORT
  302. endif
  303. ifeq ($(MTK_GOOGLE_TRUSTY_SUPPORT),yes)
  304. DEFINES += MTK_GOOGLE_TRUSTY_SUPPORT
  305. endif
  306. ifeq ($(MTK_SECURITY_SW_SUPPORT), yes)
  307. ifeq ($(CUSTOM_SEC_AUTH_SUPPORT), yes)
  308. LIBSEC := -L$(LOCAL_DIR)/lib --start-group -lsec
  309. else
  310. LIBSEC := -L$(LOCAL_DIR)/lib --start-group -lsec -lcrypto
  311. endif
  312. LIBSEC_PLAT := -lsecplat -ldevinfo --end-group
  313. else
  314. LIBSEC := -L$(LOCAL_DIR)/lib
  315. LIBSEC_PLAT := -lsecplat -ldevinfo
  316. endif
  317. LINKER_SCRIPT += $(BUILDDIR)/system-onesegment.ld
  318. MTK_AEE_PLATFORM_DEBUG_SUPPORT := yes
  319. DEFINES += MTK_AEE_PLATFORM_DEBUG_SUPPORT
  320. ifeq ($(MTK_AEE_PLATFORM_DEBUG_SUPPORT),yes)
  321. OBJS += \
  322. $(LOCAL_DIR)/aee_platform_debug.o\
  323. $(LOCAL_DIR)/mt_latch.o
  324. endif
  325. ifeq ($(MTK_USERIMAGES_USE_F2FS), yes)
  326. DEFINES += MTK_USERIMAGES_USE_F2FS
  327. endif
  328. ifeq ($(MTK_DM_VERITY_OFF),yes)
  329. DEFINES += MTK_DM_VERITY_OFF
  330. endif
  331. OBJS += $(LOCAL_DIR)/dm_verity_status.o
  332. MTK_RC_TO_VENDOR ?= yes
  333. CFG_LOG_STORE_SUPPORT := yes