1*91f16700Schasinglulu# 2*91f16700Schasinglulu# Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu# 4*91f16700Schasinglulu# SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu# 6*91f16700Schasinglulu 7*91f16700Schasinglulu 8*91f16700Schasinglulu# By default, SCP images are needed by CSS platforms. 9*91f16700SchasingluluCSS_LOAD_SCP_IMAGES ?= 1 10*91f16700Schasinglulu 11*91f16700Schasinglulu# By default, SCMI driver is disabled for CSS platforms 12*91f16700SchasingluluCSS_USE_SCMI_SDS_DRIVER ?= 0 13*91f16700Schasinglulu 14*91f16700SchasingluluPLAT_INCLUDES += -Iinclude/plat/arm/css/common/aarch64 15*91f16700Schasinglulu 16*91f16700Schasinglulu 17*91f16700SchasingluluPLAT_BL_COMMON_SOURCES += plat/arm/css/common/${ARCH}/css_helpers.S 18*91f16700Schasinglulu 19*91f16700SchasingluluBL1_SOURCES += plat/arm/css/common/css_bl1_setup.c 20*91f16700Schasinglulu 21*91f16700SchasingluluBL2_SOURCES += plat/arm/css/common/css_bl2_setup.c 22*91f16700Schasinglulu 23*91f16700SchasingluluBL2U_SOURCES += plat/arm/css/common/css_bl2u_setup.c 24*91f16700Schasinglulu 25*91f16700SchasingluluBL31_SOURCES += plat/arm/css/common/css_pm.c \ 26*91f16700Schasinglulu plat/arm/css/common/css_topology.c 27*91f16700Schasinglulu 28*91f16700Schasingluluifeq (${CSS_USE_SCMI_SDS_DRIVER},0) 29*91f16700SchasingluluBL31_SOURCES += drivers/arm/css/mhu/css_mhu.c \ 30*91f16700Schasinglulu drivers/arm/css/scp/css_pm_scpi.c \ 31*91f16700Schasinglulu drivers/arm/css/scpi/css_scpi.c 32*91f16700Schasingluluelse 33*91f16700SchasingluluBL31_SOURCES += drivers/arm/css/mhu/css_mhu_doorbell.c \ 34*91f16700Schasinglulu drivers/arm/css/scmi/scmi_ap_core_proto.c \ 35*91f16700Schasinglulu drivers/arm/css/scmi/scmi_common.c \ 36*91f16700Schasinglulu drivers/arm/css/scmi/scmi_pwr_dmn_proto.c \ 37*91f16700Schasinglulu drivers/arm/css/scmi/scmi_sys_pwr_proto.c \ 38*91f16700Schasinglulu drivers/delay_timer/delay_timer.c \ 39*91f16700Schasinglulu drivers/arm/css/scp/css_pm_scmi.c 40*91f16700Schasingluluendif 41*91f16700Schasinglulu 42*91f16700Schasinglulu# Process CSS_LOAD_SCP_IMAGES flag 43*91f16700Schasinglulu$(eval $(call assert_boolean,CSS_LOAD_SCP_IMAGES)) 44*91f16700Schasinglulu$(eval $(call add_define,CSS_LOAD_SCP_IMAGES)) 45*91f16700Schasinglulu 46*91f16700Schasingluluifeq (${CSS_LOAD_SCP_IMAGES},1) 47*91f16700Schasinglulu NEED_SCP_BL2 := yes 48*91f16700Schasinglulu ifneq (${TRUSTED_BOARD_BOOT},0) 49*91f16700Schasinglulu $(eval $(call TOOL_ADD_IMG,scp_bl2u,--scp-fwu-cfg,FWU_)) 50*91f16700Schasinglulu endif 51*91f16700Schasinglulu 52*91f16700Schasinglulu ifeq (${CSS_USE_SCMI_SDS_DRIVER},1) 53*91f16700Schasinglulu BL2U_SOURCES += drivers/arm/css/scp/css_sds.c \ 54*91f16700Schasinglulu drivers/arm/css/sds/sds.c 55*91f16700Schasinglulu 56*91f16700Schasinglulu BL2_SOURCES += drivers/arm/css/scp/css_sds.c \ 57*91f16700Schasinglulu drivers/arm/css/sds/sds.c 58*91f16700Schasinglulu else 59*91f16700Schasinglulu BL2U_SOURCES += drivers/arm/css/mhu/css_mhu.c \ 60*91f16700Schasinglulu drivers/arm/css/scp/css_bom_bootloader.c \ 61*91f16700Schasinglulu drivers/arm/css/scpi/css_scpi.c 62*91f16700Schasinglulu 63*91f16700Schasinglulu BL2_SOURCES += drivers/arm/css/mhu/css_mhu.c \ 64*91f16700Schasinglulu drivers/arm/css/scp/css_bom_bootloader.c \ 65*91f16700Schasinglulu drivers/arm/css/scpi/css_scpi.c 66*91f16700Schasinglulu # Enable option to detect whether the SCP ROM firmware in use predates version 67*91f16700Schasinglulu # 1.7.0 and therefore, is incompatible. 68*91f16700Schasinglulu CSS_DETECT_PRE_1_7_0_SCP := 1 69*91f16700Schasinglulu 70*91f16700Schasinglulu # Process CSS_DETECT_PRE_1_7_0_SCP flag 71*91f16700Schasinglulu $(eval $(call assert_boolean,CSS_DETECT_PRE_1_7_0_SCP)) 72*91f16700Schasinglulu $(eval $(call add_define,CSS_DETECT_PRE_1_7_0_SCP)) 73*91f16700Schasinglulu endif 74*91f16700Schasingluluendif 75*91f16700Schasinglulu 76*91f16700Schasingluluifeq (${CSS_USE_SCMI_SDS_DRIVER},1) 77*91f16700Schasinglulu PLAT_BL_COMMON_SOURCES += drivers/arm/css/sds/${ARCH}/sds_helpers.S 78*91f16700Schasingluluendif 79*91f16700Schasinglulu 80*91f16700Schasinglulu# Process CSS_USE_SCMI_SDS_DRIVER flag 81*91f16700Schasinglulu$(eval $(call assert_boolean,CSS_USE_SCMI_SDS_DRIVER)) 82*91f16700Schasinglulu$(eval $(call add_define,CSS_USE_SCMI_SDS_DRIVER)) 83*91f16700Schasinglulu 84*91f16700Schasinglulu# Process CSS_NON_SECURE_UART flag 85*91f16700Schasinglulu# This undocumented build option is only to enable debug access to the UART 86*91f16700Schasinglulu# from non secure code, which is useful on some platforms. 87*91f16700Schasinglulu# Default (obviously) is off. 88*91f16700SchasingluluCSS_NON_SECURE_UART := 0 89*91f16700Schasinglulu$(eval $(call assert_boolean,CSS_NON_SECURE_UART)) 90*91f16700Schasinglulu$(eval $(call add_define,CSS_NON_SECURE_UART)) 91*91f16700Schasinglulu 92*91f16700Schasinglulu# Process CSS_SYSTEM_GRACEFUL_RESET flag 93*91f16700Schasinglulu# This build option can be used on CSS platforms that require all the CPUs 94*91f16700Schasinglulu# to execute the CPU specific power down sequence to complete a warm reboot 95*91f16700Schasinglulu# sequence in which only the CPUs are power cycled. 96*91f16700SchasingluluCSS_SYSTEM_GRACEFUL_RESET := 0 97*91f16700Schasinglulu$(eval $(call add_define,CSS_SYSTEM_GRACEFUL_RESET)) 98