xref: /aosp_15_r20/external/arm-trusted-firmware/plat/qti/sc7280/platform.mk (revision 54fd6939e177f8ff529b10183254802c76df6d08)
1*54fd6939SJiyong Park#
2*54fd6939SJiyong Park# Copyright (c) 2017-2018, Arm Limited and Contributors. All rights reserved.
3*54fd6939SJiyong Park# Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
4*54fd6939SJiyong Park#
5*54fd6939SJiyong Park# SPDX-License-Identifier: BSD-3-Clause
6*54fd6939SJiyong Park#
7*54fd6939SJiyong Park
8*54fd6939SJiyong Park# Make for SC7280 QTI platform.
9*54fd6939SJiyong Park
10*54fd6939SJiyong ParkQTI_PLAT_PATH		:=	plat/qti
11*54fd6939SJiyong ParkCHIPSET			:=	${PLAT}
12*54fd6939SJiyong Park
13*54fd6939SJiyong Park# Turn On Separate code & data.
14*54fd6939SJiyong ParkSEPARATE_CODE_AND_RODATA	:=	1
15*54fd6939SJiyong ParkUSE_COHERENT_MEM		:=	1
16*54fd6939SJiyong ParkWARMBOOT_ENABLE_DCACHE_EARLY	:=	1
17*54fd6939SJiyong Park
18*54fd6939SJiyong Park# Disable the PSCI platform compatibility layer
19*54fd6939SJiyong ParkENABLE_PLAT_COMPAT		:=	0
20*54fd6939SJiyong Park
21*54fd6939SJiyong Park# Enable PSCI v1.0 extended state ID format
22*54fd6939SJiyong ParkPSCI_EXTENDED_STATE_ID	:=  1
23*54fd6939SJiyong ParkARM_RECOM_STATE_ID_ENC  :=  1
24*54fd6939SJiyong Park
25*54fd6939SJiyong ParkCOLD_BOOT_SINGLE_CPU		:=	1
26*54fd6939SJiyong ParkPROGRAMMABLE_RESET_ADDRESS	:=	1
27*54fd6939SJiyong Park
28*54fd6939SJiyong ParkRESET_TO_BL31			:=	0
29*54fd6939SJiyong Park
30*54fd6939SJiyong ParkMULTI_CONSOLE_API		:=	1
31*54fd6939SJiyong Park
32*54fd6939SJiyong ParkQTI_SDI_BUILD := 0
33*54fd6939SJiyong Park$(eval $(call assert_boolean,QTI_SDI_BUILD))
34*54fd6939SJiyong Park$(eval $(call add_define,QTI_SDI_BUILD))
35*54fd6939SJiyong Park
36*54fd6939SJiyong Park#disable CTX_INCLUDE_AARCH32_REGS to support sc7280 gold cores
37*54fd6939SJiyong Parkoverride CTX_INCLUDE_AARCH32_REGS	:=	0
38*54fd6939SJiyong ParkWORKAROUND_CVE_2017_5715		:=      0
39*54fd6939SJiyong ParkDYNAMIC_WORKAROUND_CVE_2018_3639	:=      1
40*54fd6939SJiyong Park# Enable stack protector.
41*54fd6939SJiyong ParkENABLE_STACK_PROTECTOR := strong
42*54fd6939SJiyong Park
43*54fd6939SJiyong Park
44*54fd6939SJiyong ParkQTI_EXTERNAL_INCLUDES	:=	-I${QTI_PLAT_PATH}/${CHIPSET}/inc			\
45*54fd6939SJiyong Park				-I${QTI_PLAT_PATH}/common/inc				\
46*54fd6939SJiyong Park				-I${QTI_PLAT_PATH}/common/inc/$(ARCH)			\
47*54fd6939SJiyong Park				-I${QTI_PLAT_PATH}/qtiseclib/inc			\
48*54fd6939SJiyong Park				-I${QTI_PLAT_PATH}/qtiseclib/inc/${CHIPSET}			\
49*54fd6939SJiyong Park
50*54fd6939SJiyong ParkQTI_BL31_SOURCES	:=	$(QTI_PLAT_PATH)/common/src/$(ARCH)/qti_helpers.S	\
51*54fd6939SJiyong Park				$(QTI_PLAT_PATH)/common/src/$(ARCH)/qti_kryo6_silver.S	\
52*54fd6939SJiyong Park				$(QTI_PLAT_PATH)/common/src/$(ARCH)/qti_kryo6_gold.S	\
53*54fd6939SJiyong Park				$(QTI_PLAT_PATH)/common/src/$(ARCH)/qti_uart_console.S	\
54*54fd6939SJiyong Park				$(QTI_PLAT_PATH)/common/src/pm_ps_hold.c			\
55*54fd6939SJiyong Park				$(QTI_PLAT_PATH)/common/src/qti_stack_protector.c	\
56*54fd6939SJiyong Park				$(QTI_PLAT_PATH)/common/src/qti_common.c		\
57*54fd6939SJiyong Park				$(QTI_PLAT_PATH)/common/src/qti_bl31_setup.c		\
58*54fd6939SJiyong Park				$(QTI_PLAT_PATH)/common/src/qti_gic_v3.c		\
59*54fd6939SJiyong Park				$(QTI_PLAT_PATH)/common/src/qti_interrupt_svc.c		\
60*54fd6939SJiyong Park				$(QTI_PLAT_PATH)/common/src/qti_syscall.c		\
61*54fd6939SJiyong Park				$(QTI_PLAT_PATH)/common/src/qti_topology.c		\
62*54fd6939SJiyong Park				$(QTI_PLAT_PATH)/common/src/qti_pm.c			\
63*54fd6939SJiyong Park				$(QTI_PLAT_PATH)/common/src/qti_rng.c			\
64*54fd6939SJiyong Park				$(QTI_PLAT_PATH)/common/src/spmi_arb.c			\
65*54fd6939SJiyong Park				$(QTI_PLAT_PATH)/qtiseclib/src/qtiseclib_cb_interface.c	\
66*54fd6939SJiyong Park
67*54fd6939SJiyong Park
68*54fd6939SJiyong ParkPLAT_INCLUDES		:=	-Iinclude/plat/common/					\
69*54fd6939SJiyong Park
70*54fd6939SJiyong ParkPLAT_INCLUDES		+=	${QTI_EXTERNAL_INCLUDES}
71*54fd6939SJiyong Park
72*54fd6939SJiyong Parkinclude lib/xlat_tables_v2/xlat_tables.mk
73*54fd6939SJiyong ParkPLAT_BL_COMMON_SOURCES	+=	${XLAT_TABLES_LIB_SRCS}					\
74*54fd6939SJiyong Park				plat/common/aarch64/crash_console_helpers.S    \
75*54fd6939SJiyong Park				common/desc_image_load.c			\
76*54fd6939SJiyong Park				lib/bl_aux_params/bl_aux_params.c		\
77*54fd6939SJiyong Park
78*54fd6939SJiyong Parkinclude lib/coreboot/coreboot.mk
79*54fd6939SJiyong Park
80*54fd6939SJiyong Park#PSCI Sources.
81*54fd6939SJiyong ParkPSCI_SOURCES		:=	plat/common/plat_psci_common.c				\
82*54fd6939SJiyong Park
83*54fd6939SJiyong Park# GIC-600 configuration
84*54fd6939SJiyong ParkGICV3_SUPPORT_GIC600	:=	1
85*54fd6939SJiyong Park# Include GICv3 driver files
86*54fd6939SJiyong Parkinclude drivers/arm/gic/v3/gicv3.mk
87*54fd6939SJiyong Park
88*54fd6939SJiyong Park#Timer sources
89*54fd6939SJiyong ParkTIMER_SOURCES		:=	drivers/delay_timer/generic_delay_timer.c	\
90*54fd6939SJiyong Park				drivers/delay_timer/delay_timer.c		\
91*54fd6939SJiyong Park
92*54fd6939SJiyong Park#GIC sources.
93*54fd6939SJiyong ParkGIC_SOURCES		:=	plat/common/plat_gicv3.c			\
94*54fd6939SJiyong Park				${GICV3_SOURCES}				\
95*54fd6939SJiyong Park
96*54fd6939SJiyong ParkBL31_SOURCES		+=	${QTI_BL31_SOURCES}					\
97*54fd6939SJiyong Park				${PSCI_SOURCES}						\
98*54fd6939SJiyong Park				${GIC_SOURCES}						\
99*54fd6939SJiyong Park				${TIMER_SOURCES}					\
100*54fd6939SJiyong Park
101*54fd6939SJiyong ParkLIB_QTI_PATH	:=	${QTI_PLAT_PATH}/qtiseclib/lib/${CHIPSET}
102*54fd6939SJiyong Park
103*54fd6939SJiyong Park
104*54fd6939SJiyong Park# Override this on the command line to point to the qtiseclib library which
105*54fd6939SJiyong Park# will be available in coreboot.org
106*54fd6939SJiyong ParkQTISECLIB_PATH ?=
107*54fd6939SJiyong Park
108*54fd6939SJiyong Parkifeq ($(QTISECLIB_PATH),)
109*54fd6939SJiyong Park# if No lib then use stub implementation for qtiseclib interface
110*54fd6939SJiyong Park$(warning QTISECLIB_PATH is not provided while building, using stub implementation. \
111*54fd6939SJiyong Park		Please refer docs/plat/qti.rst for more details \
112*54fd6939SJiyong Park		THIS FIRMWARE WILL NOT BOOT!)
113*54fd6939SJiyong ParkBL31_SOURCES	+=	plat/qti/qtiseclib/src/qtiseclib_interface_stub.c
114*54fd6939SJiyong Parkelse
115*54fd6939SJiyong Park# use library provided by QTISECLIB_PATH
116*54fd6939SJiyong ParkLDFLAGS += -L $(dir $(QTISECLIB_PATH))
117*54fd6939SJiyong ParkLDLIBS += -l$(patsubst lib%.a,%,$(notdir $(QTISECLIB_PATH)))
118*54fd6939SJiyong Parkendif
119*54fd6939SJiyong Park
120