xref: /rk3399_ARM-atf/drivers/measured_boot/event_log/event_log.mk (revision fcada3d5edf9383102562c9df3f0ba95c445576f)
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)
11b67e9846SHarrison MutaiLIBEVLOG_TARGET		:= $(LIB_DIR)/$(LIBEVLOG_NAME).a
12b67e9846SHarrison Mutai
13b67e9846SHarrison Mutaiifeq ($(DEBUG),1)
14b67e9846SHarrison MutaiLIBEVLOG_BUILD_TYPE	:= Debug
15b67e9846SHarrison Mutaielse
16b67e9846SHarrison MutaiLIBEVLOG_BUILD_TYPE	:= Release
17b67e9846SHarrison Mutaiendif
18b67e9846SHarrison Mutai
19b67e9846SHarrison MutaiLDLIBS		:= -l$(LIBEVLOG_NAME) $(LDLIBS)
20b67e9846SHarrison MutaiINCLUDES	+= -I$(LIBEVLOG_PATH)/include
21b67e9846SHarrison Mutai
22b67e9846SHarrison MutaiLIBEVLOG_DIRS_TO_CHECK	+= $(LIBEVLOG_PATH)/include
23d89bec83SSandrine Bailleux
2436e3d877SAbhi.Singh# When using a TPM, adopt the TPM's hash algorithm for
2536e3d877SAbhi.Singh# measurements through the Event Log mechanism, ensuring
2636e3d877SAbhi.Singh# the TPM uses the same algorithm for measurements and
2736e3d877SAbhi.Singh# extends the PCR accordingly, allowing for comparison
2836e3d877SAbhi.Singh# between PCR value and Event Log measurements required
2936e3d877SAbhi.Singh# for attestation.
3036e3d877SAbhi.Singhifdef MBOOT_TPM_HASH_ALG
3136e3d877SAbhi.Singh    MBOOT_EL_HASH_ALG		:=	${MBOOT_TPM_HASH_ALG}
3278da42a5Slaurenw-armelse
3378da42a5Slaurenw-arm    MBOOT_EL_HASH_ALG		:=	sha256
3478da42a5Slaurenw-armendif
35d89bec83SSandrine Bailleux
3636e3d877SAbhi.Singh# Measured Boot hash algorithm.
3736e3d877SAbhi.Singh# SHA-256 (or stronger) is required for all devices that are TPM 2.0 compliant.
3878da42a5Slaurenw-armifeq (${MBOOT_EL_HASH_ALG}, sha512)
39d89bec83SSandrine Bailleux    TPM_ALG_ID			:=	TPM_ALG_SHA512
40d89bec83SSandrine Bailleux    TCG_DIGEST_SIZE		:=	64U
41b67e9846SHarrison Mutai    CRYPTO_MD_ID		:=	CRYPTO_MD_SHA512
4278da42a5Slaurenw-armelse ifeq (${MBOOT_EL_HASH_ALG}, sha384)
43d89bec83SSandrine Bailleux    TPM_ALG_ID			:=	TPM_ALG_SHA384
44d89bec83SSandrine Bailleux    TCG_DIGEST_SIZE		:=	48U
45b67e9846SHarrison Mutai    CRYPTO_MD_ID		:=	CRYPTO_MD_SHA384
46d89bec83SSandrine Bailleuxelse
47d89bec83SSandrine Bailleux    TPM_ALG_ID			:=	TPM_ALG_SHA256
48d89bec83SSandrine Bailleux    TCG_DIGEST_SIZE		:=	32U
49b67e9846SHarrison Mutai    CRYPTO_MD_ID		:=	CRYPTO_MD_SHA256
5078da42a5Slaurenw-armendif #MBOOT_EL_HASH_ALG
51d89bec83SSandrine Bailleux
5214db963fSManish V Badarkhe# Set definitions for Measured Boot driver.
53d89bec83SSandrine Bailleux$(eval $(call add_defines,\
54d89bec83SSandrine Bailleux    $(sort \
55d89bec83SSandrine Bailleux        TPM_ALG_ID \
56d89bec83SSandrine Bailleux        TCG_DIGEST_SIZE \
57d89bec83SSandrine Bailleux        EVENT_LOG_LEVEL \
58b67e9846SHarrison Mutai        CRYPTO_MD_ID \
59d89bec83SSandrine Bailleux)))
60d89bec83SSandrine Bailleux
61b67e9846SHarrison MutaiLIBEVLOG_CFLAGS ?= $(filter-out -I%,$(TF_CFLAGS))
62b67e9846SHarrison MutaiLIBEVLOG_CFLAGS += $(patsubst %,-I%,$(call include-dirs,$(TF_CFLAGS)))
63d89bec83SSandrine Bailleux
64b67e9846SHarrison Mutai$(LIBEVLOG_TARGET): $(LIB_DIR)/libc.a
65b67e9846SHarrison Mutai	$(s)echo "  CM      $@"
66b67e9846SHarrison Mutai	$(q)cmake -S $(LIBEVLOG_PATH) -B $(LIBEVLOG_BUILD_DIR) \
67b67e9846SHarrison Mutai		-DHASH_ALGORITHM=$(call uppercase,$(MBOOT_EL_HASH_ALG)) \
68b67e9846SHarrison Mutai		-DCMAKE_BUILD_TYPE=$(LIBEVLOG_BUILD_TYPE) \
69b67e9846SHarrison Mutai		-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY="$(abspath $(BUILD_PLAT)/lib)" \
70b67e9846SHarrison Mutai		-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
71*fcada3d5SChris Kay		-DCMAKE_C_COMPILER=$(call shell-quote,$(call shell-join,$($(ARCH)-cc-program),;)) \
72b67e9846SHarrison Mutai		-DCMAKE_C_FLAGS=$(call escape-shell,$(LIBEVLOG_CFLAGS)) \
73b67e9846SHarrison Mutai		-DDEBUG_BACKEND_HEADER="log_backend_tf.h" \
74b67e9846SHarrison Mutai		$(if $(V),, --log-level=ERROR) > /dev/null
75b67e9846SHarrison Mutai	$(q)cmake --build $(LIBEVLOG_BUILD_DIR) -- $(if $(V),,-s) > /dev/null
76ca391636SHarrison Mutai
77b67e9846SHarrison Mutailibraries: $(LIBEVLOG_TARGET)
78