xref: /rk3399_ARM-atf/plat/qti/kodiak/rb3gen2/platform.mk (revision c8e08212b85169a00b9b914b69d87529e14bdb6b)
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