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