blob: eab4f8578852f47f7c1dec13c925104352a4cf73 [file] [log] [blame]
Chandan Uddarajua9b07bb2009-11-21 12:22:02 -08001#Android makefile to build lk bootloader as a part of Android Build
2
Mayank Grover50517942017-07-31 13:27:30 +05303ifeq ($(PRODUCT_IOT),true)
4 LK_PATH := hardware/bsp/bootloader/qcom/lk
5 CROOT_DIR := ../../../../..
6else
7 LK_PATH := bootable/bootloader/lk/
8 CROOT_DIR := ../../..
9endif
10
Ajay Dudani02695602015-04-12 08:29:41 -070011ifeq ($(BOOTLOADER_GCC_VERSION),)
12ifndef $(2ND_TARGET_GCC_VERSION)
Mayank Grover50517942017-07-31 13:27:30 +053013CROSS_COMPILE := $(CROOT_DIR)/prebuilts/gcc/linux-x86/arm/arm-eabi-$(TARGET_GCC_VERSION)/bin/arm-eabi-
Shruthi Krishnac91e1b82014-06-11 14:53:25 -070014else
Mayank Grover50517942017-07-31 13:27:30 +053015CROSS_COMPILE := $(CROOT_DIR)/prebuilts/gcc/linux-x86/arm/arm-eabi-$(2ND_TARGET_GCC_VERSION)/bin/arm-eabi-
Shruthi Krishnac91e1b82014-06-11 14:53:25 -070016endif
Ajay Dudani02695602015-04-12 08:29:41 -070017else # BOOTLOADER_GCC_VERSION defined
Swetha Vuchab2428212017-05-12 16:38:27 +053018ifeq ($(BOOTLOADER_GCC_VERSION),arm-linux-androideabi-4.9)
Mayank Grover50517942017-07-31 13:27:30 +053019CROSS_COMPILE := $(CROOT_DIR)/prebuilts/gcc/linux-x86/arm/$(BOOTLOADER_GCC_VERSION)/bin/arm-linux-androideabi-
Swetha Vuchab2428212017-05-12 16:38:27 +053020else
Mayank Grover50517942017-07-31 13:27:30 +053021CROSS_COMPILE := $(CROOT_DIR)/prebuilts/gcc/linux-x86/arm/$(BOOTLOADER_GCC_VERSION)/bin/arm-eabi-
Ajay Dudani02695602015-04-12 08:29:41 -070022endif
Swetha Vuchab2428212017-05-12 16:38:27 +053023endif
Channagoud Kadabi8dc5c3b2014-05-27 14:39:04 -070024
Ajay Dudani7e5a6302011-11-24 12:23:49 -080025# Set flags if we need to include security libs
Shashank Mittalcd98d472011-08-02 14:29:24 -070026ifeq ($(TARGET_BOOTIMG_SIGNED),true)
27 SIGNED_KERNEL := SIGNED_KERNEL=1
28else
29 SIGNED_KERNEL := SIGNED_KERNEL=0
30endif
David Ng90556062010-12-20 18:36:33 -080031
Sridhar Parasuram5b0a0242014-11-12 20:56:05 -080032ifeq ($(BOOTLOADER_PLATFORM),)
33 BOOTLOADER_PLATFORM := $(TARGET_BOARD_PLATFORM)
34endif
35
Shashank Mittale99a8d32014-09-11 19:51:06 -070036ifeq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),true)
37 VERIFIED_BOOT := VERIFIED_BOOT=1
38else
Unnati Gandhi87ce9992015-03-30 16:34:48 +053039 VERIFIED_BOOT := VERIFIED_BOOT=0
Shashank Mittale99a8d32014-09-11 19:51:06 -070040endif
41
Jiten Pateldd9aaa02018-03-12 19:49:15 +053042ifeq ($(TARGET_WEAR_SUPPORT_KM3),true)
43 QSEECOM_SECAPP_REGION_2MB := QSEECOM_SECAPP_REGION_2MB=1
44else
45 QSEECOM_SECAPP_REGION_2MB := QSEECOM_SECAPP_REGION_2MB=0
46endif
47
Monika Singhae7e9642018-03-08 17:44:30 +053048ifeq ($(BOARD_AVB_ENABLE),true)
49 VERIFIED_BOOT_2 := VERIFIED_BOOT_2=1
50else
51 VERIFIED_BOOT_2 := VERIFIED_BOOT_2=0
52endif
53
Mayank Grover44180df2018-05-09 12:13:12 +053054ifeq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true)
55 TARGET_USE_SYSTEM_AS_ROOT_IMAGE := TARGET_USE_SYSTEM_AS_ROOT_IMAGE=1
56else
57 TARGET_USE_SYSTEM_AS_ROOT_IMAGE := TARGET_USE_SYSTEM_AS_ROOT_IMAGE=0
58endif
59
Kishor PK536904a2017-07-13 17:18:59 +053060ifeq ($(EARLY_MOUNT_SUPPORT),true)
61 ENABLE_BOOTDEVICE_MOUNT := ENABLE_BOOTDEVICE_MOUNT=1
62else
Mayank Grover50517942017-07-31 13:27:30 +053063 ENABLE_BOOTDEVICE_MOUNT := ENABLE_BOOTDEVICE_MOUNT=0
Kishor PK536904a2017-07-13 17:18:59 +053064endif
65
Mayank Grover5fba4962017-08-29 16:13:25 +053066ifeq ($(BOARD_HAVE_PM660),true)
Mayank Grover11cdd4b2017-07-20 12:11:18 +053067 ENABLE_BG_SUPPORT := ENABLE_BG_SUPPORT=1
68endif
69
Vladislav Levenetz14528442017-03-16 16:40:42 +020070ifeq ($(BOOTLOADER_DISABLE_DISPLAY),true)
71 ENABLE_DISPLAY := ENABLE_DISPLAY=0
72else
73 ENABLE_DISPLAY := ENABLE_DISPLAY=1
74endif
75
lijuangc43b2cb2017-12-07 14:45:23 +080076ifeq ($(KASLRSEED_SUPPORT),true)
77 ENABLE_KASLRSEED := ENABLE_KASLRSEED=1
78else
79 ENABLE_KASLRSEED := ENABLE_KASLRSEED=0
80endif
81
Vijay Kumar Pendoti2f869052016-07-15 12:04:19 +053082ifeq (1,$(filter 1,$(shell echo "$$(( $(PLATFORM_SDK_VERSION) >= 24 ))" )))
83 OSVERSION_IN_BOOTIMAGE := OSVERSION_IN_BOOTIMAGE=1
84 ENABLE_VB_ATTEST := ENABLE_VB_ATTEST=1
85else
86 OSVERSION_IN_BOOTIMAGE := OSVERSION_IN_BOOTIMAGE=0
87 ENABLE_VB_ATTEST := ENABLE_VB_ATTEST=0
88endif
89
Shashank Mittale99a8d32014-09-11 19:51:06 -070090ifneq ($(TARGET_BUILD_VARIANT),user)
91 DEVICE_STATUS := DEFAULT_UNLOCK=true
Channagoud Kadabi9071af32015-03-12 12:39:56 -070092endif
93
94ifeq ($(TARGET_BUILD_VARIANT),user)
95 BUILD_VARIANT := USER_BUILD_VARIANT=true
Shashank Mittale99a8d32014-09-11 19:51:06 -070096endif
97
Mayank Grover50517942017-07-31 13:27:30 +053098ifeq ($(TARGET_BOARD_PLATFORM),msm8x09)
99 BOOTLOADER_PLATFORM := msm8909
100endif
101
AUDITYA BHATTARAM68c18eb2013-11-26 02:19:21 +0530102ifeq ($(TARGET_BOARD_PLATFORM),msm8660)
Channagoud Kadabi49c66962013-01-28 13:39:27 -0800103 BOOTLOADER_PLATFORM := msm8660_surf
David Ng7fbe5c32012-07-18 12:07:02 -0700104endif
Channagoud Kadabi49c66962013-01-28 13:39:27 -0800105
lijuang42d0ec42015-12-04 17:36:51 +0800106ifeq ($(TARGET_BOOTLOADER_BOARD_NAME),)
107 BOARD_NAME := BOARD_NAME=$(PRODUCT_NAME)
108else
109 BOARD_NAME := BOARD_NAME=$(TARGET_BOOTLOADER_BOARD_NAME)
110endif
111
Channagoud Kadabiaeabd162014-02-28 19:13:14 -0800112ABOOT_OUT := $(TARGET_OUT_INTERMEDIATES)/ABOOT_OBJ
113$(ABOOT_OUT):
114 $(hide) mkdir -p $(ABOOT_OUT)
115
116ABOOT_CLEAN:
117 $(hide) rm -f $(TARGET_ABOOT_ELF)
118
119# ELF binary for ABOOT
120TARGET_ABOOT_ELF := $(PRODUCT_OUT)/aboot.elf
121$(TARGET_ABOOT_ELF): ABOOT_CLEAN | $(ABOOT_OUT)
Mayank Grover44180df2018-05-09 12:13:12 +0530122 $(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) $(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)
Channagoud Kadabiaeabd162014-02-28 19:13:14 -0800123
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800124# NAND variant output
125TARGET_NAND_BOOTLOADER := $(PRODUCT_OUT)/appsboot.mbn
126NAND_BOOTLOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/NAND_BOOTLOADER_OBJ
David Ng025c1d92009-12-09 23:46:00 -0800127
Channagoud Kadabic52dc182011-12-14 00:08:48 +0530128# Remove bootloader binary to trigger recompile when source changes
129appsbootldr_clean:
130 $(hide) rm -f $(TARGET_NAND_BOOTLOADER)
131
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800132$(NAND_BOOTLOADER_OUT):
133 mkdir -p $(NAND_BOOTLOADER_OUT)
David Ng025c1d92009-12-09 23:46:00 -0800134
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800135# eMMC variant output
136TARGET_EMMC_BOOTLOADER := $(PRODUCT_OUT)/emmc_appsboot.mbn
137EMMC_BOOTLOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/EMMC_BOOTLOADER_OBJ
David Ng025c1d92009-12-09 23:46:00 -0800138
Channagoud Kadabic52dc182011-12-14 00:08:48 +0530139emmc_appsbootldr_clean:
140 $(hide) rm -f $(TARGET_EMMC_BOOTLOADER)
141
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800142$(EMMC_BOOTLOADER_OUT):
143 mkdir -p $(EMMC_BOOTLOADER_OUT)
David Ng025c1d92009-12-09 23:46:00 -0800144
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800145# Top level for NAND variant targets
Channagoud Kadabic52dc182011-12-14 00:08:48 +0530146$(TARGET_NAND_BOOTLOADER): appsbootldr_clean | $(NAND_BOOTLOADER_OUT)
Mayank Grover50517942017-07-31 13:27:30 +0530147 $(MAKE) -C $(LK_PATH) TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=$(CROOT_DIR)/$(NAND_BOOTLOADER_OUT) $(BOOTLOADER_PLATFORM) $(SIGNED_KERNEL) $(BOARD_NAME)
David Ng025c1d92009-12-09 23:46:00 -0800148
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800149# Top level for eMMC variant targets
Shashank Mittale99a8d32014-09-11 19:51:06 -0700150$(TARGET_EMMC_BOOTLOADER): emmc_appsbootldr_clean | $(EMMC_BOOTLOADER_OUT) $(INSTALLED_KEYSTOREIMAGE_TARGET)
Mayank Grover44180df2018-05-09 12:13:12 +0530151 $(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) $(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)
Chandan Uddarajua9b07bb2009-11-21 12:22:02 -0800152
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800153# Keep build NAND & eMMC as default for targets still using TARGET_BOOTLOADER
154TARGET_BOOTLOADER := $(PRODUCT_OUT)/EMMCBOOT.MBN
155$(TARGET_BOOTLOADER): $(NAND_BOOTLOADER_OUT) $(EMMC_BOOTLOADER_OUT) | $(TARGET_NAND_BOOTLOADER) $(TARGET_EMMC_BOOTLOADER)
Ajay Dudani168f6cb2009-12-07 19:04:02 -0800156
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800157#
158# Build nandwrite as a part of Android Build for NAND configurations
159#
David Ng7fbe5c32012-07-18 12:07:02 -0700160TARGET_NANDWRITE := $(PRODUCT_OUT)/obj/nandwrite/build-$(BOOTLOADER_PLATFORM)_nandwrite/lk
Ajay Dudani7e5a6302011-11-24 12:23:49 -0800161NANDWRITE_OUT := $(TARGET_OUT_INTERMEDIATES)/nandwrite
Ajay Dudani168f6cb2009-12-07 19:04:02 -0800162
David Ng17fdc972009-12-10 11:01:43 -0800163nandwrite_clean:
164 $(hide) rm -f $(TARGET_NANDWRITE)
165 $(hide) rm -rf $(NANDWRITE_OUT)
Ajay Dudani168f6cb2009-12-07 19:04:02 -0800166
David Ng17fdc972009-12-10 11:01:43 -0800167$(NANDWRITE_OUT):
168 mkdir -p $(NANDWRITE_OUT)
169
Anshul Gupta0fd98fd2011-10-20 20:48:55 +0530170$(TARGET_NANDWRITE): nandwrite_clean | $(NANDWRITE_OUT)
David Ng7fbe5c32012-07-18 12:07:02 -0700171 @echo $(BOOTLOADER_PLATFORM)_nandwrite
Mayank Grover50517942017-07-31 13:27:30 +0530172 $(MAKE) -C $(LK_PATH) TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=$(CROOT_DIR)/$(NANDWRITE_OUT) $(BOOTLOADER_PLATFORM)_nandwrite BUILD_NANDWRITE=1