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