blob: bdc9ad2ad67a02f4cdc9b67240a6351b3ba7c394 [file] [log] [blame]
Jakub Czapiga1fa3da42021-12-06 09:01:50 +00001# SPDX-License-Identifier: BSD-3-Clause
2
Jakub Czapiga1fa3da42021-12-06 09:01:50 +00003VBOOT_BUILD_DIR ?= $(abspath $(obj)/external/vboot)
4VBOOT_FW_LIB = $(VBOOT_BUILD_DIR)/vboot_fw.a
5TLCL_LIB = $(VBOOT_BUILD_DIR)/tlcl.a
6
7vboot_fw-objs += $(VBOOT_FW_LIB)
8tlcl-objs += $(TLCL_LIB)
9
Jakub Czapiga7f663ab2022-02-17 18:08:09 +010010kconfig-to-binary=$(if $(strip $(1)),1,0)
Jakub Czapiga3068d562022-03-22 17:56:51 +010011vboot-fixup-includes = $(filter -I$(coreboottop)/%, $(1)) \
12 $(patsubst -I%,-I$(top)/%,\
Jakub Czapiga1fa3da42021-12-06 09:01:50 +000013 $(patsubst include/%.h,$(top)/include/%.h,\
Jakub Czapiga3068d562022-03-22 17:56:51 +010014 $(filter-out -I$(obj),\
15 $(filter-out -I$(coreboottop)/%,$(1)))))
Jakub Czapiga1fa3da42021-12-06 09:01:50 +000016
17VBOOT_FIRMWARE_ARCH-$(CONFIG_LP_ARCH_ARM) := arm
18VBOOT_FIRMWARE_ARCH-$(CONFIG_LP_ARCH_X86) := x86
19VBOOT_FIRMWARE_ARCH-$(CONFIG_LP_ARCH_ARM64) := arm64
20
Yu-Ping Wuc6d25cf2024-01-10 15:27:11 +080021ifneq ($(CONFIG_LP_ARCH_MOCK),)
22VBOOT_FIRMWARE_ARCH-y := mock
23else
24VBOOT_CFLAGS += $(call vboot-fixup-includes,$(CFLAGS))
25VBOOT_CFLAGS += -I$(abspath $(obj))
26endif
27
28ifeq ($(VBOOT_FIRMWARE_ARCH-y),)
Jakub Czapiga1fa3da42021-12-06 09:01:50 +000029$(error vboot requires architecture to be set in the configuration)
30endif
31
Yu-Ping Wuc6d25cf2024-01-10 15:27:11 +080032# Enable vboot debug by default
33VBOOT_CFLAGS += -DVBOOT_DEBUG
34
Jeremy Compostella3dcd0d92023-11-27 15:01:28 -080035ifeq ($(CONFIG_LP_VBOOT_X86_RSA_ACCELERATION),y)
36CPPFLAGS_common += -DVB2_X86_RSA_ACCELERATION
37endif
38
Jakub Czapiga1fa3da42021-12-06 09:01:50 +000039$(VBOOT_FW_LIB): $(obj)/libpayload-config.h
40 @printf " MAKE $(subst $(obj)/,,$(@))\n"
Jakub Czapigab17f1ce2022-02-18 10:24:08 +010041 +$(Q) FIRMWARE_ARCH="$(VBOOT_FIRMWARE_ARCH-y)" \
42 CC="$(CC)" \
Jakub Czapiga1fa3da42021-12-06 09:01:50 +000043 CFLAGS="$(VBOOT_CFLAGS)" \
44 $(MAKE) -C "$(VBOOT_SOURCE)" \
45 TPM2_MODE=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_TPM2_MODE)) \
46 X86_SHA_EXT=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_X86_SHA_EXT)) \
Jeremy Compostella3dcd0d92023-11-27 15:01:28 -080047 VB2_X86_RSA_ACCELERATION=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_X86_RSA_ACCELERATION)) \
Yidi Lin70409212023-01-31 15:09:24 +080048 ARMV8_CRYPTO_EXT=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_SHA_ARMV8_CE)) \
Jakub Czapiga1fa3da42021-12-06 09:01:50 +000049 UNROLL_LOOPS=1 \
Jakub Czapigab17f1ce2022-02-18 10:24:08 +010050 BUILD="$(VBOOT_BUILD_DIR)" \
Jakub Czapiga1fa3da42021-12-06 09:01:50 +000051 V=$(V) \
52 $(VBOOT_BUILD_DIR)/vboot_fw.a tlcl
53
54$(TLCL_LIB): $(VBOOT_FW_LIB)
55
56.PHONY: $(VBOOT_FW_LIB) $(TLCL_LIB)