blob: 9765ebed42a2b764e92824695a09d31a0d1d8be9 [file] [log] [blame]
Chandan Uddarajua9b07bb2009-11-21 12:22:02 -08001#Android makefile to build lk bootloader as a part of Android Build
2
Bharat Pawardadbfa72015-07-17 17:04:21 +05303ifndef 2ND_TARGET_GCC_VERSION
4CROSS_COMPILE := ../../../prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-$(TARGET_GCC_VERSION)/bin/arm-linux-androideabi-
Ajay Dudanif400e5d2015-04-12 08:29:41 -07005else
Bharat Pawardadbfa72015-07-17 17:04:21 +05306CROSS_COMPILE := ../../../prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-$(2ND_TARGET_GCC_VERSION)/bin/arm-linux-androideabi-
Ajay Dudanif400e5d2015-04-12 08:29:41 -07007endif
Channagoud Kadabi34fe5502014-05-27 14:39:04 -07008
Ajay Dudani7e5a6302011-11-24 12:23:49 -08009# Set flags if we need to include security libs
Shashank Mittalcd98d472011-08-02 14:29:24 -070010ifeq ($(TARGET_BOOTIMG_SIGNED),true)
11 SIGNED_KERNEL := SIGNED_KERNEL=1
12else
13 SIGNED_KERNEL := SIGNED_KERNEL=0
14endif
David Ng90556062010-12-20 18:36:33 -080015
Sridhar Parasuram1049ab22015-08-29 11:12:37 -070016ifeq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),true)
17 VERIFIED_BOOT := VERIFIED_BOOT=1
18else
19 VERIFIED_BOOT := VERIFIED_BOOT=0
20endif
21
22ifeq ($(TARGET_BUILD_VARIANT),user)
23 BUILD_VARIANT := USER_BUILD_VARIANT=true
24endif
25
26ifneq ($(TARGET_BUILD_VARIANT),user)
27 DEVICE_STATUS := DEFAULT_UNLOCK=true
28endif
29
Urpo Pietikainen83d5c732017-01-11 16:11:17 +020030ifneq ($(strip $(TARGET_BOOTLOADER_PLATFORM_OVERRIDE)),)
31 BOOTLOADER_PLATFORM := $(TARGET_BOOTLOADER_PLATFORM_OVERRIDE)
32else
AUDITYA BHATTARAM21f374e2013-11-26 02:19:21 +053033ifeq ($(TARGET_BOARD_PLATFORM),msm8660)
Pekka Pesuaa809c62016-11-08 17:34:28 +020034 BOOTLOADER_PLATFORM := msm8660_surf
David Ng7fbe5c32012-07-18 12:07:02 -070035else
Pekka Pesuaa809c62016-11-08 17:34:28 +020036 BOOTLOADER_PLATFORM := $(TARGET_BOARD_PLATFORM)
David Ng7fbe5c32012-07-18 12:07:02 -070037endif
Urpo Pietikainen83d5c732017-01-11 16:11:17 +020038endif
Channagoud Kadabi49c66962013-01-28 13:39:27 -080039
Channagoud Kadabi6c085212014-02-28 19:13:14 -080040ABOOT_OUT := $(TARGET_OUT_INTERMEDIATES)/ABOOT_OBJ
41$(ABOOT_OUT):
42 $(hide) mkdir -p $(ABOOT_OUT)
43
Luca Weissb5f1a3d2021-04-20 14:30:47 +020044ABOOT_CLEAN := $(ABOOT_OUT)/aboot_clean.timestamp
45$(ABOOT_CLEAN):
Channagoud Kadabi6c085212014-02-28 19:13:14 -080046 $(hide) rm -f $(TARGET_ABOOT_ELF)
Luca Weissb5f1a3d2021-04-20 14:30:47 +020047 @touch $(ABOOT_CLEAN)
Channagoud Kadabi6c085212014-02-28 19:13:14 -080048
49# ELF binary for ABOOT
50TARGET_ABOOT_ELF := $(PRODUCT_OUT)/aboot.elf
Luca Weissb5f1a3d2021-04-20 14:30:47 +020051$(TARGET_ABOOT_ELF): $(ABOOT_CLEAN) | $(ABOOT_OUT)
Maarten Derks57da5172020-02-11 15:21:34 +010052 $(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=../../../$(ABOOT_OUT) $(BOOTLOADER_PLATFORM) $(EMMC_BOOT) $(SIGNED_KERNEL) $(VERIFIED_BOOT) $(DEVICE_STATUS)
Channagoud Kadabi6c085212014-02-28 19:13:14 -080053
Ajay Dudani7e5a6302011-11-24 12:23:49 -080054# NAND variant output
55TARGET_NAND_BOOTLOADER := $(PRODUCT_OUT)/appsboot.mbn
56NAND_BOOTLOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/NAND_BOOTLOADER_OBJ
David Ng025c1d92009-12-09 23:46:00 -080057
Channagoud Kadabic52dc182011-12-14 00:08:48 +053058# Remove bootloader binary to trigger recompile when source changes
Luca Weissb5f1a3d2021-04-20 14:30:47 +020059appsbootldr_clean := $(ABOOT_OUT)/appsbootldr_clean.timestamp
60$(appsbootldr_clean) :
Channagoud Kadabic52dc182011-12-14 00:08:48 +053061 $(hide) rm -f $(TARGET_NAND_BOOTLOADER)
Luca Weissb5f1a3d2021-04-20 14:30:47 +020062 @touch $(appsbootldr_clean)
Channagoud Kadabic52dc182011-12-14 00:08:48 +053063
Ajay Dudani7e5a6302011-11-24 12:23:49 -080064$(NAND_BOOTLOADER_OUT):
65 mkdir -p $(NAND_BOOTLOADER_OUT)
David Ng025c1d92009-12-09 23:46:00 -080066
Ajay Dudani7e5a6302011-11-24 12:23:49 -080067# eMMC variant output
68TARGET_EMMC_BOOTLOADER := $(PRODUCT_OUT)/emmc_appsboot.mbn
69EMMC_BOOTLOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/EMMC_BOOTLOADER_OBJ
David Ng025c1d92009-12-09 23:46:00 -080070
Luca Weissb5f1a3d2021-04-20 14:30:47 +020071emmc_appsbootldr_clean := $(ABOOT_OUT)/emmc_appsbootldr_clean.timestamp
72$(emmc_appsbootldr_clean):
Channagoud Kadabic52dc182011-12-14 00:08:48 +053073 $(hide) rm -f $(TARGET_EMMC_BOOTLOADER)
Luca Weissb5f1a3d2021-04-20 14:30:47 +020074 @touch $(emmc_appsbootldr_clean)
Channagoud Kadabic52dc182011-12-14 00:08:48 +053075
Ajay Dudani7e5a6302011-11-24 12:23:49 -080076$(EMMC_BOOTLOADER_OUT):
77 mkdir -p $(EMMC_BOOTLOADER_OUT)
David Ng025c1d92009-12-09 23:46:00 -080078
Ajay Dudani7e5a6302011-11-24 12:23:49 -080079# Top level for NAND variant targets
Luca Weissb5f1a3d2021-04-20 14:30:47 +020080$(TARGET_NAND_BOOTLOADER): $(appsbootldr_clean) | $(NAND_BOOTLOADER_OUT)
Maarten Derks57da5172020-02-11 15:21:34 +010081 $(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=../../../$(NAND_BOOTLOADER_OUT) $(BOOTLOADER_PLATFORM) $(SIGNED_KERNEL)
David Ng025c1d92009-12-09 23:46:00 -080082
Ajay Dudani7e5a6302011-11-24 12:23:49 -080083# Top level for eMMC variant targets
Luca Weissb5f1a3d2021-04-20 14:30:47 +020084$(TARGET_EMMC_BOOTLOADER): $(emmc_appsbootldr_clean) | $(EMMC_BOOTLOADER_OUT) $(INSTALLED_KEYSTOREIMAGE_TARGET)
Luca Weissddab6862021-04-20 14:54:18 +020085 $(KERNEL_MAKE_CMD) -C bootable/bootloader/lk COMPILER=$(KERNEL_HOST_TOOLCHAIN_ROOT)gcc TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=../../../$(EMMC_BOOTLOADER_OUT) $(BOOTLOADER_PLATFORM) EMMC_BOOT=1 $(SIGNED_KERNEL) $(VERIFIED_BOOT) $(DEVICE_STATUS)
Chandan Uddarajua9b07bb2009-11-21 12:22:02 -080086
Ajay Dudani7e5a6302011-11-24 12:23:49 -080087# Keep build NAND & eMMC as default for targets still using TARGET_BOOTLOADER
88TARGET_BOOTLOADER := $(PRODUCT_OUT)/EMMCBOOT.MBN
89$(TARGET_BOOTLOADER): $(NAND_BOOTLOADER_OUT) $(EMMC_BOOTLOADER_OUT) | $(TARGET_NAND_BOOTLOADER) $(TARGET_EMMC_BOOTLOADER)
Ajay Dudani168f6cb2009-12-07 19:04:02 -080090
Ajay Dudani7e5a6302011-11-24 12:23:49 -080091#
92# Build nandwrite as a part of Android Build for NAND configurations
93#
David Ng7fbe5c32012-07-18 12:07:02 -070094TARGET_NANDWRITE := $(PRODUCT_OUT)/obj/nandwrite/build-$(BOOTLOADER_PLATFORM)_nandwrite/lk
Ajay Dudani7e5a6302011-11-24 12:23:49 -080095NANDWRITE_OUT := $(TARGET_OUT_INTERMEDIATES)/nandwrite
Ajay Dudani168f6cb2009-12-07 19:04:02 -080096
Luca Weissb5f1a3d2021-04-20 14:30:47 +020097nandwrite_clean := $(ABOOT_OUT)/nandwrite_clean.timestamp
98$(nandwrite_clean):
David Ng17fdc972009-12-10 11:01:43 -080099 $(hide) rm -f $(TARGET_NANDWRITE)
100 $(hide) rm -rf $(NANDWRITE_OUT)
Luca Weissb5f1a3d2021-04-20 14:30:47 +0200101 @touch $(nandwrite_clean)
Ajay Dudani168f6cb2009-12-07 19:04:02 -0800102
David Ng17fdc972009-12-10 11:01:43 -0800103$(NANDWRITE_OUT):
104 mkdir -p $(NANDWRITE_OUT)
105
Luca Weissb5f1a3d2021-04-20 14:30:47 +0200106$(TARGET_NANDWRITE): $(nandwrite_clean) | $(NANDWRITE_OUT)
David Ng7fbe5c32012-07-18 12:07:02 -0700107 @echo $(BOOTLOADER_PLATFORM)_nandwrite
Maarten Derks57da5172020-02-11 15:21:34 +0100108 $(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=../../../$(NANDWRITE_OUT) $(BOOTLOADER_PLATFORM)_nandwrite BUILD_NANDWRITE=1
Luca Weissb5f1a3d2021-04-20 14:30:47 +0200109 $(hide) rm -f $(nandwrite_clean)