195cfd4adSJuan Castillo# 2*a6ffddecSMax Shvetsov# Copyright (c) 2015-2020, 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) 15f143cafeSSoby Mathewifneq (${ARM_CRYPTOCELL_INTEG}, 1) 1695cfd4adSJuan Castillo# ROTPK hash location 1795cfd4adSJuan Castilloifeq (${ARM_ROTPK_LOCATION}, regs) 1895cfd4adSJuan Castillo ARM_ROTPK_LOCATION_ID = ARM_ROTPK_REGS_ID 1995cfd4adSJuan Castilloelse ifeq (${ARM_ROTPK_LOCATION}, devel_rsa) 209db9c65aSQixiang Xu KEY_ALG := rsa 2195cfd4adSJuan Castillo ARM_ROTPK_LOCATION_ID = ARM_ROTPK_DEVEL_RSA_ID 22*a6ffddecSMax Shvetsov ARM_ROTPK_HASH = plat/arm/board/common/rotpk/arm_rotpk_rsa_sha256.bin 23*a6ffddecSMax Shvetsov$(eval $(call add_define_val,ARM_ROTPK_HASH,'"$(ARM_ROTPK_HASH)"')) 24*a6ffddecSMax Shvetsov$(BUILD_PLAT)/bl2/arm_dev_rotpk.o : $(ARM_ROTPK_HASH) 25*a6ffddecSMax Shvetsov$(warning Development keys support for FVP is deprecated. Use `regs` \ 26*a6ffddecSMax Shvetsovoption instead) 279db9c65aSQixiang Xuelse ifeq (${ARM_ROTPK_LOCATION}, devel_ecdsa) 289db9c65aSQixiang Xu KEY_ALG := ecdsa 299db9c65aSQixiang Xu ARM_ROTPK_LOCATION_ID = ARM_ROTPK_DEVEL_ECDSA_ID 30*a6ffddecSMax Shvetsov ARM_ROTPK_HASH = plat/arm/board/common/rotpk/arm_rotpk_ecdsa_sha256.bin 31*a6ffddecSMax Shvetsov$(eval $(call add_define_val,ARM_ROTPK_HASH,'"$(ARM_ROTPK_HASH)"')) 32*a6ffddecSMax Shvetsov$(BUILD_PLAT)/bl2/arm_dev_rotpk.o : $(ARM_ROTPK_HASH) 33*a6ffddecSMax Shvetsov$(warning Development keys support for FVP is deprecated. Use `regs` \ 34*a6ffddecSMax Shvetsovoption instead) 3595cfd4adSJuan Castilloelse 3695cfd4adSJuan Castillo $(error "Unsupported ARM_ROTPK_LOCATION value") 3795cfd4adSJuan Castilloendif 38*a6ffddecSMax Shvetsov 3995cfd4adSJuan Castillo$(eval $(call add_define,ARM_ROTPK_LOCATION_ID)) 4095cfd4adSJuan Castillo 41*a6ffddecSMax Shvetsov# Force generation of the new hash if ROT_KEY is specified 42*a6ffddecSMax Shvetsovifdef ROT_KEY 43*a6ffddecSMax Shvetsov HASH_PREREQUISITES = $(ROT_KEY) FORCE 44*a6ffddecSMax ShvetsovFORCE: 45*a6ffddecSMax Shvetsovelse 46*a6ffddecSMax Shvetsov HASH_PREREQUISITES = $(ROT_KEY) 47*a6ffddecSMax Shvetsovendif 48*a6ffddecSMax Shvetsov 49*a6ffddecSMax Shvetsov$(ARM_ROTPK_HASH) : $(HASH_PREREQUISITES) 50*a6ffddecSMax Shvetsovifndef ROT_KEY 51*a6ffddecSMax Shvetsov $(error Cannot generate hash: no ROT_KEY defined) 52*a6ffddecSMax Shvetsovendif 53*a6ffddecSMax Shvetsov openssl rsa -in $< -pubout -outform DER | openssl dgst \ 54*a6ffddecSMax Shvetsov -sha256 -binary > $@ 55*a6ffddecSMax Shvetsov 5648279d52SJuan Castillo# Certificate NV-Counters. Use values corresponding to tied off values in 5748279d52SJuan Castillo# ARM development platforms 5848279d52SJuan CastilloTFW_NVCTR_VAL ?= 31 5948279d52SJuan CastilloNTFW_NVCTR_VAL ?= 223 60f143cafeSSoby Mathewelse 61f143cafeSSoby Mathew# Certificate NV-Counters when CryptoCell is integrated. For development 62f143cafeSSoby Mathew# platforms we set the counter to first valid value. 63f143cafeSSoby MathewTFW_NVCTR_VAL ?= 0 64f143cafeSSoby MathewNTFW_NVCTR_VAL ?= 0 65f143cafeSSoby Mathewendif 66*a6ffddecSMax ShvetsovBL1_SOURCES += plat/arm/board/common/board_arm_trusted_boot.c \ 67*a6ffddecSMax Shvetsov plat/arm/board/common/rotpk/arm_dev_rotpk.S 68*a6ffddecSMax ShvetsovBL2_SOURCES += plat/arm/board/common/board_arm_trusted_boot.c \ 69*a6ffddecSMax Shvetsov plat/arm/board/common/rotpk/arm_dev_rotpk.S 70*a6ffddecSMax Shvetsov 7195cfd4adSJuan Castilloendif 72