Chandan Uddaraju | a9b07bb | 2009-11-21 12:22:02 -0800 | [diff] [blame] | 1 | #Android makefile to build lk bootloader as a part of Android Build |
| 2 | |
Bharat Pawar | dadbfa7 | 2015-07-17 17:04:21 +0530 | [diff] [blame] | 3 | ifndef 2ND_TARGET_GCC_VERSION |
| 4 | CROSS_COMPILE := ../../../prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-$(TARGET_GCC_VERSION)/bin/arm-linux-androideabi- |
Ajay Dudani | f400e5d | 2015-04-12 08:29:41 -0700 | [diff] [blame] | 5 | else |
Bharat Pawar | dadbfa7 | 2015-07-17 17:04:21 +0530 | [diff] [blame] | 6 | CROSS_COMPILE := ../../../prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-$(2ND_TARGET_GCC_VERSION)/bin/arm-linux-androideabi- |
Ajay Dudani | f400e5d | 2015-04-12 08:29:41 -0700 | [diff] [blame] | 7 | endif |
Channagoud Kadabi | 34fe550 | 2014-05-27 14:39:04 -0700 | [diff] [blame] | 8 | |
Ajay Dudani | 7e5a630 | 2011-11-24 12:23:49 -0800 | [diff] [blame] | 9 | # Set flags if we need to include security libs |
Shashank Mittal | cd98d47 | 2011-08-02 14:29:24 -0700 | [diff] [blame] | 10 | ifeq ($(TARGET_BOOTIMG_SIGNED),true) |
| 11 | SIGNED_KERNEL := SIGNED_KERNEL=1 |
| 12 | else |
| 13 | SIGNED_KERNEL := SIGNED_KERNEL=0 |
| 14 | endif |
David Ng | 9055606 | 2010-12-20 18:36:33 -0800 | [diff] [blame] | 15 | |
Sridhar Parasuram | 1049ab2 | 2015-08-29 11:12:37 -0700 | [diff] [blame] | 16 | ifeq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),true) |
| 17 | VERIFIED_BOOT := VERIFIED_BOOT=1 |
| 18 | else |
| 19 | VERIFIED_BOOT := VERIFIED_BOOT=0 |
| 20 | endif |
| 21 | |
| 22 | ifeq ($(TARGET_BUILD_VARIANT),user) |
| 23 | BUILD_VARIANT := USER_BUILD_VARIANT=true |
| 24 | endif |
| 25 | |
| 26 | ifneq ($(TARGET_BUILD_VARIANT),user) |
| 27 | DEVICE_STATUS := DEFAULT_UNLOCK=true |
| 28 | endif |
| 29 | |
Urpo Pietikainen | 83d5c73 | 2017-01-11 16:11:17 +0200 | [diff] [blame] | 30 | ifneq ($(strip $(TARGET_BOOTLOADER_PLATFORM_OVERRIDE)),) |
| 31 | BOOTLOADER_PLATFORM := $(TARGET_BOOTLOADER_PLATFORM_OVERRIDE) |
| 32 | else |
AUDITYA BHATTARAM | 21f374e | 2013-11-26 02:19:21 +0530 | [diff] [blame] | 33 | ifeq ($(TARGET_BOARD_PLATFORM),msm8660) |
Pekka Pesu | aa809c6 | 2016-11-08 17:34:28 +0200 | [diff] [blame] | 34 | BOOTLOADER_PLATFORM := msm8660_surf |
David Ng | 7fbe5c3 | 2012-07-18 12:07:02 -0700 | [diff] [blame] | 35 | else |
Pekka Pesu | aa809c6 | 2016-11-08 17:34:28 +0200 | [diff] [blame] | 36 | BOOTLOADER_PLATFORM := $(TARGET_BOARD_PLATFORM) |
David Ng | 7fbe5c3 | 2012-07-18 12:07:02 -0700 | [diff] [blame] | 37 | endif |
Urpo Pietikainen | 83d5c73 | 2017-01-11 16:11:17 +0200 | [diff] [blame] | 38 | endif |
Channagoud Kadabi | 49c6696 | 2013-01-28 13:39:27 -0800 | [diff] [blame] | 39 | |
Channagoud Kadabi | 6c08521 | 2014-02-28 19:13:14 -0800 | [diff] [blame] | 40 | ABOOT_OUT := $(TARGET_OUT_INTERMEDIATES)/ABOOT_OBJ |
| 41 | $(ABOOT_OUT): |
| 42 | $(hide) mkdir -p $(ABOOT_OUT) |
| 43 | |
Luca Weiss | b5f1a3d | 2021-04-20 14:30:47 +0200 | [diff] [blame] | 44 | ABOOT_CLEAN := $(ABOOT_OUT)/aboot_clean.timestamp |
| 45 | $(ABOOT_CLEAN): |
Channagoud Kadabi | 6c08521 | 2014-02-28 19:13:14 -0800 | [diff] [blame] | 46 | $(hide) rm -f $(TARGET_ABOOT_ELF) |
Luca Weiss | b5f1a3d | 2021-04-20 14:30:47 +0200 | [diff] [blame] | 47 | @touch $(ABOOT_CLEAN) |
Channagoud Kadabi | 6c08521 | 2014-02-28 19:13:14 -0800 | [diff] [blame] | 48 | |
| 49 | # ELF binary for ABOOT |
| 50 | TARGET_ABOOT_ELF := $(PRODUCT_OUT)/aboot.elf |
Luca Weiss | b5f1a3d | 2021-04-20 14:30:47 +0200 | [diff] [blame] | 51 | $(TARGET_ABOOT_ELF): $(ABOOT_CLEAN) | $(ABOOT_OUT) |
Maarten Derks | 57da517 | 2020-02-11 15:21:34 +0100 | [diff] [blame] | 52 | $(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=../../../$(ABOOT_OUT) $(BOOTLOADER_PLATFORM) $(EMMC_BOOT) $(SIGNED_KERNEL) $(VERIFIED_BOOT) $(DEVICE_STATUS) |
Channagoud Kadabi | 6c08521 | 2014-02-28 19:13:14 -0800 | [diff] [blame] | 53 | |
Ajay Dudani | 7e5a630 | 2011-11-24 12:23:49 -0800 | [diff] [blame] | 54 | # NAND variant output |
| 55 | TARGET_NAND_BOOTLOADER := $(PRODUCT_OUT)/appsboot.mbn |
| 56 | NAND_BOOTLOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/NAND_BOOTLOADER_OBJ |
David Ng | 025c1d9 | 2009-12-09 23:46:00 -0800 | [diff] [blame] | 57 | |
Channagoud Kadabi | c52dc18 | 2011-12-14 00:08:48 +0530 | [diff] [blame] | 58 | # Remove bootloader binary to trigger recompile when source changes |
Luca Weiss | b5f1a3d | 2021-04-20 14:30:47 +0200 | [diff] [blame] | 59 | appsbootldr_clean := $(ABOOT_OUT)/appsbootldr_clean.timestamp |
| 60 | $(appsbootldr_clean) : |
Channagoud Kadabi | c52dc18 | 2011-12-14 00:08:48 +0530 | [diff] [blame] | 61 | $(hide) rm -f $(TARGET_NAND_BOOTLOADER) |
Luca Weiss | b5f1a3d | 2021-04-20 14:30:47 +0200 | [diff] [blame] | 62 | @touch $(appsbootldr_clean) |
Channagoud Kadabi | c52dc18 | 2011-12-14 00:08:48 +0530 | [diff] [blame] | 63 | |
Ajay Dudani | 7e5a630 | 2011-11-24 12:23:49 -0800 | [diff] [blame] | 64 | $(NAND_BOOTLOADER_OUT): |
| 65 | mkdir -p $(NAND_BOOTLOADER_OUT) |
David Ng | 025c1d9 | 2009-12-09 23:46:00 -0800 | [diff] [blame] | 66 | |
Ajay Dudani | 7e5a630 | 2011-11-24 12:23:49 -0800 | [diff] [blame] | 67 | # eMMC variant output |
| 68 | TARGET_EMMC_BOOTLOADER := $(PRODUCT_OUT)/emmc_appsboot.mbn |
| 69 | EMMC_BOOTLOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/EMMC_BOOTLOADER_OBJ |
David Ng | 025c1d9 | 2009-12-09 23:46:00 -0800 | [diff] [blame] | 70 | |
Luca Weiss | b5f1a3d | 2021-04-20 14:30:47 +0200 | [diff] [blame] | 71 | emmc_appsbootldr_clean := $(ABOOT_OUT)/emmc_appsbootldr_clean.timestamp |
| 72 | $(emmc_appsbootldr_clean): |
Channagoud Kadabi | c52dc18 | 2011-12-14 00:08:48 +0530 | [diff] [blame] | 73 | $(hide) rm -f $(TARGET_EMMC_BOOTLOADER) |
Luca Weiss | b5f1a3d | 2021-04-20 14:30:47 +0200 | [diff] [blame] | 74 | @touch $(emmc_appsbootldr_clean) |
Channagoud Kadabi | c52dc18 | 2011-12-14 00:08:48 +0530 | [diff] [blame] | 75 | |
Ajay Dudani | 7e5a630 | 2011-11-24 12:23:49 -0800 | [diff] [blame] | 76 | $(EMMC_BOOTLOADER_OUT): |
| 77 | mkdir -p $(EMMC_BOOTLOADER_OUT) |
David Ng | 025c1d9 | 2009-12-09 23:46:00 -0800 | [diff] [blame] | 78 | |
Ajay Dudani | 7e5a630 | 2011-11-24 12:23:49 -0800 | [diff] [blame] | 79 | # Top level for NAND variant targets |
Luca Weiss | b5f1a3d | 2021-04-20 14:30:47 +0200 | [diff] [blame] | 80 | $(TARGET_NAND_BOOTLOADER): $(appsbootldr_clean) | $(NAND_BOOTLOADER_OUT) |
Maarten Derks | 57da517 | 2020-02-11 15:21:34 +0100 | [diff] [blame] | 81 | $(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=../../../$(NAND_BOOTLOADER_OUT) $(BOOTLOADER_PLATFORM) $(SIGNED_KERNEL) |
David Ng | 025c1d9 | 2009-12-09 23:46:00 -0800 | [diff] [blame] | 82 | |
Ajay Dudani | 7e5a630 | 2011-11-24 12:23:49 -0800 | [diff] [blame] | 83 | # Top level for eMMC variant targets |
Luca Weiss | b5f1a3d | 2021-04-20 14:30:47 +0200 | [diff] [blame] | 84 | $(TARGET_EMMC_BOOTLOADER): $(emmc_appsbootldr_clean) | $(EMMC_BOOTLOADER_OUT) $(INSTALLED_KEYSTOREIMAGE_TARGET) |
Luca Weiss | 600924b | 2022-04-28 15:14:03 +0200 | [diff] [blame] | 85 | $(KERNEL_MAKE_CMD) -C bootable/bootloader/lk COMPILER=$(CLANG_PREBUILTS)/bin/clang HOSTCFLAGS="-fuse-ld=lld" TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=../../../$(EMMC_BOOTLOADER_OUT) $(BOOTLOADER_PLATFORM) EMMC_BOOT=1 $(SIGNED_KERNEL) $(VERIFIED_BOOT) $(DEVICE_STATUS) |
Chandan Uddaraju | a9b07bb | 2009-11-21 12:22:02 -0800 | [diff] [blame] | 86 | |
Ajay Dudani | 7e5a630 | 2011-11-24 12:23:49 -0800 | [diff] [blame] | 87 | # Keep build NAND & eMMC as default for targets still using TARGET_BOOTLOADER |
| 88 | TARGET_BOOTLOADER := $(PRODUCT_OUT)/EMMCBOOT.MBN |
| 89 | $(TARGET_BOOTLOADER): $(NAND_BOOTLOADER_OUT) $(EMMC_BOOTLOADER_OUT) | $(TARGET_NAND_BOOTLOADER) $(TARGET_EMMC_BOOTLOADER) |
Ajay Dudani | 168f6cb | 2009-12-07 19:04:02 -0800 | [diff] [blame] | 90 | |
Ajay Dudani | 7e5a630 | 2011-11-24 12:23:49 -0800 | [diff] [blame] | 91 | # |
| 92 | # Build nandwrite as a part of Android Build for NAND configurations |
| 93 | # |
David Ng | 7fbe5c3 | 2012-07-18 12:07:02 -0700 | [diff] [blame] | 94 | TARGET_NANDWRITE := $(PRODUCT_OUT)/obj/nandwrite/build-$(BOOTLOADER_PLATFORM)_nandwrite/lk |
Ajay Dudani | 7e5a630 | 2011-11-24 12:23:49 -0800 | [diff] [blame] | 95 | NANDWRITE_OUT := $(TARGET_OUT_INTERMEDIATES)/nandwrite |
Ajay Dudani | 168f6cb | 2009-12-07 19:04:02 -0800 | [diff] [blame] | 96 | |
Luca Weiss | b5f1a3d | 2021-04-20 14:30:47 +0200 | [diff] [blame] | 97 | nandwrite_clean := $(ABOOT_OUT)/nandwrite_clean.timestamp |
| 98 | $(nandwrite_clean): |
David Ng | 17fdc97 | 2009-12-10 11:01:43 -0800 | [diff] [blame] | 99 | $(hide) rm -f $(TARGET_NANDWRITE) |
| 100 | $(hide) rm -rf $(NANDWRITE_OUT) |
Luca Weiss | b5f1a3d | 2021-04-20 14:30:47 +0200 | [diff] [blame] | 101 | @touch $(nandwrite_clean) |
Ajay Dudani | 168f6cb | 2009-12-07 19:04:02 -0800 | [diff] [blame] | 102 | |
David Ng | 17fdc97 | 2009-12-10 11:01:43 -0800 | [diff] [blame] | 103 | $(NANDWRITE_OUT): |
| 104 | mkdir -p $(NANDWRITE_OUT) |
| 105 | |
Luca Weiss | b5f1a3d | 2021-04-20 14:30:47 +0200 | [diff] [blame] | 106 | $(TARGET_NANDWRITE): $(nandwrite_clean) | $(NANDWRITE_OUT) |
David Ng | 7fbe5c3 | 2012-07-18 12:07:02 -0700 | [diff] [blame] | 107 | @echo $(BOOTLOADER_PLATFORM)_nandwrite |
Maarten Derks | 57da517 | 2020-02-11 15:21:34 +0100 | [diff] [blame] | 108 | $(MAKE) -C bootable/bootloader/lk TOOLCHAIN_PREFIX=$(CROSS_COMPILE) BOOTLOADER_OUT=../../../$(NANDWRITE_OUT) $(BOOTLOADER_PLATFORM)_nandwrite BUILD_NANDWRITE=1 |
Luca Weiss | b5f1a3d | 2021-04-20 14:30:47 +0200 | [diff] [blame] | 109 | $(hide) rm -f $(nandwrite_clean) |