xref: /rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.mk (revision beedfb93ceda7af1d7d45c33df230d76bb68fc6f)
1d89bec83SSandrine Bailleux#
236e3d877SAbhi.Singh# Copyright (c) 2020-2025, Arm Limited. All rights reserved.
3d89bec83SSandrine Bailleux#
4d89bec83SSandrine Bailleux# SPDX-License-Identifier: BSD-3-Clause
5d89bec83SSandrine Bailleux#
6d89bec83SSandrine Bailleux
7b67e9846SHarrison MutaiLIBEVLOG_PATH		?= contrib/libeventlog
8b67e9846SHarrison MutaiLIBEVLOG_NAME		:= eventlog
9cb03020eSHarrison Mutai
10b67e9846SHarrison MutaiLIBEVLOG_BUILD_DIR	:= $(BUILD_PLAT)/lib$(LIBEVLOG_NAME)
11*76d5d32fSHarrison MutaiLIBEVLOG_INSTALL_DIR	:= $(BUILD_PLAT)/$(LIBEVLOG_NAME)-install
12*76d5d32fSHarrison MutaiLIBEVLOG_TARGET		:= $(LIBEVLOG_INSTALL_DIR)/lib/lib$(LIBEVLOG_NAME).a
13b67e9846SHarrison Mutai
14b67e9846SHarrison Mutaiifeq ($(DEBUG),1)
15b67e9846SHarrison MutaiLIBEVLOG_BUILD_TYPE	:= Debug
16b67e9846SHarrison Mutaielse
17b67e9846SHarrison MutaiLIBEVLOG_BUILD_TYPE	:= Release
18b67e9846SHarrison Mutaiendif
19b67e9846SHarrison Mutai
2003032a95SChris KayLIBEVLOG_LIBS		:= $(LIBEVLOG_TARGET)
21*76d5d32fSHarrison MutaiLIBEVLOG_INCLUDE_DIRS	:= $(LIBEVLOG_INSTALL_DIR)/include
22b67e9846SHarrison Mutai
23*76d5d32fSHarrison MutaiLIBEVLOG_DIRS_TO_CHECK	+= $(LIBEVLOG_INSTALL_DIR)/include
24d89bec83SSandrine Bailleux
2536e3d877SAbhi.Singh# When using a TPM, adopt the TPM's hash algorithm for
2636e3d877SAbhi.Singh# measurements through the Event Log mechanism, ensuring
2736e3d877SAbhi.Singh# the TPM uses the same algorithm for measurements and
2836e3d877SAbhi.Singh# extends the PCR accordingly, allowing for comparison
2936e3d877SAbhi.Singh# between PCR value and Event Log measurements required
3036e3d877SAbhi.Singh# for attestation.
3136e3d877SAbhi.Singhifdef MBOOT_TPM_HASH_ALG
3236e3d877SAbhi.Singh    MBOOT_EL_HASH_ALG		:=	${MBOOT_TPM_HASH_ALG}
3378da42a5Slaurenw-armelse
3478da42a5Slaurenw-arm    MBOOT_EL_HASH_ALG		:=	sha256
3578da42a5Slaurenw-armendif
36d89bec83SSandrine Bailleux
3736e3d877SAbhi.Singh# Measured Boot hash algorithm.
3836e3d877SAbhi.Singh# SHA-256 (or stronger) is required for all devices that are TPM 2.0 compliant.
3978da42a5Slaurenw-armifeq (${MBOOT_EL_HASH_ALG}, sha512)
40d89bec83SSandrine Bailleux    TPM_ALG_ID			:=	TPM_ALG_SHA512
41d89bec83SSandrine Bailleux    TCG_DIGEST_SIZE		:=	64U
42b67e9846SHarrison Mutai    CRYPTO_MD_ID		:=	CRYPTO_MD_SHA512
4378da42a5Slaurenw-armelse ifeq (${MBOOT_EL_HASH_ALG}, sha384)
44d89bec83SSandrine Bailleux    TPM_ALG_ID			:=	TPM_ALG_SHA384
45d89bec83SSandrine Bailleux    TCG_DIGEST_SIZE		:=	48U
46b67e9846SHarrison Mutai    CRYPTO_MD_ID		:=	CRYPTO_MD_SHA384
47d89bec83SSandrine Bailleuxelse
48d89bec83SSandrine Bailleux    TPM_ALG_ID			:=	TPM_ALG_SHA256
49d89bec83SSandrine Bailleux    TCG_DIGEST_SIZE		:=	32U
50b67e9846SHarrison Mutai    CRYPTO_MD_ID		:=	CRYPTO_MD_SHA256
5178da42a5Slaurenw-armendif #MBOOT_EL_HASH_ALG
52d89bec83SSandrine Bailleux
5314db963fSManish V Badarkhe# Set definitions for Measured Boot driver.
54d89bec83SSandrine Bailleux$(eval $(call add_defines,\
55d89bec83SSandrine Bailleux    $(sort \
56d89bec83SSandrine Bailleux        TPM_ALG_ID \
57d89bec83SSandrine Bailleux        TCG_DIGEST_SIZE \
58d89bec83SSandrine Bailleux        EVENT_LOG_LEVEL \
59b67e9846SHarrison Mutai        CRYPTO_MD_ID \
60d89bec83SSandrine Bailleux)))
61d89bec83SSandrine Bailleux
62b67e9846SHarrison MutaiLIBEVLOG_CFLAGS ?= $(filter-out -I%,$(TF_CFLAGS))
63b67e9846SHarrison MutaiLIBEVLOG_CFLAGS += $(patsubst %,-I%,$(call include-dirs,$(TF_CFLAGS)))
64d89bec83SSandrine Bailleux
65*76d5d32fSHarrison Mutai$(LIBEVLOG_INSTALL_DIR)/% $(LIBEVLOG_INSTALL_DIR)/%/: $(LIBEVLOG_TARGET) ;
66*76d5d32fSHarrison Mutai$(LIBEVLOG_TARGET) $(LIBEVLOG_INSTALL_DIR)/ &: $(LIB_DIR)/libc.a
67b67e9846SHarrison Mutai	$(s)echo "  CM      $@"
68b67e9846SHarrison Mutai	$(q)cmake -S $(LIBEVLOG_PATH) -B $(LIBEVLOG_BUILD_DIR) \
69b67e9846SHarrison Mutai		-DHASH_ALGORITHM=$(call uppercase,$(MBOOT_EL_HASH_ALG)) \
70b67e9846SHarrison Mutai		-DCMAKE_BUILD_TYPE=$(LIBEVLOG_BUILD_TYPE) \
713dc41a61SChris Kay		-DCMAKE_SYSTEM_NAME=Generic \
723dc41a61SChris Kay		-DCMAKE_SYSTEM_VERSION= \
73b67e9846SHarrison Mutai		-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
74fcada3d5SChris Kay		-DCMAKE_C_COMPILER=$(call shell-quote,$(call shell-join,$($(ARCH)-cc-program),;)) \
75f162e3abSChris Kay		-DCMAKE_C_COMPILER_LAUNCHER=$(call shell-quote,$(call shell-join,$($(ARCH)-cc-wrapper),;)) \
76b67e9846SHarrison Mutai		-DCMAKE_C_FLAGS=$(call escape-shell,$(LIBEVLOG_CFLAGS)) \
77b67e9846SHarrison Mutai		-DDEBUG_BACKEND_HEADER="log_backend_tf.h" \
78b67e9846SHarrison Mutai		$(if $(V),, --log-level=ERROR) > /dev/null
79b67e9846SHarrison Mutai	$(q)cmake --build $(LIBEVLOG_BUILD_DIR) -- $(if $(V),,-s) > /dev/null
80*76d5d32fSHarrison Mutai	$(q)cmake --install $(LIBEVLOG_BUILD_DIR) \
81*76d5d32fSHarrison Mutai		--prefix $(LIBEVLOG_INSTALL_DIR) \
82*76d5d32fSHarrison Mutai		--config $(LIBEVLOG_BUILD_TYPE) > /dev/null
83