xref: /rk3399_ARM-atf/plat/qti/sc7180/platform.mk (revision 5bd9c17d023288e6b819fa3eecc01b7981399cfa)
1*5bd9c17dSSaurabh Gorecha#
2*5bd9c17dSSaurabh Gorecha# Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
3*5bd9c17dSSaurabh Gorecha# Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
4*5bd9c17dSSaurabh Gorecha#
5*5bd9c17dSSaurabh Gorecha# SPDX-License-Identifier: BSD-3-Clause
6*5bd9c17dSSaurabh Gorecha#
7*5bd9c17dSSaurabh Gorecha
8*5bd9c17dSSaurabh Gorecha# Make for SC7180 QTI platform.
9*5bd9c17dSSaurabh Gorecha
10*5bd9c17dSSaurabh GorechaQTI_PLAT_PATH		:=	plat/qti
11*5bd9c17dSSaurabh GorechaCHIPSET			:=	${PLAT}
12*5bd9c17dSSaurabh Gorecha
13*5bd9c17dSSaurabh Gorecha# Turn On Separate code & data.
14*5bd9c17dSSaurabh GorechaSEPARATE_CODE_AND_RODATA	:=	1
15*5bd9c17dSSaurabh GorechaUSE_COHERENT_MEM		:=	1
16*5bd9c17dSSaurabh GorechaWARMBOOT_ENABLE_DCACHE_EARLY	:=	1
17*5bd9c17dSSaurabh Gorecha
18*5bd9c17dSSaurabh Gorecha# Disable the PSCI platform compatibility layer
19*5bd9c17dSSaurabh GorechaENABLE_PLAT_COMPAT		:=	0
20*5bd9c17dSSaurabh Gorecha
21*5bd9c17dSSaurabh Gorecha# Enable PSCI v1.0 extended state ID format
22*5bd9c17dSSaurabh GorechaPSCI_EXTENDED_STATE_ID	:=  1
23*5bd9c17dSSaurabh GorechaARM_RECOM_STATE_ID_ENC  :=  1
24*5bd9c17dSSaurabh Gorecha
25*5bd9c17dSSaurabh GorechaCOLD_BOOT_SINGLE_CPU		:=	1
26*5bd9c17dSSaurabh GorechaPROGRAMMABLE_RESET_ADDRESS	:=	1
27*5bd9c17dSSaurabh Gorecha
28*5bd9c17dSSaurabh GorechaRESET_TO_BL31			:=	0
29*5bd9c17dSSaurabh Gorecha
30*5bd9c17dSSaurabh GorechaMULTI_CONSOLE_API		:=	1
31*5bd9c17dSSaurabh Gorecha
32*5bd9c17dSSaurabh GorechaQTI_SDI_BUILD := 0
33*5bd9c17dSSaurabh Gorecha$(eval $(call assert_boolean,QTI_SDI_BUILD))
34*5bd9c17dSSaurabh Gorecha$(eval $(call add_define,QTI_SDI_BUILD))
35*5bd9c17dSSaurabh Gorecha
36*5bd9c17dSSaurabh Gorecha#disable CTX_INCLUDE_AARCH32_REGS to support sc7180 gold cores
37*5bd9c17dSSaurabh Gorechaoverride CTX_INCLUDE_AARCH32_REGS	:=	0
38*5bd9c17dSSaurabh GorechaWORKAROUND_CVE_2017_5715		:=      0
39*5bd9c17dSSaurabh GorechaDYNAMIC_WORKAROUND_CVE_2018_3639	:=      1
40*5bd9c17dSSaurabh Gorecha# Enable stack protector.
41*5bd9c17dSSaurabh GorechaENABLE_STACK_PROTECTOR := strong
42*5bd9c17dSSaurabh Gorecha
43*5bd9c17dSSaurabh Gorecha
44*5bd9c17dSSaurabh GorechaQTI_EXTERNAL_INCLUDES	:=	-I${QTI_PLAT_PATH}/${CHIPSET}/inc			\
45*5bd9c17dSSaurabh Gorecha				-I${QTI_PLAT_PATH}/common/inc				\
46*5bd9c17dSSaurabh Gorecha				-I${QTI_PLAT_PATH}/common/inc/$(ARCH)			\
47*5bd9c17dSSaurabh Gorecha				-I${QTI_PLAT_PATH}/qtiseclib/inc			\
48*5bd9c17dSSaurabh Gorecha				-I${QTI_PLAT_PATH}/qtiseclib/inc/${CHIPSET}			\
49*5bd9c17dSSaurabh Gorecha
50*5bd9c17dSSaurabh GorechaQTI_BL31_SOURCES	:=	$(QTI_PLAT_PATH)/common/src/$(ARCH)/qti_helpers.S	\
51*5bd9c17dSSaurabh Gorecha				$(QTI_PLAT_PATH)/common/src/$(ARCH)/qti_kryo4_silver.S	\
52*5bd9c17dSSaurabh Gorecha				$(QTI_PLAT_PATH)/common/src/$(ARCH)/qti_kryo4_gold.S	\
53*5bd9c17dSSaurabh Gorecha				$(QTI_PLAT_PATH)/common/src/$(ARCH)/qti_uart_console.S	\
54*5bd9c17dSSaurabh Gorecha				$(QTI_PLAT_PATH)/common/src/qti_stack_protector.c	\
55*5bd9c17dSSaurabh Gorecha				$(QTI_PLAT_PATH)/common/src/qti_common.c		\
56*5bd9c17dSSaurabh Gorecha				$(QTI_PLAT_PATH)/common/src/qti_bl31_setup.c		\
57*5bd9c17dSSaurabh Gorecha				$(QTI_PLAT_PATH)/common/src/qti_gic_v3.c		\
58*5bd9c17dSSaurabh Gorecha				$(QTI_PLAT_PATH)/common/src/qti_interrupt_svc.c		\
59*5bd9c17dSSaurabh Gorecha				$(QTI_PLAT_PATH)/common/src/qti_syscall.c		\
60*5bd9c17dSSaurabh Gorecha				$(QTI_PLAT_PATH)/common/src/qti_topology.c		\
61*5bd9c17dSSaurabh Gorecha				$(QTI_PLAT_PATH)/common/src/qti_pm.c			\
62*5bd9c17dSSaurabh Gorecha				$(QTI_PLAT_PATH)/qtiseclib/src/qtiseclib_cb_interface.c	\
63*5bd9c17dSSaurabh Gorecha
64*5bd9c17dSSaurabh Gorecha
65*5bd9c17dSSaurabh GorechaPLAT_INCLUDES		:=	-Iinclude/plat/common/					\
66*5bd9c17dSSaurabh Gorecha
67*5bd9c17dSSaurabh GorechaPLAT_INCLUDES		+=	${QTI_EXTERNAL_INCLUDES}
68*5bd9c17dSSaurabh Gorecha
69*5bd9c17dSSaurabh Gorechainclude lib/xlat_tables_v2/xlat_tables.mk
70*5bd9c17dSSaurabh GorechaPLAT_BL_COMMON_SOURCES	+=	${XLAT_TABLES_LIB_SRCS}					\
71*5bd9c17dSSaurabh Gorecha				plat/common/aarch64/crash_console_helpers.S    \
72*5bd9c17dSSaurabh Gorecha				common/desc_image_load.c			\
73*5bd9c17dSSaurabh Gorecha				lib/bl_aux_params/bl_aux_params.c		\
74*5bd9c17dSSaurabh Gorecha
75*5bd9c17dSSaurabh Gorechainclude lib/coreboot/coreboot.mk
76*5bd9c17dSSaurabh Gorecha
77*5bd9c17dSSaurabh Gorecha#PSCI Sources.
78*5bd9c17dSSaurabh GorechaPSCI_SOURCES		:=	plat/common/plat_psci_common.c				\
79*5bd9c17dSSaurabh Gorecha
80*5bd9c17dSSaurabh Gorecha# GIC-600 configuration
81*5bd9c17dSSaurabh GorechaGICV3_IMPL			:=	GIC600
82*5bd9c17dSSaurabh Gorecha# Include GICv3 driver files
83*5bd9c17dSSaurabh Gorechainclude drivers/arm/gic/v3/gicv3.mk
84*5bd9c17dSSaurabh Gorecha
85*5bd9c17dSSaurabh Gorecha#Timer sources
86*5bd9c17dSSaurabh GorechaTIMER_SOURCES		:=	drivers/delay_timer/generic_delay_timer.c	\
87*5bd9c17dSSaurabh Gorecha				drivers/delay_timer/delay_timer.c		\
88*5bd9c17dSSaurabh Gorecha
89*5bd9c17dSSaurabh Gorecha#GIC sources.
90*5bd9c17dSSaurabh GorechaGIC_SOURCES		:=	plat/common/plat_gicv3.c			\
91*5bd9c17dSSaurabh Gorecha				${GICV3_SOURCES}				\
92*5bd9c17dSSaurabh Gorecha
93*5bd9c17dSSaurabh GorechaBL31_SOURCES		+=	${QTI_BL31_SOURCES}					\
94*5bd9c17dSSaurabh Gorecha				${PSCI_SOURCES}						\
95*5bd9c17dSSaurabh Gorecha				${GIC_SOURCES}						\
96*5bd9c17dSSaurabh Gorecha				${TIMER_SOURCES}					\
97*5bd9c17dSSaurabh Gorecha
98*5bd9c17dSSaurabh GorechaLIB_QTI_PATH	:=	${QTI_PLAT_PATH}/qtiseclib/lib/${CHIPSET}
99*5bd9c17dSSaurabh Gorecha
100*5bd9c17dSSaurabh Gorecha
101*5bd9c17dSSaurabh Gorecha# Override this on the command line to point to the qtiseclib library which
102*5bd9c17dSSaurabh Gorecha# will be available in coreboot.org
103*5bd9c17dSSaurabh GorechaQTISECLIB_PATH ?=
104*5bd9c17dSSaurabh Gorecha
105*5bd9c17dSSaurabh Gorechaifeq ($(QTISECLIB_PATH),)
106*5bd9c17dSSaurabh Gorecha# if No lib then use stub implementation for qtiseclib interface
107*5bd9c17dSSaurabh Gorecha$(warning QTISECLIB_PATH is not provided while building, using stub implementation. \
108*5bd9c17dSSaurabh Gorecha		Please refer docs/plat/qti.rst for more details \
109*5bd9c17dSSaurabh Gorecha		THIS FIRMWARE WILL NOT BOOT!)
110*5bd9c17dSSaurabh GorechaBL31_SOURCES	+=	plat/qti/qtiseclib/src/qtiseclib_interface_stub.c
111*5bd9c17dSSaurabh Gorechaelse
112*5bd9c17dSSaurabh Gorecha# use library provided by QTISECLIB_PATH
113*5bd9c17dSSaurabh GorechaLDFLAGS += -L $(dir $(QTISECLIB_PATH))
114*5bd9c17dSSaurabh GorechaLDLIBS += -l$(patsubst lib%.a,%,$(notdir $(QTISECLIB_PATH)))
115*5bd9c17dSSaurabh Gorechaendif
116*5bd9c17dSSaurabh Gorecha
117