xref: /rk3399_ARM-atf/plat/renesas/rcar_gen4/platform.mk (revision 3c6170b649a23d60ca4dcb9d256cc3c53f90cc70)
1b45b5bacSMarek Vasut#
2b45b5bacSMarek Vasut# Copyright (c) 2018-2025, Renesas Electronics Corporation. All rights reserved.
3b45b5bacSMarek Vasut#
4b45b5bacSMarek Vasut# SPDX-License-Identifier: BSD-3-Clause
5b45b5bacSMarek Vasut#
6b45b5bacSMarek Vasut
7b45b5bacSMarek VasutPROGRAMMABLE_RESET_ADDRESS	:= 0
8b45b5bacSMarek VasutCOLD_BOOT_SINGLE_CPU		:= 1
9b45b5bacSMarek VasutARM_CCI_PRODUCT_ID		:= 500
10b45b5bacSMarek VasutTRUSTED_BOARD_BOOT		:= 1
11b45b5bacSMarek VasutRESET_TO_BL31			:= 1
12b45b5bacSMarek VasutGENERATE_COT			:= 1
13b45b5bacSMarek VasutENABLE_SVE_FOR_NS		:= 0
14b45b5bacSMarek VasutMULTI_CONSOLE_API		:= 1
15b45b5bacSMarek Vasut
16b45b5bacSMarek VasutCRASH_REPORTING			:= 1
17b45b5bacSMarek VasutHANDLE_EA_EL3_FIRST_NS		:= 1
18b45b5bacSMarek VasutENABLE_STACK_PROTECTOR	:= strong
19b45b5bacSMarek Vasut
20b45b5bacSMarek Vasutifndef PTP_NONSECURE_ACCESS
21b45b5bacSMarek Vasut  PTP_NONSECURE_ACCESS:=0
22b45b5bacSMarek Vasutendif
23b45b5bacSMarek Vasut$(eval $(call add_define,PTP_NONSECURE_ACCESS))
24b45b5bacSMarek Vasut
25b45b5bacSMarek Vasutifeq (${SPD},none)
26b45b5bacSMarek Vasut  SPD_NONE:=1
27b45b5bacSMarek Vasut  $(eval $(call add_define,SPD_NONE))
28b45b5bacSMarek Vasutendif
29b45b5bacSMarek Vasut
30b45b5bacSMarek Vasut# LSI setting common define
31b45b5bacSMarek VasutRCAR_S4:=9
32b45b5bacSMarek VasutRCAR_V3U:=10
33b45b5bacSMarek VasutRCAR_V4H:=11
34b45b5bacSMarek VasutRCAR_V4M:=12
35b45b5bacSMarek VasutRCAR_AUTO:=99
36b45b5bacSMarek Vasut$(eval $(call add_define,RCAR_S4))
37b45b5bacSMarek Vasut$(eval $(call add_define,RCAR_V3U))
38b45b5bacSMarek Vasut$(eval $(call add_define,RCAR_V4H))
39b45b5bacSMarek Vasut$(eval $(call add_define,RCAR_V4M))
40b45b5bacSMarek Vasut$(eval $(call add_define,RCAR_AUTO))
41b45b5bacSMarek Vasut$(eval $(call add_define,PLAT_EXTRA_LD_SCRIPT))
42b45b5bacSMarek Vasut
43b45b5bacSMarek Vasutifndef LSI
44b45b5bacSMarek Vasut  $(error "Error: Unknown LSI. Please use LSI=<LSI name> to specify the LSI")
45b45b5bacSMarek Vasutelse
46b45b5bacSMarek Vasut  ifeq (${LSI},AUTO)
47b45b5bacSMarek Vasut    RCAR_LSI:=${RCAR_AUTO}
48b45b5bacSMarek Vasut  else ifeq (${LSI},S4)
49b45b5bacSMarek Vasut    RCAR_LSI:=${RCAR_S4}
50b45b5bacSMarek Vasut  else ifeq (${LSI},V3U)
51b45b5bacSMarek Vasut    RCAR_LSI:=${RCAR_V3U}
52b45b5bacSMarek Vasut  else ifeq (${LSI},V4H)
53b45b5bacSMarek Vasut    RCAR_LSI:=${RCAR_V4H}
54b45b5bacSMarek Vasut  else ifeq (${LSI},V4M)
55b45b5bacSMarek Vasut    RCAR_LSI:=${RCAR_V4M}
56b45b5bacSMarek Vasut  else
57b45b5bacSMarek Vasut    $(error "Error: ${LSI} is not supported.")
58b45b5bacSMarek Vasut  endif
59b45b5bacSMarek Vasut  $(eval $(call add_define,RCAR_LSI))
60b45b5bacSMarek Vasutendif
61b45b5bacSMarek Vasut
62b45b5bacSMarek Vasutifeq (${RCAR_LSI},${RCAR_S4})
63b45b5bacSMarek Vasut# Enable workarounds for selected Cortex-A55 errata.
64b45b5bacSMarek VasutERRATA_A55_1530923 := 1
65b45b5bacSMarek VasutBL31_SOURCES += lib/cpus/aarch64/cortex_a55.S
66b45b5bacSMarek Vasutelse
67b45b5bacSMarek Vasut# Enable workarounds for selected Cortex-A76 errata.
68b45b5bacSMarek VasutDYNAMIC_WORKAROUND_CVE_2018_3639 := 1
69b45b5bacSMarek VasutERRATA_A76_1073348  :=1
70b45b5bacSMarek VasutERRATA_A76_1130799  :=1
71b45b5bacSMarek VasutERRATA_A76_1220197  :=1
72b45b5bacSMarek VasutERRATA_A76_1257314  :=1
73b45b5bacSMarek VasutERRATA_A76_1262606  :=1
74b45b5bacSMarek VasutERRATA_A76_1262888  :=1
75b45b5bacSMarek VasutERRATA_A76_1275112  :=1
76b45b5bacSMarek VasutERRATA_A76_1286807  :=1
77b45b5bacSMarek VasutERRATA_A76_1946160  :=1
78b45b5bacSMarek VasutERRATA_A76_2743102  :=1
79b45b5bacSMarek Vasut
80b45b5bacSMarek VasutBL31_SOURCES +=	lib/cpus/aarch64/cortex_a76.S
81b45b5bacSMarek Vasutendif
82b45b5bacSMarek Vasut
83b45b5bacSMarek VasutUSE_COHERENT_MEM := 0
84b45b5bacSMarek VasutHW_ASSISTED_COHERENCY := 1
85b45b5bacSMarek Vasut
86b45b5bacSMarek VasutPLAT_INCLUDES	:=	-Iplat/renesas/rcar_gen4/include		\
87b45b5bacSMarek Vasut			-Iplat/renesas/rcar_gen4			\
88*3c6170b6SMarek Vasut			-Idrivers/renesas/common/scif			\
8992196d4fSMarek Vasut			-Idrivers/renesas/common/timer			\
90b45b5bacSMarek Vasut			-Idrivers/renesas/rcar_gen4/pwrc		\
91b45b5bacSMarek Vasut			-Idrivers/renesas/rcar_gen4/ptp			\
92b45b5bacSMarek Vasut			-Idrivers/renesas/rcar_gen4/mssr
93b45b5bacSMarek Vasut
94b45b5bacSMarek Vasutifneq (${ENABLE_STACK_PROTECTOR},0)
95223d989eSMarek VasutBL_COMMON_SOURCES	+=	plat/renesas/common/rcar_stack_protector.c
96b45b5bacSMarek Vasutendif
97b45b5bacSMarek Vasut
98b45b5bacSMarek Vasut# GIC-600 configuration
99b45b5bacSMarek Vasut#GICV3_IMPL := GIC600
100b45b5bacSMarek VasutGICV3_SUPPORT_GIC600 := 1
101b45b5bacSMarek Vasut# Include GICv3 driver files
102b45b5bacSMarek VasutUSE_GIC_DRIVER := 3
103b45b5bacSMarek Vasut
104b45b5bacSMarek VasutBL31_SOURCES	+=	${RCAR_GIC_SOURCES}				\
105b45b5bacSMarek Vasut			plat/common/plat_psci_common.c			\
106b45b5bacSMarek Vasut			plat/renesas/rcar_gen4/plat_topology.c		\
107b45b5bacSMarek Vasut			plat/renesas/rcar_gen4/aarch64/plat_helpers.S	\
108b45b5bacSMarek Vasut			plat/renesas/rcar_gen4/aarch64/platform_common.c \
109b45b5bacSMarek Vasut			plat/renesas/rcar_gen4/bl31_plat_setup.c	\
110b45b5bacSMarek Vasut			plat/renesas/rcar_gen4/plat_pm.c		\
111b45b5bacSMarek Vasut			plat/renesas/rcar_gen4/rcar_common.c		\
112b45b5bacSMarek Vasut			drivers/delay_timer/delay_timer.c		\
113b45b5bacSMarek Vasut			drivers/delay_timer/generic_delay_timer.c	\
11457e22e07SMarek Vasut			drivers/renesas/common/pwrc/call_sram.S		\
115*3c6170b6SMarek Vasut			drivers/renesas/common/scif/scif-common.c	\
1169979a20aSMarek Vasut			drivers/renesas/common/scif/scif_helpers.S	\
11792196d4fSMarek Vasut			drivers/renesas/common/timer/timer.c		\
118b45b5bacSMarek Vasut			drivers/renesas/rcar_gen4/pwrc/pwrc.c		\
119b45b5bacSMarek Vasut			drivers/renesas/rcar_gen4/scif/scif.c		\
120b45b5bacSMarek Vasut			drivers/renesas/rcar_gen4/mssr/mssr.c		\
121b45b5bacSMarek Vasut			drivers/renesas/rcar_gen4/ptp/ptp.c		\
122b45b5bacSMarek Vasut			drivers/arm/cci/cci.c
123b45b5bacSMarek Vasut
124b45b5bacSMarek Vasutinclude lib/xlat_tables_v2/xlat_tables.mk
125b45b5bacSMarek VasutPLAT_BL_COMMON_SOURCES	+=	${XLAT_TABLES_LIB_SRCS}
126b45b5bacSMarek Vasut
127b45b5bacSMarek Vasut# build the layout images for the bootrom and the necessary srecords
128b45b5bacSMarek Vasutrcar: rcar_srecord
129b45b5bacSMarek Vasutdistclean realclean clean: clean_srecord
130b45b5bacSMarek Vasut
131b45b5bacSMarek Vasut# srecords
132b45b5bacSMarek VasutSREC_PATH	= ${BUILD_PLAT}
133b45b5bacSMarek VasutBL31_ELF_SRC	= ${SREC_PATH}/bl31/bl31.elf
134b45b5bacSMarek Vasut
135b45b5bacSMarek Vasutclean_srecord:
136b45b5bacSMarek Vasut	@echo "clean bl31 srecs"
137b45b5bacSMarek Vasut	rm -f ${SREC_PATH}/bl31.srec
138b45b5bacSMarek Vasut
139b45b5bacSMarek Vasut.PHONY: rcar_srecord
140b45b5bacSMarek Vasutrcar_srecord: $(BL31_ELF_SRC)
141b45b5bacSMarek Vasut	@echo "generating srec: ${SREC_PATH}/bl31.srec"
142b45b5bacSMarek Vasut	$(Q)$($(ARCH)-oc) -O srec --srec-forceS3 ${BL31_ELF_SRC} ${SREC_PATH}/bl31.srec
143b45b5bacSMarek Vasut
144