1*7e532c4bSJorge Ramirez-Ortiz# 2*7e532c4bSJorge Ramirez-Ortiz# Copyright (c) 2018, Renesas Electronics Corporation. All rights reserved. 3*7e532c4bSJorge Ramirez-Ortiz# 4*7e532c4bSJorge Ramirez-Ortiz# SPDX-License-Identifier: BSD-3-Clause 5*7e532c4bSJorge Ramirez-Ortiz# 6*7e532c4bSJorge Ramirez-Ortiz 7*7e532c4bSJorge Ramirez-OrtizPROGRAMMABLE_RESET_ADDRESS := 0 8*7e532c4bSJorge Ramirez-OrtizCOLD_BOOT_SINGLE_CPU := 1 9*7e532c4bSJorge Ramirez-OrtizARM_CCI_PRODUCT_ID := 500 10*7e532c4bSJorge Ramirez-OrtizTRUSTED_BOARD_BOOT := 1 11*7e532c4bSJorge Ramirez-OrtizRESET_TO_BL31 := 1 12*7e532c4bSJorge Ramirez-OrtizGENERATE_COT := 1 13*7e532c4bSJorge Ramirez-OrtizBL2_AT_EL3 := 1 14*7e532c4bSJorge Ramirez-Ortiz 15*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,PLAT_EXTRA_LD_SCRIPT)) 16*7e532c4bSJorge Ramirez-Ortiz 17*7e532c4bSJorge Ramirez-Ortizifeq (${SPD},none) 18*7e532c4bSJorge Ramirez-Ortiz SPD_NONE:=1 19*7e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,SPD_NONE)) 20*7e532c4bSJorge Ramirez-Ortizendif 21*7e532c4bSJorge Ramirez-Ortiz 22*7e532c4bSJorge Ramirez-Ortiz# LSI setting common define 23*7e532c4bSJorge Ramirez-OrtizRCAR_H3:=0 24*7e532c4bSJorge Ramirez-OrtizRCAR_M3:=1 25*7e532c4bSJorge Ramirez-OrtizRCAR_M3N:=2 26*7e532c4bSJorge Ramirez-OrtizRCAR_E3:=3 27*7e532c4bSJorge Ramirez-OrtizRCAR_H3N:=4 28*7e532c4bSJorge Ramirez-OrtizRCAR_AUTO:=99 29*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_H3)) 30*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_M3)) 31*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_M3N)) 32*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_E3)) 33*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_H3N)) 34*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_AUTO)) 35*7e532c4bSJorge Ramirez-OrtizRCAR_CUT_10:=0 36*7e532c4bSJorge Ramirez-OrtizRCAR_CUT_11:=1 37*7e532c4bSJorge Ramirez-OrtizRCAR_CUT_20:=10 38*7e532c4bSJorge Ramirez-OrtizRCAR_CUT_30:=20 39*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_CUT_10)) 40*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_CUT_11)) 41*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_CUT_20)) 42*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_CUT_30)) 43*7e532c4bSJorge Ramirez-Ortiz 44*7e532c4bSJorge Ramirez-Ortizifndef LSI 45*7e532c4bSJorge Ramirez-Ortiz $(error "Error: Unknown LSI. Please use LSI=<LSI name> to specify the LSI") 46*7e532c4bSJorge Ramirez-Ortizelse 47*7e532c4bSJorge Ramirez-Ortiz ifeq (${LSI},AUTO) 48*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI:=${RCAR_AUTO} 49*7e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI},H3) 50*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI:=${RCAR_H3} 51*7e532c4bSJorge Ramirez-Ortiz ifndef LSI_CUT 52*7e532c4bSJorge Ramirez-Ortiz # enable compatible function. 53*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT_COMPAT := 1 54*7e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT_COMPAT)) 55*7e532c4bSJorge Ramirez-Ortiz else 56*7e532c4bSJorge Ramirez-Ortiz # disable compatible function. 57*7e532c4bSJorge Ramirez-Ortiz ifeq (${LSI_CUT},10) 58*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=0 59*7e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI_CUT},11) 60*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=1 61*7e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI_CUT},20) 62*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=10 63*7e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI_CUT},30) 64*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=20 65*7e532c4bSJorge Ramirez-Ortiz else 66*7e532c4bSJorge Ramirez-Ortiz $(error "Error: ${LSI_CUT} is not supported.") 67*7e532c4bSJorge Ramirez-Ortiz endif 68*7e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT)) 69*7e532c4bSJorge Ramirez-Ortiz endif 70*7e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI},H3N) 71*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI:=${RCAR_H3N} 72*7e532c4bSJorge Ramirez-Ortiz ifndef LSI_CUT 73*7e532c4bSJorge Ramirez-Ortiz # enable compatible function. 74*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT_COMPAT := 1 75*7e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT_COMPAT)) 76*7e532c4bSJorge Ramirez-Ortiz else 77*7e532c4bSJorge Ramirez-Ortiz # disable compatible function. 78*7e532c4bSJorge Ramirez-Ortiz ifeq (${LSI_CUT},30) 79*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=20 80*7e532c4bSJorge Ramirez-Ortiz else 81*7e532c4bSJorge Ramirez-Ortiz $(error "Error: ${LSI_CUT} is not supported.") 82*7e532c4bSJorge Ramirez-Ortiz endif 83*7e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT)) 84*7e532c4bSJorge Ramirez-Ortiz endif 85*7e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI},M3) 86*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI:=${RCAR_M3} 87*7e532c4bSJorge Ramirez-Ortiz ifndef LSI_CUT 88*7e532c4bSJorge Ramirez-Ortiz # enable compatible function. 89*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT_COMPAT := 1 90*7e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT_COMPAT)) 91*7e532c4bSJorge Ramirez-Ortiz else 92*7e532c4bSJorge Ramirez-Ortiz # disable compatible function. 93*7e532c4bSJorge Ramirez-Ortiz ifeq (${LSI_CUT},10) 94*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=0 95*7e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI_CUT},11) 96*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=1 97*7e532c4bSJorge Ramirez-Ortiz else 98*7e532c4bSJorge Ramirez-Ortiz $(error "Error: ${LSI_CUT} is not supported.") 99*7e532c4bSJorge Ramirez-Ortiz endif 100*7e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT)) 101*7e532c4bSJorge Ramirez-Ortiz endif 102*7e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI},M3N) 103*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI:=${RCAR_M3N} 104*7e532c4bSJorge Ramirez-Ortiz ifndef LSI_CUT 105*7e532c4bSJorge Ramirez-Ortiz # enable compatible function. 106*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT_COMPAT := 1 107*7e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT_COMPAT)) 108*7e532c4bSJorge Ramirez-Ortiz else 109*7e532c4bSJorge Ramirez-Ortiz # disable compatible function. 110*7e532c4bSJorge Ramirez-Ortiz ifeq (${LSI_CUT},10) 111*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=0 112*7e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI_CUT},11) 113*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=1 114*7e532c4bSJorge Ramirez-Ortiz else 115*7e532c4bSJorge Ramirez-Ortiz $(error "Error: ${LSI_CUT} is not supported.") 116*7e532c4bSJorge Ramirez-Ortiz endif 117*7e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT)) 118*7e532c4bSJorge Ramirez-Ortiz endif 119*7e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI},E3) 120*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI:=${RCAR_E3} 121*7e532c4bSJorge Ramirez-Ortiz ifndef LSI_CUT 122*7e532c4bSJorge Ramirez-Ortiz # enable compatible function. 123*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT_COMPAT := 1 124*7e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT_COMPAT)) 125*7e532c4bSJorge Ramirez-Ortiz else 126*7e532c4bSJorge Ramirez-Ortiz # disable compatible function. 127*7e532c4bSJorge Ramirez-Ortiz ifeq (${LSI_CUT},10) 128*7e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=0 129*7e532c4bSJorge Ramirez-Ortiz else 130*7e532c4bSJorge Ramirez-Ortiz $(error "Error: ${LSI_CUT} is not supported.") 131*7e532c4bSJorge Ramirez-Ortiz endif 132*7e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT)) 133*7e532c4bSJorge Ramirez-Ortiz endif 134*7e532c4bSJorge Ramirez-Ortiz else 135*7e532c4bSJorge Ramirez-Ortiz $(error "Error: ${LSI} is not supported.") 136*7e532c4bSJorge Ramirez-Ortiz endif 137*7e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI)) 138*7e532c4bSJorge Ramirez-Ortizendif 139*7e532c4bSJorge Ramirez-Ortiz 140*7e532c4bSJorge Ramirez-Ortiz# Process RCAR_SECURE_BOOT flag 141*7e532c4bSJorge Ramirez-Ortizifndef RCAR_SECURE_BOOT 142*7e532c4bSJorge Ramirez-OrtizRCAR_SECURE_BOOT := 1 143*7e532c4bSJorge Ramirez-Ortizendif 144*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SECURE_BOOT)) 145*7e532c4bSJorge Ramirez-Ortiz 146*7e532c4bSJorge Ramirez-Ortiz# Process RCAR_QOS_TYPE flag 147*7e532c4bSJorge Ramirez-Ortizifndef RCAR_QOS_TYPE 148*7e532c4bSJorge Ramirez-OrtizRCAR_QOS_TYPE := 0 149*7e532c4bSJorge Ramirez-Ortizendif 150*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_QOS_TYPE)) 151*7e532c4bSJorge Ramirez-Ortiz 152*7e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_SPLIT flag 153*7e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_SPLIT 154*7e532c4bSJorge Ramirez-OrtizRCAR_DRAM_SPLIT := 0 155*7e532c4bSJorge Ramirez-Ortizendif 156*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_SPLIT)) 157*7e532c4bSJorge Ramirez-Ortiz 158*7e532c4bSJorge Ramirez-Ortiz# Process RCAR_BL33_EXECUTION_EL flag 159*7e532c4bSJorge Ramirez-Ortizifndef RCAR_BL33_EXECUTION_EL 160*7e532c4bSJorge Ramirez-OrtizRCAR_BL33_EXECUTION_EL := 0 161*7e532c4bSJorge Ramirez-Ortizendif 162*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_BL33_EXECUTION_EL)) 163*7e532c4bSJorge Ramirez-Ortiz 164*7e532c4bSJorge Ramirez-Ortiz# Process RCAR_AVS_SETTING_ENABLE flag 165*7e532c4bSJorge Ramirez-Ortizifeq (${RCAR_AVS_SETTING_ENABLE},0) 166*7e532c4bSJorge Ramirez-OrtizAVS_SETTING_ENABLE := 0 167*7e532c4bSJorge Ramirez-Ortizelse 168*7e532c4bSJorge Ramirez-OrtizAVS_SETTING_ENABLE := 1 169*7e532c4bSJorge Ramirez-Ortizendif 170*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,AVS_SETTING_ENABLE)) 171*7e532c4bSJorge Ramirez-Ortiz 172*7e532c4bSJorge Ramirez-Ortiz# Process RCAR_LOSSY_ENABLE flag 173*7e532c4bSJorge Ramirez-Ortizifndef RCAR_LOSSY_ENABLE 174*7e532c4bSJorge Ramirez-OrtizRCAR_LOSSY_ENABLE := 0 175*7e532c4bSJorge Ramirez-Ortizendif 176*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_LOSSY_ENABLE)) 177*7e532c4bSJorge Ramirez-Ortiz 178*7e532c4bSJorge Ramirez-Ortiz# Process LIFEC_DBSC_PROTECT_ENABLE flag 179*7e532c4bSJorge Ramirez-Ortizifndef LIFEC_DBSC_PROTECT_ENABLE 180*7e532c4bSJorge Ramirez-OrtizLIFEC_DBSC_PROTECT_ENABLE := 1 181*7e532c4bSJorge Ramirez-Ortizendif 182*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,LIFEC_DBSC_PROTECT_ENABLE)) 183*7e532c4bSJorge Ramirez-Ortiz 184*7e532c4bSJorge Ramirez-Ortiz# Process PMIC_ROHM_BD9571 flag 185*7e532c4bSJorge Ramirez-Ortizifndef PMIC_ROHM_BD9571 186*7e532c4bSJorge Ramirez-OrtizPMIC_ROHM_BD9571 := 1 187*7e532c4bSJorge Ramirez-Ortizendif 188*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,PMIC_ROHM_BD9571)) 189*7e532c4bSJorge Ramirez-Ortiz 190*7e532c4bSJorge Ramirez-Ortiz# Process PMIC_LEVEL_MODE flag 191*7e532c4bSJorge Ramirez-Ortizifndef PMIC_LEVEL_MODE 192*7e532c4bSJorge Ramirez-OrtizPMIC_LEVEL_MODE := 1 193*7e532c4bSJorge Ramirez-Ortizendif 194*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,PMIC_LEVEL_MODE)) 195*7e532c4bSJorge Ramirez-Ortiz 196*7e532c4bSJorge Ramirez-Ortiz# Process RCAR_GEN3_ULCB flag 197*7e532c4bSJorge Ramirez-Ortizifndef RCAR_GEN3_ULCB 198*7e532c4bSJorge Ramirez-OrtizRCAR_GEN3_ULCB := 0 199*7e532c4bSJorge Ramirez-Ortizendif 200*7e532c4bSJorge Ramirez-Ortizifeq (${RCAR_GEN3_ULCB},1) 201*7e532c4bSJorge Ramirez-Ortiz BOARD_DEFAULT := 0x10 202*7e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,BOARD_DEFAULT)) 203*7e532c4bSJorge Ramirez-Ortizendif 204*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_GEN3_ULCB)) 205*7e532c4bSJorge Ramirez-Ortiz 206*7e532c4bSJorge Ramirez-Ortiz# Process RCAR_REF_INT flag 207*7e532c4bSJorge Ramirez-Ortizifndef RCAR_REF_INT 208*7e532c4bSJorge Ramirez-OrtizRCAR_REF_INT :=0 209*7e532c4bSJorge Ramirez-Ortizendif 210*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_REF_INT)) 211*7e532c4bSJorge Ramirez-Ortiz 212*7e532c4bSJorge Ramirez-Ortiz# Process RCAR_REWT_TRAINING flag 213*7e532c4bSJorge Ramirez-Ortizifndef RCAR_REWT_TRAINING 214*7e532c4bSJorge Ramirez-OrtizRCAR_REWT_TRAINING := 0 215*7e532c4bSJorge Ramirez-Ortizendif 216*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_REWT_TRAINING)) 217*7e532c4bSJorge Ramirez-Ortiz 218*7e532c4bSJorge Ramirez-Ortiz# Process RCAR_SYSTEM_SUSPEND flag 219*7e532c4bSJorge Ramirez-Ortizifndef RCAR_SYSTEM_SUSPEND 220*7e532c4bSJorge Ramirez-OrtizRCAR_SYSTEM_SUSPEND := 1 221*7e532c4bSJorge Ramirez-Ortizendif 222*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SYSTEM_SUSPEND)) 223*7e532c4bSJorge Ramirez-Ortiz 224*7e532c4bSJorge Ramirez-Ortiz# SYSTEM_SUSPEND requires power control of PMIC etc. 225*7e532c4bSJorge Ramirez-Ortiz# When executing SYSTEM_SUSPEND other than Salvator-X, Salvator-XS and Ebisu, 226*7e532c4bSJorge Ramirez-Ortiz# processing equivalent to that implemented in PMIC_ROHM_BD9571 is necessary. 227*7e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SYSTEM_SUSPEND},1) 228*7e532c4bSJorge Ramirez-Ortiz ifeq (${PMIC_ROHM_BD9571},0) 229*7e532c4bSJorge Ramirez-Ortiz $(error "Error: When you want RCAR_SYSTEM_SUSPEND to be enable, please also set PMIC_ROHM_BD9571 to enable.") 230*7e532c4bSJorge Ramirez-Ortiz endif 231*7e532c4bSJorge Ramirez-Ortizendif 232*7e532c4bSJorge Ramirez-Ortiz 233*7e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_LPDDR4_MEMCONF flag 234*7e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_LPDDR4_MEMCONF 235*7e532c4bSJorge Ramirez-OrtizRCAR_DRAM_LPDDR4_MEMCONF :=1 236*7e532c4bSJorge Ramirez-Ortizendif 237*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_LPDDR4_MEMCONF)) 238*7e532c4bSJorge Ramirez-Ortiz 239*7e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_DDR3L_MEMCONF flag 240*7e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_DDR3L_MEMCONF 241*7e532c4bSJorge Ramirez-OrtizRCAR_DRAM_DDR3L_MEMCONF :=1 242*7e532c4bSJorge Ramirez-Ortizendif 243*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_DDR3L_MEMCONF)) 244*7e532c4bSJorge Ramirez-Ortiz 245*7e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_DDR3L_MEMDUAL flag 246*7e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_DDR3L_MEMDUAL 247*7e532c4bSJorge Ramirez-OrtizRCAR_DRAM_DDR3L_MEMDUAL :=1 248*7e532c4bSJorge Ramirez-Ortizendif 249*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_DDR3L_MEMDUAL)) 250*7e532c4bSJorge Ramirez-Ortiz 251*7e532c4bSJorge Ramirez-Ortiz# Process RCAR_BL33_ARG0 flag 252*7e532c4bSJorge Ramirez-Ortizifdef RCAR_BL33_ARG0 253*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_BL33_ARG0)) 254*7e532c4bSJorge Ramirez-Ortizendif 255*7e532c4bSJorge Ramirez-Ortiz 256*7e532c4bSJorge Ramirez-Ortiz#Process RCAR_BL2_DCACHE flag 257*7e532c4bSJorge Ramirez-Ortizifndef RCAR_BL2_DCACHE 258*7e532c4bSJorge Ramirez-OrtizRCAR_BL2_DCACHE := 0 259*7e532c4bSJorge Ramirez-Ortizendif 260*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_BL2_DCACHE)) 261*7e532c4bSJorge Ramirez-Ortiz 262*7e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_CHANNEL flag 263*7e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_CHANNEL 264*7e532c4bSJorge Ramirez-OrtizRCAR_DRAM_CHANNEL :=15 265*7e532c4bSJorge Ramirez-Ortizendif 266*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_CHANNEL)) 267*7e532c4bSJorge Ramirez-Ortiz 268*7e532c4bSJorge Ramirez-Ortiz#Process RCAR_SYSTEM_RESET_KEEPON_DDR flag 269*7e532c4bSJorge Ramirez-Ortizifndef RCAR_SYSTEM_RESET_KEEPON_DDR 270*7e532c4bSJorge Ramirez-OrtizRCAR_SYSTEM_RESET_KEEPON_DDR := 0 271*7e532c4bSJorge Ramirez-Ortizendif 272*7e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SYSTEM_RESET_KEEPON_DDR)) 273*7e532c4bSJorge Ramirez-Ortiz 274*7e532c4bSJorge Ramirez-Ortiz# RCAR_SYSTEM_RESET_KEEPON_DDR requires power control of PMIC etc. 275*7e532c4bSJorge Ramirez-Ortiz# When executing SYSTEM_SUSPEND other than Salvator-X, Salvator-XS and Ebisu, 276*7e532c4bSJorge Ramirez-Ortiz# processing equivalent to that implemented in PMIC_ROHM_BD9571 is necessary. 277*7e532c4bSJorge Ramirez-Ortiz# Also, it is necessary to enable RCAR_SYSTEM_SUSPEND. 278*7e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SYSTEM_RESET_KEEPON_DDR},1) 279*7e532c4bSJorge Ramirez-Ortiz ifeq (${PMIC_ROHM_BD9571},0) 280*7e532c4bSJorge Ramirez-Ortiz $(error "Error: When you want RCAR_SYSTEM_RESET_KEEPON_DDR to be enable, please also set PMIC_ROHM_BD9571 to enable.") 281*7e532c4bSJorge Ramirez-Ortiz endif 282*7e532c4bSJorge Ramirez-Ortiz ifeq (${RCAR_SYSTEM_SUSPEND},0) 283*7e532c4bSJorge Ramirez-Ortiz $(error "Error: When you want RCAR_SYSTEM_RESET_KEEPON_DDR to be enable, please also set RCAR_SYSTEM_SUSPEND to enable.") 284*7e532c4bSJorge Ramirez-Ortiz endif 285*7e532c4bSJorge Ramirez-Ortizendif 286*7e532c4bSJorge Ramirez-Ortiz 287*7e532c4bSJorge Ramirez-Ortiz# Enable workarounds for selected Cortex-A53 erratas. 288*7e532c4bSJorge Ramirez-OrtizERRATA_A53_835769 := 1 289*7e532c4bSJorge Ramirez-OrtizERRATA_A53_843419 := 1 290*7e532c4bSJorge Ramirez-OrtizERRATA_A53_855873 := 1 291*7e532c4bSJorge Ramirez-Ortiz 292*7e532c4bSJorge Ramirez-Ortiz# Enable workarounds for selected Cortex-A57 erratas. 293*7e532c4bSJorge Ramirez-OrtizERRATA_A57_859972 := 1 294*7e532c4bSJorge Ramirez-OrtizERRATA_A57_813419 := 1 295*7e532c4bSJorge Ramirez-Ortiz 296*7e532c4bSJorge Ramirez-Ortizinclude drivers/renesas/rcar/ddr/ddr.mk 297*7e532c4bSJorge Ramirez-Ortizinclude drivers/renesas/rcar/qos/qos.mk 298*7e532c4bSJorge Ramirez-Ortizinclude drivers/renesas/rcar/pfc/pfc.mk 299*7e532c4bSJorge Ramirez-Ortiz 300*7e532c4bSJorge Ramirez-OrtizPLAT_INCLUDES := -Iinclude/common/tbbr \ 301*7e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/iic_dvfs \ 302*7e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/board \ 303*7e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/avs \ 304*7e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/delay \ 305*7e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/rom \ 306*7e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/scif \ 307*7e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/emmc \ 308*7e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/pwrc \ 309*7e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/io \ 310*7e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/ddr \ 311*7e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/qos \ 312*7e532c4bSJorge Ramirez-Ortiz -Iplat/renesas/rcar/include/registers \ 313*7e532c4bSJorge Ramirez-Ortiz -Iplat/renesas/rcar/include \ 314*7e532c4bSJorge Ramirez-Ortiz -Iplat/renesas/rcar 315*7e532c4bSJorge Ramirez-Ortiz 316*7e532c4bSJorge Ramirez-OrtizPLAT_BL_COMMON_SOURCES := drivers/renesas/rcar/iic_dvfs/iic_dvfs.c 317*7e532c4bSJorge Ramirez-Ortiz 318*7e532c4bSJorge Ramirez-Ortiz 319*7e532c4bSJorge Ramirez-OrtizRCAR_GIC_SOURCES := drivers/arm/gic/common/gic_common.c \ 320*7e532c4bSJorge Ramirez-Ortiz drivers/arm/gic/v2/gicv2_main.c \ 321*7e532c4bSJorge Ramirez-Ortiz drivers/arm/gic/v2/gicv2_helpers.c \ 322*7e532c4bSJorge Ramirez-Ortiz plat/common/plat_gicv2.c 323*7e532c4bSJorge Ramirez-Ortiz 324*7e532c4bSJorge Ramirez-OrtizBL2_SOURCES += ${RCAR_GIC_SOURCES} \ 325*7e532c4bSJorge Ramirez-Ortiz lib/cpus/aarch64/cortex_a53.S \ 326*7e532c4bSJorge Ramirez-Ortiz lib/cpus/aarch64/cortex_a57.S \ 327*7e532c4bSJorge Ramirez-Ortiz common/desc_image_load.c \ 328*7e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/aarch64/platform_common.c \ 329*7e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/aarch64/plat_helpers.S \ 330*7e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/bl2_interrupt_error.c \ 331*7e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/bl2_secure_setting.c \ 332*7e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/bl2_plat_setup.c \ 333*7e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/plat_storage.c \ 334*7e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/bl2_plat_mem_params_desc.c \ 335*7e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/plat_image_load.c \ 336*7e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/bl2_cpg_init.c \ 337*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/console/rcar_printf.c \ 338*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/scif/scif.S \ 339*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/common.c \ 340*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/io/io_emmcdrv.c \ 341*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/io/io_memdrv.c \ 342*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/io/io_rcar.c \ 343*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/auth/auth_mod.c \ 344*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/rpc/rpc_driver.c \ 345*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/dma/dma_driver.c \ 346*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/avs/avs_driver.c \ 347*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/delay/micro_delay.S \ 348*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/emmc/emmc_interrupt.c \ 349*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/emmc/emmc_utility.c \ 350*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/emmc/emmc_mount.c \ 351*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/emmc/emmc_init.c \ 352*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/emmc/emmc_read.c \ 353*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/emmc/emmc_cmd.c \ 354*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/watchdog/swdt.c \ 355*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/rom/rom_api.c \ 356*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/board/board.c \ 357*7e532c4bSJorge Ramirez-Ortiz drivers/io/io_storage.c 358*7e532c4bSJorge Ramirez-Ortiz 359*7e532c4bSJorge Ramirez-OrtizBL31_SOURCES += ${RCAR_GIC_SOURCES} \ 360*7e532c4bSJorge Ramirez-Ortiz lib/cpus/aarch64/cortex_a53.S \ 361*7e532c4bSJorge Ramirez-Ortiz lib/cpus/aarch64/cortex_a57.S \ 362*7e532c4bSJorge Ramirez-Ortiz plat/common/plat_psci_common.c \ 363*7e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/plat_topology.c \ 364*7e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/aarch64/plat_helpers.S \ 365*7e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/aarch64/platform_common.c \ 366*7e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/bl31_plat_setup.c \ 367*7e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/plat_pm.c \ 368*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/console/rcar_console.S \ 369*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/console/rcar_printf.c \ 370*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/pwrc/call_sram.S \ 371*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/pwrc/pwrc.c \ 372*7e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/common.c \ 373*7e532c4bSJorge Ramirez-Ortiz drivers/arm/cci/cci.c 374*7e532c4bSJorge Ramirez-Ortiz 375*7e532c4bSJorge Ramirez-Ortizifeq (${RCAR_GEN3_ULCB},1) 376*7e532c4bSJorge Ramirez-OrtizBL31_SOURCES += drivers/renesas/rcar/cpld/ulcb_cpld.c 377*7e532c4bSJorge Ramirez-Ortizendif 378*7e532c4bSJorge Ramirez-Ortiz 379*7e532c4bSJorge Ramirez-Ortizinclude lib/xlat_tables_v2/xlat_tables.mk 380*7e532c4bSJorge Ramirez-Ortizinclude drivers/auth/mbedtls/mbedtls_crypto.mk 381*7e532c4bSJorge Ramirez-OrtizPLAT_BL_COMMON_SOURCES += ${XLAT_TABLES_LIB_SRCS} 382*7e532c4bSJorge Ramirez-Ortiz 383*7e532c4bSJorge Ramirez-Ortiz# build the layout images for the bootrom and the necessary srecords 384*7e532c4bSJorge Ramirez-Ortizrcar: rcar_layout_tool rcar_srecord 385*7e532c4bSJorge Ramirez-Ortizdistclean realclean clean: clean_layout_tool clean_srecord 386*7e532c4bSJorge Ramirez-Ortiz 387*7e532c4bSJorge Ramirez-Ortiz# layout images 388*7e532c4bSJorge Ramirez-OrtizLAYOUT_TOOLPATH ?= tools/renesas/rcar_layout_create 389*7e532c4bSJorge Ramirez-Ortiz 390*7e532c4bSJorge Ramirez-Ortizclean_layout_tool: 391*7e532c4bSJorge Ramirez-Ortiz @echo "clean layout tool" 392*7e532c4bSJorge Ramirez-Ortiz ${Q}${MAKE} -C ${LAYOUT_TOOLPATH} clean 393*7e532c4bSJorge Ramirez-Ortiz 394*7e532c4bSJorge Ramirez-Ortiz.PHONY: rcar_layout_tool 395*7e532c4bSJorge Ramirez-Ortizrcar_layout_tool: 396*7e532c4bSJorge Ramirez-Ortiz @echo "generating layout srecs" 397*7e532c4bSJorge Ramirez-Ortiz ${Q}${MAKE} CPPFLAGS="-D=AARCH64" --no-print-directory -C ${LAYOUT_TOOLPATH} 398*7e532c4bSJorge Ramirez-Ortiz 399*7e532c4bSJorge Ramirez-Ortiz# srecords 400*7e532c4bSJorge Ramirez-OrtizSREC_PATH = ${BUILD_PLAT} 401*7e532c4bSJorge Ramirez-OrtizBL2_ELF_SRC = ${SREC_PATH}/bl2/bl2.elf 402*7e532c4bSJorge Ramirez-OrtizBL31_ELF_SRC = ${SREC_PATH}/bl31/bl31.elf 403*7e532c4bSJorge Ramirez-Ortiz 404*7e532c4bSJorge Ramirez-Ortizclean_srecord: 405*7e532c4bSJorge Ramirez-Ortiz @echo "clean bl2 and bl31 srecs" 406*7e532c4bSJorge Ramirez-Ortiz rm -f ${SREC_PATH}/bl2.srec ${SREC_PATH}/bl31.srec 407*7e532c4bSJorge Ramirez-Ortiz 408*7e532c4bSJorge Ramirez-Ortiz.PHONY: rcar_srecord 409*7e532c4bSJorge Ramirez-Ortizrcar_srecord: 410*7e532c4bSJorge Ramirez-Ortiz @echo "generating srec: ${SREC_PATH}/bl2.srec" 411*7e532c4bSJorge Ramirez-Ortiz $(Q)$(OC) -O srec --srec-forceS3 ${BL2_ELF_SRC} ${SREC_PATH}/bl2.srec 412*7e532c4bSJorge Ramirez-Ortiz @echo "generating srec: ${SREC_PATH}/bl31.srec" 413*7e532c4bSJorge Ramirez-Ortiz $(Q)$(OC) -O srec --srec-forceS3 ${BL31_ELF_SRC} ${SREC_PATH}/bl31.srec 414*7e532c4bSJorge Ramirez-Ortiz 415