| # SPDX-License-Identifier: BSD-3-Clause |
| |
| VBOOT_BUILD_DIR ?= $(abspath $(obj)/external/vboot) |
| VBOOT_FW_LIB = $(VBOOT_BUILD_DIR)/vboot_fw.a |
| TLCL_LIB = $(VBOOT_BUILD_DIR)/tlcl.a |
| |
| vboot_fw-objs += $(VBOOT_FW_LIB) |
| tlcl-objs += $(TLCL_LIB) |
| |
| kconfig-to-binary=$(if $(strip $(1)),1,0) |
| vboot-fixup-includes = $(filter -I$(coreboottop)/%, $(1)) \ |
| $(patsubst -I%,-I$(top)/%,\ |
| $(patsubst include/%.h,$(top)/include/%.h,\ |
| $(filter-out -I$(obj),\ |
| $(filter-out -I$(coreboottop)/%,$(1))))) |
| |
| VBOOT_FIRMWARE_ARCH-$(CONFIG_LP_ARCH_ARM) := arm |
| VBOOT_FIRMWARE_ARCH-$(CONFIG_LP_ARCH_X86) := x86 |
| VBOOT_FIRMWARE_ARCH-$(CONFIG_LP_ARCH_ARM64) := arm64 |
| |
| ifneq ($(CONFIG_LP_ARCH_MOCK),) |
| VBOOT_FIRMWARE_ARCH-y := mock |
| else |
| VBOOT_CFLAGS += $(call vboot-fixup-includes,$(CFLAGS)) |
| VBOOT_CFLAGS += -I$(abspath $(obj)) |
| endif |
| |
| ifeq ($(VBOOT_FIRMWARE_ARCH-y),) |
| $(error vboot requires architecture to be set in the configuration) |
| endif |
| |
| # Enable vboot debug by default |
| VBOOT_CFLAGS += -DVBOOT_DEBUG |
| |
| ifeq ($(CONFIG_LP_VBOOT_X86_RSA_ACCELERATION),y) |
| CPPFLAGS_common += -DVB2_X86_RSA_ACCELERATION |
| endif |
| |
| $(VBOOT_FW_LIB): $(obj)/libpayload-config.h |
| @printf " MAKE $(subst $(obj)/,,$(@))\n" |
| +$(Q) FIRMWARE_ARCH="$(VBOOT_FIRMWARE_ARCH-y)" \ |
| CC="$(CC)" \ |
| CFLAGS="$(VBOOT_CFLAGS)" \ |
| $(MAKE) -C "$(VBOOT_SOURCE)" \ |
| TPM2_MODE=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_TPM2_MODE)) \ |
| X86_SHA_EXT=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_X86_SHA_EXT)) \ |
| VB2_X86_RSA_ACCELERATION=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_X86_RSA_ACCELERATION)) \ |
| ARMV8_CRYPTO_EXT=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_SHA_ARMV8_CE)) \ |
| ARM64_RSA_ACCELERATION=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_ARM64_RSA_ACCELERATION)) \ |
| UNROLL_LOOPS=1 \ |
| BUILD="$(VBOOT_BUILD_DIR)" \ |
| V=$(V) \ |
| $(VBOOT_BUILD_DIR)/vboot_fw.a tlcl |
| |
| $(TLCL_LIB): $(VBOOT_FW_LIB) |
| |
| .PHONY: $(VBOOT_FW_LIB) $(TLCL_LIB) |