blob: 464451462d19cc7101add5139d82705bc5ecf641 [file] [log] [blame]
Chandan Uddarajua9b07bb2009-11-21 12:22:02 -08001#Android makefile to build lk bootloader as a part of Android Build
2
lijuangfb622312020-06-04 16:19:39 +08003LK_PATH := bootable/bootloader/lk/
4CROOT_DIR := ../../..
5
6ifneq ($(filter P% p% Q% q%,$(TARGET_PLATFORM_VERSION)),)
Mayank Grover50517942017-07-31 13:27:30 +05307ifeq ($(PRODUCT_IOT),true)
8 LK_PATH := hardware/bsp/bootloader/qcom/lk
9 CROOT_DIR := ../../../../..
lijuangfb622312020-06-04 16:19:39 +080010endif
Mayank Grover50517942017-07-31 13:27:30 +053011endif
12
Ajay Dudani02695602015-04-12 08:29:41 -070013ifeq ($(BOOTLOADER_GCC_VERSION),)
14ifndef $(2ND_TARGET_GCC_VERSION)
Mayank Grover50517942017-07-31 13:27:30 +053015CROSS_COMPILE := $(CROOT_DIR)/prebuilts/gcc/linux-x86/arm/arm-eabi-$(TARGET_GCC_VERSION)/bin/arm-eabi-
Shruthi Krishnac91e1b82014-06-11 14:53:25 -070016else
Mayank Grover50517942017-07-31 13:27:30 +053017CROSS_COMPILE := $(CROOT_DIR)/prebuilts/gcc/linux-x86/arm/arm-eabi-$(2ND_TARGET_GCC_VERSION)/bin/arm-eabi-
Shruthi Krishnac91e1b82014-06-11 14:53:25 -070018endif
Ajay Dudani02695602015-04-12 08:29:41 -070019else # BOOTLOADER_GCC_VERSION defined
Swetha Vuchab2428212017-05-12 16:38:27 +053020ifeq ($(BOOTLOADER_GCC_VERSION),arm-linux-androideabi-4.9)
Mayank Grover50517942017-07-31 13:27:30 +053021CROSS_COMPILE := $(CROOT_DIR)/prebuilts/gcc/linux-x86/arm/$(BOOTLOADER_GCC_VERSION)/bin/arm-linux-androideabi-
Swetha Vuchab2428212017-05-12 16:38:27 +053022else
Mayank Grover50517942017-07-31 13:27:30 +053023CROSS_COMPILE := $(CROOT_DIR)/prebuilts/gcc/linux-x86/arm/$(BOOTLOADER_GCC_VERSION)/bin/arm-eabi-
Ajay Dudani02695602015-04-12 08:29:41 -070024endif
Swetha Vuchab2428212017-05-12 16:38:27 +053025endif
Channagoud Kadabi8dc5c3b2014-05-27 14:39:04 -070026
Ajay Dudani7e5a6302011-11-24 12:23:49 -080027# Set flags if we need to include security libs
Shashank Mittalcd98d472011-08-02 14:29:24 -070028ifeq ($(TARGET_BOOTIMG_SIGNED),true)
29 SIGNED_KERNEL := SIGNED_KERNEL=1
30else
31 SIGNED_KERNEL := SIGNED_KERNEL=0
32endif
David Ng90556062010-12-20 18:36:33 -080033
Sridhar Parasuram5b0a0242014-11-12 20:56:05 -080034ifeq ($(BOOTLOADER_PLATFORM),)
35 BOOTLOADER_PLATFORM := $(TARGET_BOARD_PLATFORM)
36endif
37
lijuangfb622312020-06-04 16:19:39 +080038ifeq ($(PRODUCT_SUPPORTS_VERITY),true)
Shashank Mittale99a8d32014-09-11 19:51:06 -070039 VERIFIED_BOOT := VERIFIED_BOOT=1
40else
Unnati Gandhi87ce9992015-03-30 16:34:48 +053041 VERIFIED_BOOT := VERIFIED_BOOT=0
Shashank Mittale99a8d32014-09-11 19:51:06 -070042endif
43
Jiten Pateldd9aaa02018-03-12 19:49:15 +053044ifeq ($(TARGET_WEAR_SUPPORT_KM3),true)
45 QSEECOM_SECAPP_REGION_2MB := QSEECOM_SECAPP_REGION_2MB=1
46else
47 QSEECOM_SECAPP_REGION_2MB := QSEECOM_SECAPP_REGION_2MB=0
48endif
49
Monika Singh4d659d22019-12-05 16:38:04 +053050ifeq ($(TARGET_USES_OTA_KEY_FOR_ROT),true)
51 VB1_KEY_USED := VB1_KEY_USED=1
52else
53 VB1_KEY_USED := VB1_KEY_USED=0
54endif
55
Monika Singhae7e9642018-03-08 17:44:30 +053056ifeq ($(BOARD_AVB_ENABLE),true)
57 VERIFIED_BOOT_2 := VERIFIED_BOOT_2=1
58else
59 VERIFIED_BOOT_2 := VERIFIED_BOOT_2=0
60endif
61
Mayank Groverc8a46c42019-04-25 11:46:00 +053062ifeq ($(PRODUCT_USE_DYNAMIC_PARTITIONS),true)
63 DYNAMIC_PARTITION_SUPPORT := DYNAMIC_PARTITION_SUPPORT=1
64else
65 DYNAMIC_PARTITION_SUPPORT := DYNAMIC_PARTITION_SUPPORT=0
66endif
67
Rahul Shaharee7baede2021-02-02 13:23:57 +053068ifeq ($(PRODUCT_VIRTUAL_AB_OTA),true)
69 VIRTUAL_AB_OTA := VIRTUAL_AB_OTA=1
70else
71 VIRTUAL_AB_OTA := VIRTUAL_AB_OTA=0
72endif
73
Jiten Patel3f6e7012018-08-22 12:46:20 +053074ifeq ($(BOARD_DTBO_NOT_SUPPORTED),true)
75 TARGET_DTBO_NOT_SUPPORTED := TARGET_DTBO_NOT_SUPPORTED=1
76else
77 TARGET_DTBO_NOT_SUPPORTED := TARGET_DTBO_NOT_SUPPORTED=0
78endif
79
Mayank Grover44180df2018-05-09 12:13:12 +053080ifeq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
81 TARGET_USE_SYSTEM_AS_ROOT_IMAGE := TARGET_USE_SYSTEM_AS_ROOT_IMAGE=1
82else
83 TARGET_USE_SYSTEM_AS_ROOT_IMAGE := TARGET_USE_SYSTEM_AS_ROOT_IMAGE=0
84endif
85
Kishor PK536904a2017-07-13 17:18:59 +053086ifeq ($(EARLY_MOUNT_SUPPORT),true)
87 ENABLE_BOOTDEVICE_MOUNT := ENABLE_BOOTDEVICE_MOUNT=1
88else
Mayank Grover50517942017-07-31 13:27:30 +053089 ENABLE_BOOTDEVICE_MOUNT := ENABLE_BOOTDEVICE_MOUNT=0
Kishor PK536904a2017-07-13 17:18:59 +053090endif
91
Mayank Grover5fba4962017-08-29 16:13:25 +053092ifeq ($(BOARD_HAVE_PM660),true)
Mayank Grover11cdd4b2017-07-20 12:11:18 +053093 ENABLE_BG_SUPPORT := ENABLE_BG_SUPPORT=1
94endif
95
Vladislav Levenetz14528442017-03-16 16:40:42 +020096ifeq ($(BOOTLOADER_DISABLE_DISPLAY),true)
97 ENABLE_DISPLAY := ENABLE_DISPLAY=0
98else
99 ENABLE_DISPLAY := ENABLE_DISPLAY=1
100endif
101
lijuangc43b2cb2017-12-07 14:45:23 +0800102ifeq ($(KASLRSEED_SUPPORT),true)
103 ENABLE_KASLRSEED := ENABLE_KASLRSEED=1
104else
105 ENABLE_KASLRSEED := ENABLE_KASLRSEED=0
106endif
107
Vijay Kumar Pendoti2f869052016-07-15 12:04:19 +0530108ifeq (1,$(filter 1,$(shell echo "$$(( $(PLATFORM_SDK_VERSION) >= 24 ))" )))
109 OSVERSION_IN_BOOTIMAGE := OSVERSION_IN_BOOTIMAGE=1
110 ENABLE_VB_ATTEST := ENABLE_VB_ATTEST=1
111else
112 OSVERSION_IN_BOOTIMAGE := OSVERSION_IN_BOOTIMAGE=0
113 ENABLE_VB_ATTEST := ENABLE_VB_ATTEST=0
114endif
115
Shashank Mittale99a8d32014-09-11 19:51:06 -0700116ifneq ($(TARGET_BUILD_VARIANT),user)
117 DEVICE_STATUS := DEFAULT_UNLOCK=true
Channagoud Kadabi9071af32015-03-12 12:39:56 -0700118endif
119
120ifeq ($(TARGET_BUILD_VARIANT),user)
121 BUILD_VARIANT := USER_BUILD_VARIANT=true
Shashank Mittale99a8d32014-09-11 19:51:06 -0700122endif
123
Mayank Grover50517942017-07-31 13:27:30 +0530124ifeq ($(TARGET_BOARD_PLATFORM),msm8x09)
125 BOOTLOADER_PLATFORM := msm8909
126endif
127
AUDITYA BHATTARAM68c18eb2013-11-26 02:19:21 +0530128ifeq ($(TARGET_BOARD_PLATFORM),msm8660)
Channagoud Kadabi49c66962013-01-28 13:39:27 -0800129 BOOTLOADER_PLATFORM := msm8660_surf
David Ng7fbe5c32012-07-18 12:07:02 -0700130endif
Channagoud Kadabi49c66962013-01-28 13:39:27 -0800131
lijuang42d0ec42015-12-04 17:36:51 +0800132ifeq ($(TARGET_BOOTLOADER_BOARD_NAME),)
133 BOARD_NAME := BOARD_NAME=$(PRODUCT_NAME)
134else
135 BOARD_NAME := BOARD_NAME=$(TARGET_BOOTLOADER_BOARD_NAME)
136endif
137
Channagoud Kadabiaeabd162014-02-28 19:13:14 -0800138ABOOT_OUT := $(TARGET_OUT_INTERMEDIATES)/ABOOT_OBJ
139$(ABOOT_OUT):
140 $(hide) mkdir -p $(ABOOT_OUT)
141
lijuangfb622312020-06-04 16:19:39 +0800142ABOOT_CLEAN := $(ABOOT_OUT)/aboot_clean.timestamp
143$(ABOOT_CLEAN):
Channagoud Kadabiaeabd162014-02-28 19:13:14 -0800144 $(hide) rm -f $(TARGET_ABOOT_ELF)
lijuangfb622312020-06-04 16:19:39 +0800145 @touch $(ABOOT_CLEAN)
Channagoud Kadabiaeabd162014-02-28 19:13:14 -0800146
147# ELF binary for ABOOT
148TARGET_ABOOT_ELF := $(PRODUCT_OUT)/aboot.elf
lijuangfb622312020-06-04 16:19:39 +0800149$(TARGET_ABOOT_ELF): $(ABOOT_CLEAN) | $(ABOOT_OUT)
Rahul Shaharee7baede2021-02-02 13:23:57 +0530150 $(MAKE) -C $(LK_PATH) TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=$(CROOT_DIR)/$(ABOOT_OUT) $(BOOTLOADER_PLATFORM) $(EMMC_BOOT) $(SIGNED_KERNEL) $(VERIFIED_BOOT) $(VERIFIED_BOOT_2) $(VB1_KEY_USED) $(TARGET_DTBO_NOT_SUPPORTED) $(ENABLE_DISPLAY) $(ENABLE_KASLRSEED) $(ENABLE_BOOTDEVICE_MOUNT) $(DEVICE_STATUS) $(BUILD_VARIANT) $(BOARD_NAME) $(ENABLE_VB_ATTEST) $(OSVERSION_IN_BOOTIMAGE) $(QSEECOM_SECAPP_REGION_2MB) $(TARGET_USE_SYSTEM_AS_ROOT_IMAGE) $(DYNAMIC_PARTITION_SUPPORT) $(VIRTUAL_AB_OTA)
Channagoud Kadabiaeabd162014-02-28 19:13:14 -0800151
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800152# NAND variant output
153TARGET_NAND_BOOTLOADER := $(PRODUCT_OUT)/appsboot.mbn
154NAND_BOOTLOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/NAND_BOOTLOADER_OBJ
David Ng025c1d92009-12-09 23:46:00 -0800155
Channagoud Kadabic52dc182011-12-14 00:08:48 +0530156# Remove bootloader binary to trigger recompile when source changes
lijuangfb622312020-06-04 16:19:39 +0800157appsbootldr_clean := $(ABOOT_OUT)/appsbootldr_clean.timestamp
158$(appsbootldr_clean) :
Channagoud Kadabic52dc182011-12-14 00:08:48 +0530159 $(hide) rm -f $(TARGET_NAND_BOOTLOADER)
lijuangfb622312020-06-04 16:19:39 +0800160 @touch $(appsbootldr_clean)
Channagoud Kadabic52dc182011-12-14 00:08:48 +0530161
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800162$(NAND_BOOTLOADER_OUT):
163 mkdir -p $(NAND_BOOTLOADER_OUT)
David Ng025c1d92009-12-09 23:46:00 -0800164
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800165# eMMC variant output
166TARGET_EMMC_BOOTLOADER := $(PRODUCT_OUT)/emmc_appsboot.mbn
167EMMC_BOOTLOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/EMMC_BOOTLOADER_OBJ
David Ng025c1d92009-12-09 23:46:00 -0800168
lijuangfb622312020-06-04 16:19:39 +0800169emmc_appsbootldr_clean := $(ABOOT_OUT)/emmc_appsbootldr_clean.timestamp
170$(emmc_appsbootldr_clean):
Channagoud Kadabic52dc182011-12-14 00:08:48 +0530171 $(hide) rm -f $(TARGET_EMMC_BOOTLOADER)
lijuangfb622312020-06-04 16:19:39 +0800172 @touch $(emmc_appsbootldr_clean)
Channagoud Kadabic52dc182011-12-14 00:08:48 +0530173
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800174$(EMMC_BOOTLOADER_OUT):
175 mkdir -p $(EMMC_BOOTLOADER_OUT)
David Ng025c1d92009-12-09 23:46:00 -0800176
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800177# Top level for NAND variant targets
lijuangfb622312020-06-04 16:19:39 +0800178$(TARGET_NAND_BOOTLOADER): $(appsbootldr_clean) | $(NAND_BOOTLOADER_OUT)
Mayank Grover50517942017-07-31 13:27:30 +0530179 $(MAKE) -C $(LK_PATH) TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=$(CROOT_DIR)/$(NAND_BOOTLOADER_OUT) $(BOOTLOADER_PLATFORM) $(SIGNED_KERNEL) $(BOARD_NAME)
lijuangfb622312020-06-04 16:19:39 +0800180 $(hide) rm -f $(appsbootldr_clean)
David Ng025c1d92009-12-09 23:46:00 -0800181
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800182# Top level for eMMC variant targets
lijuangfb622312020-06-04 16:19:39 +0800183$(TARGET_EMMC_BOOTLOADER): $(emmc_appsbootldr_clean) | $(EMMC_BOOTLOADER_OUT) $(INSTALLED_KEYSTOREIMAGE_TARGET)
Rahul Shaharee7baede2021-02-02 13:23:57 +0530184 $(MAKE) -C $(LK_PATH) TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=$(CROOT_DIR)/$(EMMC_BOOTLOADER_OUT) $(BOOTLOADER_PLATFORM) EMMC_BOOT=1 $(SIGNED_KERNEL) $(VERIFIED_BOOT) $(VERIFIED_BOOT_2) $(VB1_KEY_USED) $(TARGET_DTBO_NOT_SUPPORTED) $(ENABLE_DISPLAY) $(ENABLE_KASLRSEED) $(ENABLE_BOOTDEVICE_MOUNT) $(DEVICE_STATUS) $(BUILD_VARIANT) $(BOARD_NAME) $(ENABLE_VB_ATTEST) $(OSVERSION_IN_BOOTIMAGE) $(ENABLE_BG_SUPPORT) $(QSEECOM_SECAPP_REGION_2MB) $(TARGET_USE_SYSTEM_AS_ROOT_IMAGE) $(DYNAMIC_PARTITION_SUPPORT) $(VIRTUAL_AB_OTA)
lijuangfb622312020-06-04 16:19:39 +0800185 $(hide) rm -f $(emmc_appsbootldr_clean)
Chandan Uddarajua9b07bb2009-11-21 12:22:02 -0800186
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800187# Keep build NAND & eMMC as default for targets still using TARGET_BOOTLOADER
188TARGET_BOOTLOADER := $(PRODUCT_OUT)/EMMCBOOT.MBN
189$(TARGET_BOOTLOADER): $(NAND_BOOTLOADER_OUT) $(EMMC_BOOTLOADER_OUT) | $(TARGET_NAND_BOOTLOADER) $(TARGET_EMMC_BOOTLOADER)
Ajay Dudani168f6cb2009-12-07 19:04:02 -0800190
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800191#
192# Build nandwrite as a part of Android Build for NAND configurations
193#
lijuangfb622312020-06-04 16:19:39 +0800194TARGET_NANDWRITE := $(PRODUCT_OUT)/obj/nandwrite/build-$(strip $(BOOTLOADER_PLATFORM))_nandwrite/lk
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800195NANDWRITE_OUT := $(TARGET_OUT_INTERMEDIATES)/nandwrite
Ajay Dudani168f6cb2009-12-07 19:04:02 -0800196
lijuangfb622312020-06-04 16:19:39 +0800197nandwrite_clean := $(ABOOT_OUT)/nandwrite_clean.timestamp
198$(nandwrite_clean):
David Ng17fdc972009-12-10 11:01:43 -0800199 $(hide) rm -f $(TARGET_NANDWRITE)
200 $(hide) rm -rf $(NANDWRITE_OUT)
lijuangfb622312020-06-04 16:19:39 +0800201 @touch $(nandwrite_clean)
Ajay Dudani168f6cb2009-12-07 19:04:02 -0800202
David Ng17fdc972009-12-10 11:01:43 -0800203$(NANDWRITE_OUT):
204 mkdir -p $(NANDWRITE_OUT)
205
lijuangfb622312020-06-04 16:19:39 +0800206$(TARGET_NANDWRITE): $(nandwrite_clean) | $(NANDWRITE_OUT)
David Ng7fbe5c32012-07-18 12:07:02 -0700207 @echo $(BOOTLOADER_PLATFORM)_nandwrite
Mayank Grover50517942017-07-31 13:27:30 +0530208 $(MAKE) -C $(LK_PATH) TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=$(CROOT_DIR)/$(NANDWRITE_OUT) $(BOOTLOADER_PLATFORM)_nandwrite BUILD_NANDWRITE=1
lijuangfb622312020-06-04 16:19:39 +0800209 $(hide) rm -f $(nandwrite_clean)