1*91f16700Schasinglulu# 2*91f16700Schasinglulu# Copyright (c) 2018-2023, ARM Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu# 4*91f16700Schasinglulu# SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu# 6*91f16700Schasinglulu 7*91f16700Schasingluluoverride PROGRAMMABLE_RESET_ADDRESS := 1 8*91f16700Schasingluluoverride USE_COHERENT_MEM := 1 9*91f16700Schasingluluoverride SEPARATE_CODE_AND_RODATA := 1 10*91f16700Schasingluluoverride ENABLE_SVE_FOR_NS := 0 11*91f16700Schasinglulu# Enable workarounds for selected Cortex-A53 erratas. 12*91f16700SchasingluluERRATA_A53_855873 := 1 13*91f16700Schasinglulu 14*91f16700Schasingluluifeq (${RESET_TO_BL31}, 1) 15*91f16700Schasingluluoverride RESET_TO_BL31 := 1 16*91f16700Schasingluluoverride TRUSTED_BOARD_BOOT := 0 17*91f16700SchasingluluSQ_USE_SCMI_DRIVER ?= 0 18*91f16700Schasingluluelse 19*91f16700Schasingluluoverride RESET_TO_BL31 := 0 20*91f16700Schasingluluoverride RESET_TO_BL2 := 1 21*91f16700SchasingluluSQ_USE_SCMI_DRIVER := 1 22*91f16700SchasingluluBL2_CPPFLAGS += -DPLAT_XLAT_TABLES_DYNAMIC 23*91f16700Schasingluluendif 24*91f16700Schasinglulu 25*91f16700Schasinglulu# Libraries 26*91f16700Schasingluluinclude lib/xlat_tables_v2/xlat_tables.mk 27*91f16700Schasinglulu 28*91f16700SchasingluluPLAT_PATH := plat/socionext/synquacer 29*91f16700SchasingluluPLAT_INCLUDES := -I$(PLAT_PATH)/include \ 30*91f16700Schasinglulu -I$(PLAT_PATH)/drivers/scpi \ 31*91f16700Schasinglulu -I$(PLAT_PATH)/drivers/mhu \ 32*91f16700Schasinglulu -Idrivers/arm/css/scmi \ 33*91f16700Schasinglulu -Idrivers/arm/css/scmi/vendor 34*91f16700Schasinglulu 35*91f16700SchasingluluPLAT_BL_COMMON_SOURCES += $(PLAT_PATH)/sq_helpers.S \ 36*91f16700Schasinglulu drivers/arm/pl011/aarch64/pl011_console.S \ 37*91f16700Schasinglulu drivers/delay_timer/delay_timer.c \ 38*91f16700Schasinglulu drivers/delay_timer/generic_delay_timer.c \ 39*91f16700Schasinglulu lib/cpus/aarch64/cortex_a53.S \ 40*91f16700Schasinglulu $(PLAT_PATH)/sq_xlat_setup.c \ 41*91f16700Schasinglulu ${XLAT_TABLES_LIB_SRCS} 42*91f16700Schasinglulu 43*91f16700Schasinglulu# Include GICv3 driver files 44*91f16700Schasingluluinclude drivers/arm/gic/v3/gicv3.mk 45*91f16700Schasinglulu 46*91f16700Schasingluluifneq (${RESET_TO_BL31}, 1) 47*91f16700SchasingluluBL2_SOURCES += common/desc_image_load.c \ 48*91f16700Schasinglulu drivers/io/io_fip.c \ 49*91f16700Schasinglulu drivers/io/io_memmap.c \ 50*91f16700Schasinglulu drivers/io/io_storage.c \ 51*91f16700Schasinglulu $(PLAT_PATH)/sq_bl2_setup.c \ 52*91f16700Schasinglulu $(PLAT_PATH)/sq_image_desc.c \ 53*91f16700Schasinglulu $(PLAT_PATH)/sq_io_storage.c 54*91f16700Schasinglulu 55*91f16700Schasingluluifeq (${TRUSTED_BOARD_BOOT},1) 56*91f16700Schasingluluinclude drivers/auth/mbedtls/mbedtls_crypto.mk 57*91f16700Schasingluluinclude drivers/auth/mbedtls/mbedtls_x509.mk 58*91f16700SchasingluluBL2_SOURCES += drivers/auth/auth_mod.c \ 59*91f16700Schasinglulu drivers/auth/crypto_mod.c \ 60*91f16700Schasinglulu drivers/auth/img_parser_mod.c \ 61*91f16700Schasinglulu drivers/auth/tbbr/tbbr_cot_common.c \ 62*91f16700Schasinglulu drivers/auth/tbbr/tbbr_cot_bl2.c \ 63*91f16700Schasinglulu plat/common/tbbr/plat_tbbr.c \ 64*91f16700Schasinglulu $(PLAT_PATH)/sq_rotpk.S \ 65*91f16700Schasinglulu $(PLAT_PATH)/sq_tbbr.c 66*91f16700Schasinglulu 67*91f16700SchasingluluROT_KEY = $(BUILD_PLAT)/rot_key.pem 68*91f16700SchasingluluROTPK_HASH = $(BUILD_PLAT)/rotpk_sha256.bin 69*91f16700Schasinglulu 70*91f16700Schasinglulu$(eval $(call add_define_val,ROTPK_HASH,'"$(ROTPK_HASH)"')) 71*91f16700Schasinglulu$(BUILD_PLAT)/bl2/sq_rotpk.o: $(ROTPK_HASH) 72*91f16700Schasinglulu 73*91f16700Schasinglulucertificates: $(ROT_KEY) 74*91f16700Schasinglulu$(ROT_KEY): | $(BUILD_PLAT) 75*91f16700Schasinglulu @echo " OPENSSL $@" 76*91f16700Schasinglulu $(Q)${OPENSSL_BIN_PATH}/openssl genrsa 2048 > $@ 2>/dev/null 77*91f16700Schasinglulu 78*91f16700Schasinglulu$(ROTPK_HASH): $(ROT_KEY) 79*91f16700Schasinglulu @echo " OPENSSL $@" 80*91f16700Schasinglulu $(Q)${OPENSSL_BIN_PATH}/openssl rsa -in $< -pubout -outform DER 2>/dev/null |\ 81*91f16700Schasinglulu ${OPENSSL_BIN_PATH}/openssl dgst -sha256 -binary > $@ 2>/dev/null 82*91f16700Schasinglulu 83*91f16700Schasingluluendif # TRUSTED_BOARD_BOOT 84*91f16700Schasingluluendif 85*91f16700Schasinglulu 86*91f16700SchasingluluBL31_SOURCES += drivers/arm/ccn/ccn.c \ 87*91f16700Schasinglulu ${GICV3_SOURCES} \ 88*91f16700Schasinglulu plat/common/plat_gicv3.c \ 89*91f16700Schasinglulu plat/common/plat_psci_common.c \ 90*91f16700Schasinglulu $(PLAT_PATH)/sq_bl31_setup.c \ 91*91f16700Schasinglulu $(PLAT_PATH)/sq_ccn.c \ 92*91f16700Schasinglulu $(PLAT_PATH)/sq_topology.c \ 93*91f16700Schasinglulu $(PLAT_PATH)/sq_psci.c \ 94*91f16700Schasinglulu $(PLAT_PATH)/sq_gicv3.c \ 95*91f16700Schasinglulu $(PLAT_PATH)/drivers/scp/sq_scp.c 96*91f16700Schasinglulu 97*91f16700Schasingluluifeq (${SQ_USE_SCMI_DRIVER},0) 98*91f16700SchasingluluBL31_SOURCES += $(PLAT_PATH)/drivers/scpi/sq_scpi.c \ 99*91f16700Schasinglulu $(PLAT_PATH)/drivers/mhu/sq_mhu.c 100*91f16700Schasingluluelse 101*91f16700SchasingluluBL31_SOURCES += $(PLAT_PATH)/drivers/scp/sq_scmi.c \ 102*91f16700Schasinglulu drivers/arm/css/scmi/scmi_common.c \ 103*91f16700Schasinglulu drivers/arm/css/scmi/scmi_pwr_dmn_proto.c \ 104*91f16700Schasinglulu drivers/arm/css/scmi/scmi_sys_pwr_proto.c \ 105*91f16700Schasinglulu drivers/arm/css/scmi/vendor/scmi_sq.c \ 106*91f16700Schasinglulu drivers/arm/css/mhu/css_mhu_doorbell.c 107*91f16700Schasingluluendif 108*91f16700Schasinglulu 109*91f16700Schasingluluifeq (${SPM_MM},1) 110*91f16700Schasinglulu$(eval $(call add_define,PLAT_EXTRA_LD_SCRIPT)) 111*91f16700Schasinglulu 112*91f16700SchasingluluBL31_SOURCES += $(PLAT_PATH)/sq_spm.c 113*91f16700Schasingluluendif 114*91f16700Schasinglulu 115*91f16700Schasingluluifeq (${SQ_USE_SCMI_DRIVER},1) 116*91f16700Schasinglulu$(eval $(call add_define,SQ_USE_SCMI_DRIVER)) 117*91f16700Schasingluluendif 118