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