xref: /arm-trusted-firmware/plat/arm/css/common/css_common.mk (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
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