1*91f16700Schasinglulu# 2*91f16700Schasinglulu# Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu# Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. 4*91f16700Schasinglulu# 5*91f16700Schasinglulu# SPDX-License-Identifier: BSD-3-Clause 6*91f16700Schasinglulu# 7*91f16700Schasinglulu 8*91f16700Schasinglulu# Make for SC7180 QTI platform. 9*91f16700Schasinglulu 10*91f16700SchasingluluQTI_PLAT_PATH := plat/qti 11*91f16700SchasingluluCHIPSET := ${PLAT} 12*91f16700Schasinglulu 13*91f16700Schasinglulu# Turn On Separate code & data. 14*91f16700SchasingluluSEPARATE_CODE_AND_RODATA := 1 15*91f16700SchasingluluUSE_COHERENT_MEM := 0 16*91f16700SchasingluluWARMBOOT_ENABLE_DCACHE_EARLY := 1 17*91f16700SchasingluluHW_ASSISTED_COHERENCY := 1 18*91f16700Schasinglulu 19*91f16700Schasinglulu# Disable the PSCI platform compatibility layer 20*91f16700SchasingluluENABLE_PLAT_COMPAT := 0 21*91f16700Schasinglulu 22*91f16700Schasinglulu#Enable errata for cortex_a55 and cortex_a76 23*91f16700SchasingluluERRATA_A55_1530923 := 1 24*91f16700SchasingluluERRATA_A76_1165522 := 1 25*91f16700Schasinglulu 26*91f16700Schasinglulu# Enable PSCI v1.0 extended state ID format 27*91f16700SchasingluluPSCI_EXTENDED_STATE_ID := 1 28*91f16700SchasingluluARM_RECOM_STATE_ID_ENC := 1 29*91f16700Schasinglulu 30*91f16700SchasingluluCOLD_BOOT_SINGLE_CPU := 1 31*91f16700SchasingluluPROGRAMMABLE_RESET_ADDRESS := 1 32*91f16700Schasinglulu 33*91f16700SchasingluluRESET_TO_BL31 := 0 34*91f16700Schasinglulu 35*91f16700SchasingluluQTI_SDI_BUILD := 0 36*91f16700Schasinglulu$(eval $(call assert_boolean,QTI_SDI_BUILD)) 37*91f16700Schasinglulu$(eval $(call add_define,QTI_SDI_BUILD)) 38*91f16700Schasinglulu 39*91f16700Schasinglulu#disable CTX_INCLUDE_AARCH32_REGS to support sc7180 gold cores 40*91f16700Schasingluluoverride CTX_INCLUDE_AARCH32_REGS := 0 41*91f16700SchasingluluWORKAROUND_CVE_2017_5715 := 0 42*91f16700SchasingluluDYNAMIC_WORKAROUND_CVE_2018_3639 := 1 43*91f16700Schasinglulu# Enable stack protector. 44*91f16700SchasingluluENABLE_STACK_PROTECTOR := strong 45*91f16700Schasinglulu 46*91f16700Schasinglulu 47*91f16700SchasingluluQTI_EXTERNAL_INCLUDES := -I${QTI_PLAT_PATH}/${CHIPSET}/inc \ 48*91f16700Schasinglulu -I${QTI_PLAT_PATH}/common/inc \ 49*91f16700Schasinglulu -I${QTI_PLAT_PATH}/common/inc/$(ARCH) \ 50*91f16700Schasinglulu -I${QTI_PLAT_PATH}/qtiseclib/inc \ 51*91f16700Schasinglulu -I${QTI_PLAT_PATH}/qtiseclib/inc/${CHIPSET} \ 52*91f16700Schasinglulu 53*91f16700SchasingluluQTI_BL31_SOURCES := $(QTI_PLAT_PATH)/common/src/$(ARCH)/qti_helpers.S \ 54*91f16700Schasinglulu $(QTI_PLAT_PATH)/common/src/$(ARCH)/qti_kryo4_silver.S \ 55*91f16700Schasinglulu $(QTI_PLAT_PATH)/common/src/$(ARCH)/qti_kryo4_gold.S \ 56*91f16700Schasinglulu $(QTI_PLAT_PATH)/common/src/$(ARCH)/qti_uart_console.S \ 57*91f16700Schasinglulu $(QTI_PLAT_PATH)/common/src/pm_ps_hold.c \ 58*91f16700Schasinglulu $(QTI_PLAT_PATH)/common/src/qti_stack_protector.c \ 59*91f16700Schasinglulu $(QTI_PLAT_PATH)/common/src/qti_common.c \ 60*91f16700Schasinglulu $(QTI_PLAT_PATH)/common/src/qti_bl31_setup.c \ 61*91f16700Schasinglulu $(QTI_PLAT_PATH)/common/src/qti_gic_v3.c \ 62*91f16700Schasinglulu $(QTI_PLAT_PATH)/common/src/qti_interrupt_svc.c \ 63*91f16700Schasinglulu $(QTI_PLAT_PATH)/common/src/qti_syscall.c \ 64*91f16700Schasinglulu $(QTI_PLAT_PATH)/common/src/qti_topology.c \ 65*91f16700Schasinglulu $(QTI_PLAT_PATH)/common/src/qti_pm.c \ 66*91f16700Schasinglulu $(QTI_PLAT_PATH)/common/src/qti_rng.c \ 67*91f16700Schasinglulu $(QTI_PLAT_PATH)/common/src/spmi_arb.c \ 68*91f16700Schasinglulu $(QTI_PLAT_PATH)/qtiseclib/src/qtiseclib_cb_interface.c \ 69*91f16700Schasinglulu 70*91f16700Schasinglulu 71*91f16700SchasingluluPLAT_INCLUDES := -Iinclude/plat/common/ \ 72*91f16700Schasinglulu 73*91f16700SchasingluluPLAT_INCLUDES += ${QTI_EXTERNAL_INCLUDES} 74*91f16700Schasinglulu 75*91f16700Schasingluluinclude lib/xlat_tables_v2/xlat_tables.mk 76*91f16700SchasingluluPLAT_BL_COMMON_SOURCES += ${XLAT_TABLES_LIB_SRCS} \ 77*91f16700Schasinglulu plat/common/aarch64/crash_console_helpers.S \ 78*91f16700Schasinglulu common/desc_image_load.c \ 79*91f16700Schasinglulu lib/bl_aux_params/bl_aux_params.c \ 80*91f16700Schasinglulu 81*91f16700Schasingluluinclude lib/coreboot/coreboot.mk 82*91f16700Schasinglulu 83*91f16700Schasinglulu#PSCI Sources. 84*91f16700SchasingluluPSCI_SOURCES := plat/common/plat_psci_common.c \ 85*91f16700Schasinglulu 86*91f16700Schasinglulu# GIC-600 configuration 87*91f16700SchasingluluGICV3_SUPPORT_GIC600 := 1 88*91f16700Schasinglulu# Include GICv3 driver files 89*91f16700Schasingluluinclude drivers/arm/gic/v3/gicv3.mk 90*91f16700Schasinglulu 91*91f16700Schasinglulu#Timer sources 92*91f16700SchasingluluTIMER_SOURCES := drivers/delay_timer/generic_delay_timer.c \ 93*91f16700Schasinglulu drivers/delay_timer/delay_timer.c \ 94*91f16700Schasinglulu 95*91f16700Schasinglulu#GIC sources. 96*91f16700SchasingluluGIC_SOURCES := plat/common/plat_gicv3.c \ 97*91f16700Schasinglulu ${GICV3_SOURCES} \ 98*91f16700Schasinglulu 99*91f16700SchasingluluCPU_SOURCES := lib/cpus/aarch64/cortex_a76.S \ 100*91f16700Schasinglulu lib/cpus/aarch64/cortex_a55.S \ 101*91f16700Schasinglulu 102*91f16700SchasingluluBL31_SOURCES += ${QTI_BL31_SOURCES} \ 103*91f16700Schasinglulu ${PSCI_SOURCES} \ 104*91f16700Schasinglulu ${GIC_SOURCES} \ 105*91f16700Schasinglulu ${TIMER_SOURCES} \ 106*91f16700Schasinglulu ${CPU_SOURCES} \ 107*91f16700Schasinglulu 108*91f16700SchasingluluLIB_QTI_PATH := ${QTI_PLAT_PATH}/qtiseclib/lib/${CHIPSET} 109*91f16700Schasinglulu 110*91f16700Schasinglulu 111*91f16700Schasinglulu# Override this on the command line to point to the qtiseclib library which 112*91f16700Schasinglulu# will be available in coreboot.org 113*91f16700SchasingluluQTISECLIB_PATH ?= 114*91f16700Schasinglulu 115*91f16700Schasingluluifeq ($(QTISECLIB_PATH),) 116*91f16700Schasinglulu# if No lib then use stub implementation for qtiseclib interface 117*91f16700Schasinglulu$(warning QTISECLIB_PATH is not provided while building, using stub implementation. \ 118*91f16700Schasinglulu Please refer docs/plat/qti.rst for more details \ 119*91f16700Schasinglulu THIS FIRMWARE WILL NOT BOOT!) 120*91f16700SchasingluluBL31_SOURCES += plat/qti/qtiseclib/src/qtiseclib_interface_stub.c 121*91f16700Schasingluluelse 122*91f16700Schasinglulu# use library provided by QTISECLIB_PATH 123*91f16700SchasingluluLDFLAGS += -L $(dir $(QTISECLIB_PATH)) 124*91f16700SchasingluluLDLIBS += -l$(patsubst lib%.a,%,$(notdir $(QTISECLIB_PATH))) 125*91f16700Schasingluluendif 126*91f16700Schasinglulu 127