1# 2# Copyright (c) 2025, Qualcomm Technologies, Inc. and/or its subsidiaries. 3# 4# SPDX-License-Identifier: BSD-3-Clause 5# 6 7# Makefile for Kodiak based RB3Gen2 QTI platform. 8 9PLAT_PATH := plat/qti 10CHIPSET := kodiak 11 12RESET_TO_BL2 := 1 13 14# Turn On Separate code & data. 15SEPARATE_CODE_AND_RODATA := 1 16USE_COHERENT_MEM := 0 17WARMBOOT_ENABLE_DCACHE_EARLY := 1 18HW_ASSISTED_COHERENCY := 1 19 20#Enable errata configs for cortex_a78 and cortex_a55 21ERRATA_A55_1530923 := 1 22ERRATA_A78_1941498 := 1 23ERRATA_A78_1951500 := 1 24 25# Enable PSCI v1.0 extended state ID format 26PSCI_EXTENDED_STATE_ID := 1 27ARM_RECOM_STATE_ID_ENC := 1 28PSCI_OS_INIT_MODE := 1 29 30# GIC-600 configuration 31GICV3_SUPPORT_GIC600 := 1 32 33COLD_BOOT_SINGLE_CPU := 1 34PROGRAMMABLE_RESET_ADDRESS := 1 35 36# Enable XPU bypass 37QTI_MSM_XPU_BYPASS := 1 38$(eval $(call add_define,QTI_MSM_XPU_BYPASS)) 39 40# Enable the dynamic translation tables library 41PLAT_XLAT_TABLES_DYNAMIC := 1 42$(eval $(call add_define,PLAT_XLAT_TABLES_DYNAMIC)) 43 44#disable CTX_INCLUDE_AARCH32_REGS to support kodiak gold cores 45override CTX_INCLUDE_AARCH32_REGS := 0 46WORKAROUND_CVE_2017_5715 := 0 47DYNAMIC_WORKAROUND_CVE_2018_3639 := 1 48# Enable stack protector. 49ENABLE_STACK_PROTECTOR := strong 50 51PLAT_INCLUDES := -Iinclude/plat/common/ \ 52 -I${PLAT_PATH}/${CHIPSET}/inc \ 53 -I${PLAT_PATH}/${CHIPSET}/${PLAT}/inc \ 54 -I${PLAT_PATH}/common/inc \ 55 -I${PLAT_PATH}/common/inc/$(ARCH) \ 56 -I${PLAT_PATH}/qtiseclib/inc \ 57 -I${PLAT_PATH}/qtiseclib/inc/${CHIPSET} 58 59include lib/xlat_tables_v2/xlat_tables.mk 60PLAT_BL_COMMON_SOURCES += common/desc_image_load.c \ 61 drivers/qti/crypto/rng.c \ 62 drivers/qti/accesscontrol/xpu.c \ 63 lib/cpus/aarch64/cortex_a78.S \ 64 lib/cpus/aarch64/cortex_a55.S \ 65 lib/bl_aux_params/bl_aux_params.c \ 66 plat/common/aarch64/crash_console_helpers.S \ 67 $(PLAT_PATH)/common/src/$(ARCH)/qti_uart_console.S \ 68 $(PLAT_PATH)/common/src/qti_stack_protector.c \ 69 $(PLAT_PATH)/common/src/qti_common.c \ 70 ${XLAT_TABLES_LIB_SRCS} 71 72BL2_SOURCES += drivers/io/io_fip.c \ 73 drivers/io/io_memmap.c \ 74 drivers/io/io_storage.c \ 75 $(PLAT_PATH)/common/src/$(ARCH)/qti_bl2_helpers.S \ 76 $(PLAT_PATH)/common/src/qti_bl2_setup.c \ 77 $(PLAT_PATH)/common/src/qti_image_desc.c \ 78 $(PLAT_PATH)/common/src/qti_io_storage.c 79 80include drivers/arm/gic/v3/gicv3.mk 81BL31_SOURCES += drivers/delay_timer/generic_delay_timer.c \ 82 drivers/delay_timer/delay_timer.c \ 83 plat/common/plat_gicv3.c \ 84 ${GICV3_SOURCES} \ 85 plat/common/plat_psci_common.c \ 86 $(PLAT_PATH)/common/src/$(ARCH)/qti_helpers.S \ 87 $(PLAT_PATH)/common/src/pm_ps_hold.c \ 88 $(PLAT_PATH)/common/src/qti_bl31_setup.c \ 89 $(PLAT_PATH)/common/src/qti_gic_v3.c \ 90 $(PLAT_PATH)/common/src/qti_interrupt_svc.c \ 91 $(PLAT_PATH)/common/src/qti_syscall.c \ 92 $(PLAT_PATH)/common/src/qti_topology.c \ 93 $(PLAT_PATH)/common/src/qti_pm.c \ 94 $(PLAT_PATH)/common/src/spmi_arb.c \ 95 $(PLAT_PATH)/qtiseclib/src/qtiseclib_cb_interface.c 96 97# Override this on the command line to point to the qtiseclib library 98QTISECLIB_PATH ?= 99 100ifeq ($(QTISECLIB_PATH),) 101# if No lib then use stub implementation for qtiseclib interface 102$(warning QTISECLIB_PATH is not provided while building, using stub implementation. \ 103 Please refer to documentation for more details \ 104 THIS FIRMWARE WILL NOT BOOT!) 105BL31_SOURCES += plat/qti/qtiseclib/src/qtiseclib_interface_stub.c 106else 107$(eval $(call add_define,QTISECLIB_PATH)) 108# use library provided by QTISECLIB_PATH 109LDFLAGS += -L $(dir $(QTISECLIB_PATH)) 110LDLIBS += -l$(patsubst lib%.a,%,$(notdir $(QTISECLIB_PATH))) 111endif 112