]> git.baikalelectronics.ru Git - arm-tf.git/commitdiff
feat(arm): add support for cca CoT
authorlaurenw-arm <lauren.wehrmeister@arm.com>
Thu, 21 Apr 2022 21:50:49 +0000 (16:50 -0500)
committerlaurenw-arm <lauren.wehrmeister@arm.com>
Tue, 14 Jun 2022 14:47:37 +0000 (09:47 -0500)
- Use the development PROTPK and SWD_ROTPK if using cca CoT.

- Define a cca CoT build flag for the platform code to provide
different implementations where needed.

- When ENABLE_RME=1, CCA CoT is selected by default on Arm
platforms if no specific CoT is specified by the user.

Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
Change-Id: I70ae6382334a58d3c726b89c7961663eb8571a64

plat/arm/board/common/board_common.mk
plat/arm/common/arm_common.mk

index 5cdf1bf3924da0cbaa18a54d6134a8d67a0d696f..b11811cd5ac3b5623c8df614a5db0cbd8bf7b0a1 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2015-2020, ARM Limited and Contributors. All rights reserved.
+# Copyright (c) 2015-2022, ARM Limited and Contributors. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -38,6 +38,10 @@ endif
 
 $(eval $(call add_define,ARM_ROTPK_LOCATION_ID))
 
+ifeq (${ENABLE_RME}, 1)
+COT    :=      cca
+endif
+
 # Force generation of the new hash if ROT_KEY is specified
 ifdef ROT_KEY
        HASH_PREREQUISITES = $(ROT_KEY) FORCE
@@ -88,4 +92,29 @@ $(BUILD_PLAT)/bl1/arm_dev_protpk.o: $(ARM_PROTPK_HASH)
 $(BUILD_PLAT)/bl2/arm_dev_protpk.o: $(ARM_PROTPK_HASH)
 endif
 
+ifeq (${COT},cca)
+# Platform and Secure World Root of Trust key files.
+ARM_PROT_KEY           :=      plat/arm/board/common/protpk/arm_protprivk_rsa.pem
+ARM_PROTPK_HASH                :=      plat/arm/board/common/protpk/arm_protpk_rsa_sha256.bin
+ARM_SWD_ROT_KEY                :=      plat/arm/board/common/swd_rotpk/arm_swd_rotprivk_rsa.pem
+ARM_SWD_ROTPK_HASH     :=      plat/arm/board/common/swd_rotpk/arm_swd_rotpk_rsa_sha256.bin
+
+# Provide the private keys to cert_create tool. It needs them to sign the images.
+PROT_KEY               :=      ${ARM_PROT_KEY}
+SWD_ROT_KEY            :=      ${ARM_SWD_ROT_KEY}
+
+$(eval $(call add_define_val,ARM_PROTPK_HASH,'"$(ARM_PROTPK_HASH)"'))
+$(eval $(call add_define_val,ARM_SWD_ROTPK_HASH,'"$(ARM_SWD_ROTPK_HASH)"'))
+
+BL1_SOURCES            +=      plat/arm/board/common/protpk/arm_dev_protpk.S \
+                               plat/arm/board/common/swd_rotpk/arm_dev_swd_rotpk.S
+BL2_SOURCES            +=      plat/arm/board/common/protpk/arm_dev_protpk.S \
+                               plat/arm/board/common/swd_rotpk/arm_dev_swd_rotpk.S
+
+$(BUILD_PLAT)/bl1/arm_dev_protpk.o: $(ARM_PROTPK_HASH)
+$(BUILD_PLAT)/bl1/arm_dev_swd_rotpk.o: $(ARM_SWD_ROTPK_HASH)
+$(BUILD_PLAT)/bl2/arm_dev_protpk.o: $(ARM_PROTPK_HASH)
+$(BUILD_PLAT)/bl2/arm_dev_swd_rotpk.o: $(ARM_SWD_ROTPK_HASH)
+endif
+
 endif
index 6d7aa2df5522541d5447f487c54d58b67a042386..10b01fa36cda0690088e24c06a72ca507081dc86 100644 (file)
@@ -373,6 +373,8 @@ ifneq (${TRUSTED_BOARD_BOOT},0)
         endif
     else ifeq (${COT},dualroot)
         AUTH_SOURCES   +=      drivers/auth/dualroot/cot.c
+    else ifeq (${COT},cca)
+        AUTH_SOURCES   +=      drivers/auth/cca/cot.c
     else
         $(error Unknown chain of trust ${COT})
     endif