rules.mk 10 KB

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