xref: /rk3399_ARM-atf/plat/arm/board/common/board_common.mk (revision b8ae68908de5560436c565ac22d59c0cbfc9a7df)
195cfd4adSJuan Castillo#
202552d45Slaurenw-arm# Copyright (c) 2015-2023, Arm Limited and Contributors. All rights reserved.
395cfd4adSJuan Castillo#
482cb2c1aSdp-arm# SPDX-License-Identifier: BSD-3-Clause
595cfd4adSJuan Castillo#
695cfd4adSJuan Castillo
71a0a3f06SYatharth KocharPLAT_BL_COMMON_SOURCES	+=	drivers/arm/pl011/${ARCH}/pl011_console.S	\
81a0a3f06SYatharth Kochar				plat/arm/board/common/${ARCH}/board_arm_helpers.S
995cfd4adSJuan Castillo
10aa7877c4SAntonio Nino DiazBL1_SOURCES		+=	drivers/cfi/v2m/v2m_flash.c
1195cfd4adSJuan Castillo
12aa7877c4SAntonio Nino DiazBL2_SOURCES		+=	drivers/cfi/v2m/v2m_flash.c
1395cfd4adSJuan Castillo
1495cfd4adSJuan Castilloifneq (${TRUSTED_BOARD_BOOT},0)
1595302e4bSlaurenw-armARM_ROTPK_S = plat/arm/board/common/rotpk/arm_dev_rotpk.S
16f143cafeSSoby Mathewifneq (${ARM_CRYPTOCELL_INTEG}, 1)
1795cfd4adSJuan Castillo# ROTPK hash location
1895cfd4adSJuan Castilloifeq (${ARM_ROTPK_LOCATION}, regs)
1995cfd4adSJuan Castillo	ARM_ROTPK_LOCATION_ID = ARM_ROTPK_REGS_ID
2095cfd4adSJuan Castilloelse ifeq (${ARM_ROTPK_LOCATION}, devel_rsa)
21698e231dSMax Shvetsov	CRYPTO_ALG=rsa
2295cfd4adSJuan Castillo	ARM_ROTPK_LOCATION_ID = ARM_ROTPK_DEVEL_RSA_ID
23a6ffddecSMax Shvetsov	ARM_ROTPK_HASH = plat/arm/board/common/rotpk/arm_rotpk_rsa_sha256.bin
24a6ffddecSMax Shvetsov$(eval $(call add_define_val,ARM_ROTPK_HASH,'"$(ARM_ROTPK_HASH)"'))
25a6ffddecSMax Shvetsov$(BUILD_PLAT)/bl2/arm_dev_rotpk.o : $(ARM_ROTPK_HASH)
26a6ffddecSMax Shvetsov$(warning Development keys support for FVP is deprecated. Use `regs` \
27a6ffddecSMax Shvetsovoption instead)
289db9c65aSQixiang Xuelse ifeq (${ARM_ROTPK_LOCATION}, devel_ecdsa)
29698e231dSMax Shvetsov	CRYPTO_ALG=ec
309db9c65aSQixiang Xu	ARM_ROTPK_LOCATION_ID = ARM_ROTPK_DEVEL_ECDSA_ID
31a6ffddecSMax Shvetsov	ARM_ROTPK_HASH = plat/arm/board/common/rotpk/arm_rotpk_ecdsa_sha256.bin
32a6ffddecSMax Shvetsov$(eval $(call add_define_val,ARM_ROTPK_HASH,'"$(ARM_ROTPK_HASH)"'))
33a6ffddecSMax Shvetsov$(BUILD_PLAT)/bl2/arm_dev_rotpk.o : $(ARM_ROTPK_HASH)
34a6ffddecSMax Shvetsov$(warning Development keys support for FVP is deprecated. Use `regs` \
35a6ffddecSMax Shvetsovoption instead)
365f899286Slaurenw-armelse ifeq (${ARM_ROTPK_LOCATION}, devel_full_dev_rsa_key)
375f899286Slaurenw-arm	CRYPTO_ALG=rsa
385f899286Slaurenw-arm	ARM_ROTPK_LOCATION_ID = ARM_ROTPK_DEVEL_FULL_DEV_RSA_KEY_ID
395f899286Slaurenw-arm	ARM_ROTPK_S = plat/arm/board/common/rotpk/arm_full_dev_rsa_rotpk.S
405f899286Slaurenw-arm$(warning Development keys support for FVP is deprecated. Use `regs` \
415f899286Slaurenw-armoption instead)
42*b8ae6890Slaurenw-armelse ifeq (${ARM_ROTPK_LOCATION}, devel_full_dev_ecdsa_key)
43*b8ae6890Slaurenw-arm	CRYPTO_ALG=ec
44*b8ae6890Slaurenw-arm	ARM_ROTPK_LOCATION_ID = ARM_ROTPK_DEVEL_FULL_DEV_ECDSA_KEY_ID
45*b8ae6890Slaurenw-armifeq (${KEY_SIZE},384)
46*b8ae6890Slaurenw-arm	ARM_ROTPK_S = plat/arm/board/common/rotpk/arm_full_dev_ecdsa_p384_rotpk.S
47*b8ae6890Slaurenw-armelse
48*b8ae6890Slaurenw-arm	ARM_ROTPK_S = plat/arm/board/common/rotpk/arm_full_dev_ecdsa_p256_rotpk.S
49*b8ae6890Slaurenw-armendif
50*b8ae6890Slaurenw-arm$(warning Development keys support for FVP is deprecated. Use `regs` \
51*b8ae6890Slaurenw-armoption instead)
5295cfd4adSJuan Castilloelse
5395cfd4adSJuan Castillo$(error "Unsupported ARM_ROTPK_LOCATION value")
5495cfd4adSJuan Castilloendif
55a6ffddecSMax Shvetsov
5695cfd4adSJuan Castillo$(eval $(call add_define,ARM_ROTPK_LOCATION_ID))
5795cfd4adSJuan Castillo
58f2423792Slaurenw-armifeq (${ENABLE_RME}, 1)
59f2423792Slaurenw-armCOT	:=	cca
60f2423792Slaurenw-armendif
61f2423792Slaurenw-arm
62a6ffddecSMax Shvetsov# Force generation of the new hash if ROT_KEY is specified
63a6ffddecSMax Shvetsovifdef ROT_KEY
64a6ffddecSMax Shvetsov	HASH_PREREQUISITES = $(ROT_KEY) FORCE
65a6ffddecSMax Shvetsovendif
66a6ffddecSMax Shvetsov
67a6ffddecSMax Shvetsov$(ARM_ROTPK_HASH) : $(HASH_PREREQUISITES)
68a6ffddecSMax Shvetsovifndef ROT_KEY
69a6ffddecSMax Shvetsov	$(error Cannot generate hash: no ROT_KEY defined)
70a6ffddecSMax Shvetsovendif
71e95abc4cSSalome Thirot	${OPENSSL_BIN_PATH}/openssl ${CRYPTO_ALG} -in $< -pubout -outform DER | \
72e95abc4cSSalome Thirot	${OPENSSL_BIN_PATH}/openssl dgst -sha256 -binary > $@
73a6ffddecSMax Shvetsov
7448279d52SJuan Castillo# Certificate NV-Counters. Use values corresponding to tied off values in
7548279d52SJuan Castillo# ARM development platforms
7648279d52SJuan CastilloTFW_NVCTR_VAL	?=	31
7748279d52SJuan CastilloNTFW_NVCTR_VAL	?=	223
7802552d45Slaurenw-arm# The CCA Non-Volatile Counter only exists on some Arm development platforms.
7902552d45Slaurenw-arm# On others, we mock it by aliasing it to the Trusted Firmware Non-Volatile counter,
8002552d45Slaurenw-arm# hence we set both counters to the same default value.
8102552d45Slaurenw-armCCAFW_NVCTR_VAL	?=	31
82f143cafeSSoby Mathewelse
83f143cafeSSoby Mathew# Certificate NV-Counters when CryptoCell is integrated. For development
84f143cafeSSoby Mathew# platforms we set the counter to first valid value.
85f143cafeSSoby MathewTFW_NVCTR_VAL	?=	0
86f143cafeSSoby MathewNTFW_NVCTR_VAL	?=	0
8702552d45Slaurenw-armCCAFW_NVCTR_VAL	?=	0
88f143cafeSSoby Mathewendif
89a6ffddecSMax ShvetsovBL1_SOURCES		+=	plat/arm/board/common/board_arm_trusted_boot.c \
905f899286Slaurenw-arm				${ARM_ROTPK_S}
91a6ffddecSMax ShvetsovBL2_SOURCES		+=	plat/arm/board/common/board_arm_trusted_boot.c \
925f899286Slaurenw-arm				${ARM_ROTPK_S}
93a6ffddecSMax Shvetsov
941035a706SSandrine Bailleux# Allows platform code to provide implementation variants depending on the
951035a706SSandrine Bailleux# selected chain of trust.
961035a706SSandrine Bailleux$(eval $(call add_define,ARM_COT_${COT}))
971035a706SSandrine Bailleux
981035a706SSandrine Bailleuxifeq (${COT},dualroot)
991035a706SSandrine Bailleux# Platform Root of Trust key files.
1001035a706SSandrine BailleuxARM_PROT_KEY		:=	plat/arm/board/common/protpk/arm_protprivk_rsa.pem
1011035a706SSandrine BailleuxARM_PROTPK_HASH		:=	plat/arm/board/common/protpk/arm_protpk_rsa_sha256.bin
1021035a706SSandrine Bailleux
1031035a706SSandrine Bailleux# Provide the private key to cert_create tool. It needs it to sign the images.
1041035a706SSandrine BailleuxPROT_KEY		:=	${ARM_PROT_KEY}
1051035a706SSandrine Bailleux
1061035a706SSandrine Bailleux$(eval $(call add_define_val,ARM_PROTPK_HASH,'"$(ARM_PROTPK_HASH)"'))
1071035a706SSandrine Bailleux
1081035a706SSandrine BailleuxBL1_SOURCES		+=	plat/arm/board/common/protpk/arm_dev_protpk.S
1091035a706SSandrine BailleuxBL2_SOURCES		+=	plat/arm/board/common/protpk/arm_dev_protpk.S
1101035a706SSandrine Bailleux
1111035a706SSandrine Bailleux$(BUILD_PLAT)/bl1/arm_dev_protpk.o: $(ARM_PROTPK_HASH)
1121035a706SSandrine Bailleux$(BUILD_PLAT)/bl2/arm_dev_protpk.o: $(ARM_PROTPK_HASH)
1131035a706SSandrine Bailleuxendif
1141035a706SSandrine Bailleux
115f2423792Slaurenw-armifeq (${COT},cca)
116f2423792Slaurenw-arm# Platform and Secure World Root of Trust key files.
117f2423792Slaurenw-armARM_PROT_KEY		:=	plat/arm/board/common/protpk/arm_protprivk_rsa.pem
118f2423792Slaurenw-armARM_PROTPK_HASH		:=	plat/arm/board/common/protpk/arm_protpk_rsa_sha256.bin
119f2423792Slaurenw-armARM_SWD_ROT_KEY		:=	plat/arm/board/common/swd_rotpk/arm_swd_rotprivk_rsa.pem
120f2423792Slaurenw-armARM_SWD_ROTPK_HASH	:=	plat/arm/board/common/swd_rotpk/arm_swd_rotpk_rsa_sha256.bin
121f2423792Slaurenw-arm
122f2423792Slaurenw-arm# Provide the private keys to cert_create tool. It needs them to sign the images.
123f2423792Slaurenw-armPROT_KEY		:=	${ARM_PROT_KEY}
124f2423792Slaurenw-armSWD_ROT_KEY		:=	${ARM_SWD_ROT_KEY}
125f2423792Slaurenw-arm
126f2423792Slaurenw-arm$(eval $(call add_define_val,ARM_PROTPK_HASH,'"$(ARM_PROTPK_HASH)"'))
127f2423792Slaurenw-arm$(eval $(call add_define_val,ARM_SWD_ROTPK_HASH,'"$(ARM_SWD_ROTPK_HASH)"'))
128f2423792Slaurenw-arm
129f2423792Slaurenw-armBL1_SOURCES		+=	plat/arm/board/common/protpk/arm_dev_protpk.S \
130f2423792Slaurenw-arm				plat/arm/board/common/swd_rotpk/arm_dev_swd_rotpk.S
131f2423792Slaurenw-armBL2_SOURCES		+=	plat/arm/board/common/protpk/arm_dev_protpk.S \
132f2423792Slaurenw-arm				plat/arm/board/common/swd_rotpk/arm_dev_swd_rotpk.S
133f2423792Slaurenw-arm
134f2423792Slaurenw-arm$(BUILD_PLAT)/bl1/arm_dev_protpk.o: $(ARM_PROTPK_HASH)
135f2423792Slaurenw-arm$(BUILD_PLAT)/bl1/arm_dev_swd_rotpk.o: $(ARM_SWD_ROTPK_HASH)
136f2423792Slaurenw-arm$(BUILD_PLAT)/bl2/arm_dev_protpk.o: $(ARM_PROTPK_HASH)
137f2423792Slaurenw-arm$(BUILD_PLAT)/bl2/arm_dev_swd_rotpk.o: $(ARM_SWD_ROTPK_HASH)
138f2423792Slaurenw-armendif
139f2423792Slaurenw-arm
14095cfd4adSJuan Castilloendif
141