xref: /rk3399_ARM-atf/plat/renesas/rcar_gen5/platform.mk (revision e0e5a311032ff7566bb4431228ec50d3f3909cc3)
1f180a3b7SHieu Nguyen#
2f180a3b7SHieu Nguyen# Copyright (c) 2025, Renesas Electronics Corporation. All rights reserved.
3f180a3b7SHieu Nguyen#
4f180a3b7SHieu Nguyen# SPDX-License-Identifier: BSD-3-Clause
5f180a3b7SHieu Nguyen#
6f180a3b7SHieu Nguyen
7f180a3b7SHieu Nguyen# Cortex A720 is ARMv9.2A and will enable all features we want
8f180a3b7SHieu NguyenARM_ARCH_MAJOR			:= 9
9f180a3b7SHieu NguyenARM_ARCH_MINOR			:= 2
10f180a3b7SHieu Nguyen
11f180a3b7SHieu NguyenPROGRAMMABLE_RESET_ADDRESS	:= 0
12f180a3b7SHieu NguyenCOLD_BOOT_SINGLE_CPU		:= 1
13f180a3b7SHieu NguyenARM_CCI_PRODUCT_ID		:= 500
14f180a3b7SHieu NguyenTRUSTED_BOARD_BOOT		:= 1
15f180a3b7SHieu NguyenRESET_TO_BL31			:= 1
16f180a3b7SHieu NguyenGENERATE_COT			:= 1
17f180a3b7SHieu NguyenENABLE_SVE_FOR_NS		:= 1
18f180a3b7SHieu NguyenENABLE_SVE_FOR_SWD		:= 0
19f180a3b7SHieu NguyenMULTI_CONSOLE_API		:= 1
20f180a3b7SHieu NguyenINIT_UNUSED_NS_EL2		:= 1
21f180a3b7SHieu Nguyen
22f180a3b7SHieu NguyenENABLE_FEAT_AMU			:= 1
23*a00fee77SMarek VasutENABLE_FEAT_AMUv1p1		:= 1
24f180a3b7SHieu NguyenENABLE_AMU_AUXILIARY_COUNTERS	:= 1
25f180a3b7SHieu Nguyen
26f180a3b7SHieu NguyenENABLE_PAUTH			:= 1
27f180a3b7SHieu NguyenCTX_INCLUDE_PAUTH_REGS		:= 1
28f180a3b7SHieu Nguyen
29f180a3b7SHieu NguyenCRASH_REPORTING			:= 1
30f180a3b7SHieu NguyenHANDLE_EA_EL3_FIRST_NS		:= 1
31f180a3b7SHieu NguyenENABLE_STACK_PROTECTOR		:= strong
32f180a3b7SHieu Nguyen
33f180a3b7SHieu NguyenCTX_INCLUDE_AARCH32_REGS	:= 0
34f180a3b7SHieu Nguyen
35f180a3b7SHieu Nguyen# Process SET_SCMI_PARAM flag
36f180a3b7SHieu Nguyen# 0:Disable(default), 1:Enable
37f180a3b7SHieu Nguyenifndef SET_SCMI_PARAM
38f180a3b7SHieu Nguyen    SET_SCMI_PARAM := 0
39f180a3b7SHieu Nguyen    $(eval $(call add_define,SET_SCMI_PARAM))
40f180a3b7SHieu Nguyenelse
41f180a3b7SHieu Nguyen    ifeq (${SET_SCMI_PARAM}, 0)
42f180a3b7SHieu Nguyen        $(eval $(call add_define,SET_SCMI_PARAM))
43f180a3b7SHieu Nguyen    else ifeq (${SET_SCMI_PARAM},1)
44f180a3b7SHieu Nguyen        $(eval $(call add_define,SET_SCMI_PARAM))
45f180a3b7SHieu Nguyen    else
46f180a3b7SHieu Nguyen        $(error "Error:SET_SCMI_PARAM=${SET_SCMI_PARAM} is not supported.")
47f180a3b7SHieu Nguyen    endif
48f180a3b7SHieu Nguyenendif
49f180a3b7SHieu Nguyen
50f180a3b7SHieu Nguyenifeq (${SPD},none)
51f180a3b7SHieu Nguyen  SPD_NONE:=1
52f180a3b7SHieu Nguyen  $(eval $(call add_define,SPD_NONE))
53f180a3b7SHieu Nguyenendif
54f180a3b7SHieu Nguyen
55f180a3b7SHieu Nguyen# LSI setting common define
56f180a3b7SHieu NguyenRCAR_X5H:=10
57f180a3b7SHieu NguyenRCAR_AUTO:=99
58f180a3b7SHieu Nguyen$(eval $(call add_define,RCAR_X5H))
59f180a3b7SHieu Nguyen$(eval $(call add_define,RCAR_AUTO))
60f180a3b7SHieu Nguyen$(eval $(call add_define,PLAT_EXTRA_LD_SCRIPT))
61f180a3b7SHieu Nguyen
62f180a3b7SHieu Nguyenifndef LSI
63f180a3b7SHieu Nguyen  $(error "Error: Unknown LSI. Please use LSI=<LSI name> to specify the LSI")
64f180a3b7SHieu Nguyenelse
65f180a3b7SHieu Nguyen  ifeq (${LSI},AUTO)
66f180a3b7SHieu Nguyen    RCAR_LSI:=${RCAR_AUTO}
67f180a3b7SHieu Nguyen  else ifeq (${LSI},X5H)
68f180a3b7SHieu Nguyen    RCAR_LSI:=${RCAR_X5H}
69f180a3b7SHieu Nguyen  else
70f180a3b7SHieu Nguyen    $(error "Error: ${LSI} is not supported.")
71f180a3b7SHieu Nguyen  endif
72f180a3b7SHieu Nguyen  $(eval $(call add_define,RCAR_LSI))
73f180a3b7SHieu Nguyenendif
74f180a3b7SHieu Nguyen
75f180a3b7SHieu Nguyen# Disable workarounds unnecessary for Cortex-A720AE
76f180a3b7SHieu NguyenWORKAROUND_CVE_2017_5715	:= 0
77f180a3b7SHieu NguyenWORKAROUND_CVE_2022_23960	:= 0
78f180a3b7SHieu NguyenERRATA_A720_AE_3699562		:= 1
79f180a3b7SHieu Nguyen
80f180a3b7SHieu NguyenUSE_COHERENT_MEM := 0
81f180a3b7SHieu NguyenHW_ASSISTED_COHERENCY := 1
82f180a3b7SHieu Nguyen
83f180a3b7SHieu NguyenPLAT_INCLUDES	:=	-Iplat/renesas/rcar_gen5/include		\
84f180a3b7SHieu Nguyen			-Iplat/renesas/rcar_gen5			\
85f180a3b7SHieu Nguyen			-Iplat/renesas/common/include			\
86f180a3b7SHieu Nguyen			-Idrivers/renesas/common/scif			\
87f180a3b7SHieu Nguyen			-Idrivers/renesas/common/timer			\
88f180a3b7SHieu Nguyen			-Idrivers/renesas/rcar_gen5/pwrc		\
89f180a3b7SHieu Nguyen			-Idrivers/arm/css/scmi				\
90f180a3b7SHieu Nguyen			-Iinclude/drivers
91f180a3b7SHieu Nguyen
92f180a3b7SHieu Nguyenifneq (${ENABLE_STACK_PROTECTOR},0)
93f180a3b7SHieu NguyenBL_COMMON_SOURCES	+=	plat/renesas/common/rcar_stack_protector.c
94f180a3b7SHieu Nguyenendif
95f180a3b7SHieu Nguyen
96f180a3b7SHieu Nguyen# R-Car Gen5 platform uses Arm GIC-Fainlight-AE,
97f180a3b7SHieu Nguyen# which is successor of GIC-700 based on GICv4.1
98f180a3b7SHieu NguyenGIC_ENABLE_V4_EXTN	:= 1
99f180a3b7SHieu NguyenGIC_EXT_INTID		:= 1
100f180a3b7SHieu Nguyen
101f180a3b7SHieu Nguyen# GIC-600 configuration
102f180a3b7SHieu NguyenGICV3_SUPPORT_GIC600	:= 1
103f180a3b7SHieu Nguyen# Include GICv3 driver files
104f180a3b7SHieu NguyenUSE_GIC_DRIVER		:= 3
105f180a3b7SHieu Nguyen
106f180a3b7SHieu NguyenBL31_SOURCES	+=	${RCAR_GIC_SOURCES}				\
107f180a3b7SHieu Nguyen			lib/cpus/aarch64/cortex_a720_ae.S		\
108f180a3b7SHieu Nguyen			plat/common/plat_psci_common.c			\
109f180a3b7SHieu Nguyen			plat/renesas/rcar_gen5/plat_topology.c		\
110f180a3b7SHieu Nguyen			plat/renesas/rcar_gen5/aarch64/plat_helpers.S	\
111f180a3b7SHieu Nguyen			plat/renesas/rcar_gen5/aarch64/platform_common.c \
112f180a3b7SHieu Nguyen			plat/renesas/rcar_gen5/bl31_plat_setup.c	\
113f180a3b7SHieu Nguyen			plat/renesas/rcar_gen5/plat_pm.c		\
114f180a3b7SHieu Nguyen			plat/renesas/rcar_gen5/plat_pm_scmi.c		\
115f180a3b7SHieu Nguyen			plat/renesas/rcar_gen5/rcar_common.c		\
116f180a3b7SHieu Nguyen			drivers/delay_timer/delay_timer.c		\
117f180a3b7SHieu Nguyen			drivers/delay_timer/generic_delay_timer.c	\
118f180a3b7SHieu Nguyen			drivers/renesas/common/scif/scif-common.c	\
119f180a3b7SHieu Nguyen			drivers/renesas/common/scif/scif_helpers.S	\
120f180a3b7SHieu Nguyen			drivers/renesas/common/timer/timer.c		\
121f180a3b7SHieu Nguyen			drivers/renesas/rcar_gen5/pwrc/pwrc.c		\
122f180a3b7SHieu Nguyen			drivers/renesas/rcar_gen5/scif/scif.c		\
123f180a3b7SHieu Nguyen			drivers/arm/cci/cci.c				\
124f180a3b7SHieu Nguyen			drivers/arm/css/scmi/scmi_common.c		\
125f180a3b7SHieu Nguyen			drivers/arm/css/scmi/scmi_pwr_dmn_proto.c	\
126f180a3b7SHieu Nguyen			drivers/arm/css/scmi/scmi_sys_pwr_proto.c
127f180a3b7SHieu Nguyen
128f180a3b7SHieu Nguyeninclude lib/xlat_tables_v2/xlat_tables.mk
129f180a3b7SHieu NguyenPLAT_BL_COMMON_SOURCES	+=	${XLAT_TABLES_LIB_SRCS}
130f180a3b7SHieu Nguyen
131f180a3b7SHieu Nguyen# Pointer Authentication sources
132f180a3b7SHieu Nguyenifeq (${ENABLE_PAUTH}, 1)
133f180a3b7SHieu NguyenPLAT_BL_COMMON_SOURCES	+=	plat/arm/common/aarch64/arm_pauth.c
134f180a3b7SHieu Nguyenendif
135f180a3b7SHieu Nguyen
136f180a3b7SHieu Nguyen# build the layout images for the bootrom and the necessary srecords
137f180a3b7SHieu Nguyenrcar: rcar_srecord
138f180a3b7SHieu Nguyendistclean realclean clean: clean_srecord
139f180a3b7SHieu Nguyen
140f180a3b7SHieu Nguyen# srecords
141f180a3b7SHieu NguyenSREC_PATH	= ${BUILD_PLAT}
142f180a3b7SHieu NguyenBL31_ELF_SRC	= ${SREC_PATH}/bl31/bl31.elf
143f180a3b7SHieu Nguyen
144f180a3b7SHieu Nguyenclean_srecord:
145f180a3b7SHieu Nguyen	@echo "clean bl31 srecs"
146f180a3b7SHieu Nguyen	rm -f ${SREC_PATH}/bl31.srec
147f180a3b7SHieu Nguyen
148f180a3b7SHieu Nguyen.PHONY: rcar_srecord
149f180a3b7SHieu Nguyenrcar_srecord: $(BL31_ELF_SRC)
150f180a3b7SHieu Nguyen	@echo "generating srec: ${SREC_PATH}/bl31.srec"
151f180a3b7SHieu Nguyen	$(Q)$($(ARCH)-oc) -O srec --srec-forceS3 ${BL31_ELF_SRC} ${SREC_PATH}/bl31.srec
152f180a3b7SHieu Nguyen
153