17e532c4bSJorge Ramirez-Ortiz# 27e532c4bSJorge Ramirez-Ortiz# Copyright (c) 2018, Renesas Electronics Corporation. All rights reserved. 37e532c4bSJorge Ramirez-Ortiz# 47e532c4bSJorge Ramirez-Ortiz# SPDX-License-Identifier: BSD-3-Clause 57e532c4bSJorge Ramirez-Ortiz# 67e532c4bSJorge Ramirez-Ortiz 769086fe1SMarek VasutPROGRAMMABLE_RESET_ADDRESS := 0 87e532c4bSJorge Ramirez-OrtizCOLD_BOOT_SINGLE_CPU := 1 97e532c4bSJorge Ramirez-OrtizARM_CCI_PRODUCT_ID := 500 107e532c4bSJorge Ramirez-OrtizTRUSTED_BOARD_BOOT := 1 117e532c4bSJorge Ramirez-OrtizRESET_TO_BL31 := 1 127e532c4bSJorge Ramirez-OrtizGENERATE_COT := 1 137e532c4bSJorge Ramirez-OrtizBL2_AT_EL3 := 1 148a2f1eeeSMarek VasutENABLE_SVE_FOR_NS := 0 157e532c4bSJorge Ramirez-Ortiz 160969397fSMarek VasutCRASH_REPORTING := 1 170969397fSMarek VasutHANDLE_EA_EL3_FIRST := 1 180969397fSMarek Vasut 197e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,PLAT_EXTRA_LD_SCRIPT)) 207e532c4bSJorge Ramirez-Ortiz 217e532c4bSJorge Ramirez-Ortizifeq (${SPD},none) 227e532c4bSJorge Ramirez-Ortiz SPD_NONE:=1 237e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,SPD_NONE)) 247e532c4bSJorge Ramirez-Ortizendif 257e532c4bSJorge Ramirez-Ortiz 267e532c4bSJorge Ramirez-Ortiz# LSI setting common define 277e532c4bSJorge Ramirez-OrtizRCAR_H3:=0 287e532c4bSJorge Ramirez-OrtizRCAR_M3:=1 297e532c4bSJorge Ramirez-OrtizRCAR_M3N:=2 307e532c4bSJorge Ramirez-OrtizRCAR_E3:=3 317e532c4bSJorge Ramirez-OrtizRCAR_H3N:=4 32bfbf5df4SMarek VasutRCAR_D3:=5 33b709fe9cSValentine BarshakRCAR_V3M:=6 347e532c4bSJorge Ramirez-OrtizRCAR_AUTO:=99 357e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_H3)) 367e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_M3)) 377e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_M3N)) 387e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_E3)) 397e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_H3N)) 40bfbf5df4SMarek Vasut$(eval $(call add_define,RCAR_D3)) 41b709fe9cSValentine Barshak$(eval $(call add_define,RCAR_V3M)) 427e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_AUTO)) 437e532c4bSJorge Ramirez-OrtizRCAR_CUT_10:=0 447e532c4bSJorge Ramirez-OrtizRCAR_CUT_11:=1 45845d8fbbSMarek VasutRCAR_CUT_13:=3 467e532c4bSJorge Ramirez-OrtizRCAR_CUT_20:=10 477e532c4bSJorge Ramirez-OrtizRCAR_CUT_30:=20 487e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_CUT_10)) 497e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_CUT_11)) 50845d8fbbSMarek Vasut$(eval $(call add_define,RCAR_CUT_13)) 517e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_CUT_20)) 527e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_CUT_30)) 537e532c4bSJorge Ramirez-Ortiz 547e532c4bSJorge Ramirez-Ortizifndef LSI 557e532c4bSJorge Ramirez-Ortiz $(error "Error: Unknown LSI. Please use LSI=<LSI name> to specify the LSI") 567e532c4bSJorge Ramirez-Ortizelse 577e532c4bSJorge Ramirez-Ortiz ifeq (${LSI},AUTO) 587e532c4bSJorge Ramirez-Ortiz RCAR_LSI:=${RCAR_AUTO} 597e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI},H3) 607e532c4bSJorge Ramirez-Ortiz RCAR_LSI:=${RCAR_H3} 617e532c4bSJorge Ramirez-Ortiz ifndef LSI_CUT 627e532c4bSJorge Ramirez-Ortiz # enable compatible function. 637e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT_COMPAT := 1 647e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT_COMPAT)) 657e532c4bSJorge Ramirez-Ortiz else 667e532c4bSJorge Ramirez-Ortiz # disable compatible function. 677e532c4bSJorge Ramirez-Ortiz ifeq (${LSI_CUT},10) 687e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=0 697e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI_CUT},11) 707e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=1 717e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI_CUT},20) 727e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=10 737e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI_CUT},30) 747e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=20 757e532c4bSJorge Ramirez-Ortiz else 767e532c4bSJorge Ramirez-Ortiz $(error "Error: ${LSI_CUT} is not supported.") 777e532c4bSJorge Ramirez-Ortiz endif 787e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT)) 797e532c4bSJorge Ramirez-Ortiz endif 807e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI},H3N) 817e532c4bSJorge Ramirez-Ortiz RCAR_LSI:=${RCAR_H3N} 827e532c4bSJorge Ramirez-Ortiz ifndef LSI_CUT 837e532c4bSJorge Ramirez-Ortiz # enable compatible function. 847e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT_COMPAT := 1 857e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT_COMPAT)) 867e532c4bSJorge Ramirez-Ortiz else 877e532c4bSJorge Ramirez-Ortiz # disable compatible function. 887e532c4bSJorge Ramirez-Ortiz ifeq (${LSI_CUT},30) 897e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=20 907e532c4bSJorge Ramirez-Ortiz else 917e532c4bSJorge Ramirez-Ortiz $(error "Error: ${LSI_CUT} is not supported.") 927e532c4bSJorge Ramirez-Ortiz endif 937e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT)) 947e532c4bSJorge Ramirez-Ortiz endif 957e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI},M3) 967e532c4bSJorge Ramirez-Ortiz RCAR_LSI:=${RCAR_M3} 977e532c4bSJorge Ramirez-Ortiz ifndef LSI_CUT 987e532c4bSJorge Ramirez-Ortiz # enable compatible function. 997e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT_COMPAT := 1 1007e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT_COMPAT)) 1017e532c4bSJorge Ramirez-Ortiz else 1027e532c4bSJorge Ramirez-Ortiz # disable compatible function. 1037e532c4bSJorge Ramirez-Ortiz ifeq (${LSI_CUT},10) 1047e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=0 1057e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI_CUT},11) 1067e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=1 107845d8fbbSMarek Vasut else ifeq (${LSI_CUT},13) 108845d8fbbSMarek Vasut RCAR_LSI_CUT:=3 109845d8fbbSMarek Vasut else ifeq (${LSI_CUT},30) 110845d8fbbSMarek Vasut RCAR_LSI_CUT:=20 1117e532c4bSJorge Ramirez-Ortiz else 1127e532c4bSJorge Ramirez-Ortiz $(error "Error: ${LSI_CUT} is not supported.") 1137e532c4bSJorge Ramirez-Ortiz endif 1147e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT)) 1157e532c4bSJorge Ramirez-Ortiz endif 1167e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI},M3N) 1177e532c4bSJorge Ramirez-Ortiz RCAR_LSI:=${RCAR_M3N} 1187e532c4bSJorge Ramirez-Ortiz ifndef LSI_CUT 1197e532c4bSJorge Ramirez-Ortiz # enable compatible function. 1207e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT_COMPAT := 1 1217e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT_COMPAT)) 1227e532c4bSJorge Ramirez-Ortiz else 1237e532c4bSJorge Ramirez-Ortiz # disable compatible function. 1247e532c4bSJorge Ramirez-Ortiz ifeq (${LSI_CUT},10) 1257e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=0 1267e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI_CUT},11) 1277e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=1 1287e532c4bSJorge Ramirez-Ortiz else 1297e532c4bSJorge Ramirez-Ortiz $(error "Error: ${LSI_CUT} is not supported.") 1307e532c4bSJorge Ramirez-Ortiz endif 1317e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT)) 1327e532c4bSJorge Ramirez-Ortiz endif 1337e532c4bSJorge Ramirez-Ortiz else ifeq (${LSI},E3) 1347e532c4bSJorge Ramirez-Ortiz RCAR_LSI:=${RCAR_E3} 1357e532c4bSJorge Ramirez-Ortiz ifndef LSI_CUT 1367e532c4bSJorge Ramirez-Ortiz # enable compatible function. 1377e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT_COMPAT := 1 1387e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT_COMPAT)) 1397e532c4bSJorge Ramirez-Ortiz else 1407e532c4bSJorge Ramirez-Ortiz # disable compatible function. 1417e532c4bSJorge Ramirez-Ortiz ifeq (${LSI_CUT},10) 1427e532c4bSJorge Ramirez-Ortiz RCAR_LSI_CUT:=0 143845d8fbbSMarek Vasut else ifeq (${LSI_CUT},11) 144845d8fbbSMarek Vasut RCAR_LSI_CUT:=1 1457e532c4bSJorge Ramirez-Ortiz else 1467e532c4bSJorge Ramirez-Ortiz $(error "Error: ${LSI_CUT} is not supported.") 1477e532c4bSJorge Ramirez-Ortiz endif 1487e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI_CUT)) 1497e532c4bSJorge Ramirez-Ortiz endif 150bfbf5df4SMarek Vasut else ifeq (${LSI},D3) 151bfbf5df4SMarek Vasut RCAR_LSI:=${RCAR_D3} 152bfbf5df4SMarek Vasut ifndef LSI_CUT 153bfbf5df4SMarek Vasut # enable compatible function. 154bfbf5df4SMarek Vasut RCAR_LSI_CUT_COMPAT := 1 155bfbf5df4SMarek Vasut $(eval $(call add_define,RCAR_LSI_CUT_COMPAT)) 156bfbf5df4SMarek Vasut else 157bfbf5df4SMarek Vasut # disable compatible function. 158bfbf5df4SMarek Vasut ifeq (${LSI_CUT},10) 159bfbf5df4SMarek Vasut RCAR_LSI_CUT:=0 160bfbf5df4SMarek Vasut else 161bfbf5df4SMarek Vasut $(error "Error: ${LSI_CUT} is not supported.") 162bfbf5df4SMarek Vasut endif 163bfbf5df4SMarek Vasut $(eval $(call add_define,RCAR_LSI_CUT)) 164bfbf5df4SMarek Vasut endif 165b709fe9cSValentine Barshak else ifeq (${LSI},V3M) 166b709fe9cSValentine Barshak RCAR_LSI:=${RCAR_V3M} 167b709fe9cSValentine Barshak ifndef LSI_CUT 168b709fe9cSValentine Barshak # enable compatible function. 169b709fe9cSValentine Barshak RCAR_LSI_CUT_COMPAT := 1 170b709fe9cSValentine Barshak $(eval $(call add_define,RCAR_LSI_CUT_COMPAT)) 171b709fe9cSValentine Barshak else 172b709fe9cSValentine Barshak # disable compatible function. 173b709fe9cSValentine Barshak ifeq (${LSI_CUT},10) 174b709fe9cSValentine Barshak RCAR_LSI_CUT:=0 175b709fe9cSValentine Barshak endif 176b709fe9cSValentine Barshak ifeq (${LSI_CUT},20) 177b709fe9cSValentine Barshak RCAR_LSI_CUT:=10 178b709fe9cSValentine Barshak endif 179b709fe9cSValentine Barshak $(eval $(call add_define,RCAR_LSI_CUT)) 180b709fe9cSValentine Barshak endif 1817e532c4bSJorge Ramirez-Ortiz else 1827e532c4bSJorge Ramirez-Ortiz $(error "Error: ${LSI} is not supported.") 1837e532c4bSJorge Ramirez-Ortiz endif 1847e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,RCAR_LSI)) 1857e532c4bSJorge Ramirez-Ortizendif 1867e532c4bSJorge Ramirez-Ortiz 1876e93392bSJorge Ramirez-Ortiz# lock RPC HYPERFLASH access by default 1886e93392bSJorge Ramirez-Ortiz# unlock to repogram the ATF firmware from u-boot 1896e93392bSJorge Ramirez-Ortizifndef RCAR_RPC_HYPERFLASH_LOCKED 1906e93392bSJorge Ramirez-OrtizRCAR_RPC_HYPERFLASH_LOCKED := 1 1916e93392bSJorge Ramirez-Ortizendif 1926e93392bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_RPC_HYPERFLASH_LOCKED)) 1936e93392bSJorge Ramirez-Ortiz 1947e532c4bSJorge Ramirez-Ortiz# Process RCAR_SECURE_BOOT flag 1957e532c4bSJorge Ramirez-Ortizifndef RCAR_SECURE_BOOT 1967e532c4bSJorge Ramirez-OrtizRCAR_SECURE_BOOT := 1 1977e532c4bSJorge Ramirez-Ortizendif 1987e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SECURE_BOOT)) 1997e532c4bSJorge Ramirez-Ortiz 2007e532c4bSJorge Ramirez-Ortiz# Process RCAR_QOS_TYPE flag 2017e532c4bSJorge Ramirez-Ortizifndef RCAR_QOS_TYPE 2027e532c4bSJorge Ramirez-OrtizRCAR_QOS_TYPE := 0 2037e532c4bSJorge Ramirez-Ortizendif 2047e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_QOS_TYPE)) 2057e532c4bSJorge Ramirez-Ortiz 2067e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_SPLIT flag 2077e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_SPLIT 2087e532c4bSJorge Ramirez-OrtizRCAR_DRAM_SPLIT := 0 2097e532c4bSJorge Ramirez-Ortizendif 2107e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_SPLIT)) 2117e532c4bSJorge Ramirez-Ortiz 2127e532c4bSJorge Ramirez-Ortiz# Process RCAR_BL33_EXECUTION_EL flag 2137e532c4bSJorge Ramirez-Ortizifndef RCAR_BL33_EXECUTION_EL 2147e532c4bSJorge Ramirez-OrtizRCAR_BL33_EXECUTION_EL := 0 2157e532c4bSJorge Ramirez-Ortizendif 2167e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_BL33_EXECUTION_EL)) 2177e532c4bSJorge Ramirez-Ortiz 2187e532c4bSJorge Ramirez-Ortiz# Process RCAR_AVS_SETTING_ENABLE flag 2197e532c4bSJorge Ramirez-Ortizifeq (${RCAR_AVS_SETTING_ENABLE},0) 2207e532c4bSJorge Ramirez-OrtizAVS_SETTING_ENABLE := 0 2217e532c4bSJorge Ramirez-Ortizelse 2227e532c4bSJorge Ramirez-OrtizAVS_SETTING_ENABLE := 1 2237e532c4bSJorge Ramirez-Ortizendif 2247e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,AVS_SETTING_ENABLE)) 2257e532c4bSJorge Ramirez-Ortiz 2267e532c4bSJorge Ramirez-Ortiz# Process RCAR_LOSSY_ENABLE flag 2277e532c4bSJorge Ramirez-Ortizifndef RCAR_LOSSY_ENABLE 2287e532c4bSJorge Ramirez-OrtizRCAR_LOSSY_ENABLE := 0 2297e532c4bSJorge Ramirez-Ortizendif 2307e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_LOSSY_ENABLE)) 2317e532c4bSJorge Ramirez-Ortiz 2327e532c4bSJorge Ramirez-Ortiz# Process LIFEC_DBSC_PROTECT_ENABLE flag 2337e532c4bSJorge Ramirez-Ortizifndef LIFEC_DBSC_PROTECT_ENABLE 2347e532c4bSJorge Ramirez-OrtizLIFEC_DBSC_PROTECT_ENABLE := 1 2357e532c4bSJorge Ramirez-Ortizendif 2367e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,LIFEC_DBSC_PROTECT_ENABLE)) 2377e532c4bSJorge Ramirez-Ortiz 2387e532c4bSJorge Ramirez-Ortiz# Process PMIC_ROHM_BD9571 flag 2397e532c4bSJorge Ramirez-Ortizifndef PMIC_ROHM_BD9571 2407e532c4bSJorge Ramirez-OrtizPMIC_ROHM_BD9571 := 1 2417e532c4bSJorge Ramirez-Ortizendif 2427e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,PMIC_ROHM_BD9571)) 2437e532c4bSJorge Ramirez-Ortiz 2447e532c4bSJorge Ramirez-Ortiz# Process PMIC_LEVEL_MODE flag 2457e532c4bSJorge Ramirez-Ortizifndef PMIC_LEVEL_MODE 2467e532c4bSJorge Ramirez-OrtizPMIC_LEVEL_MODE := 1 2477e532c4bSJorge Ramirez-Ortizendif 2487e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,PMIC_LEVEL_MODE)) 2497e532c4bSJorge Ramirez-Ortiz 2507e532c4bSJorge Ramirez-Ortiz# Process RCAR_GEN3_ULCB flag 2517e532c4bSJorge Ramirez-Ortizifndef RCAR_GEN3_ULCB 2527e532c4bSJorge Ramirez-OrtizRCAR_GEN3_ULCB := 0 2537e532c4bSJorge Ramirez-Ortizendif 2547e532c4bSJorge Ramirez-Ortizifeq (${RCAR_GEN3_ULCB},1) 2557e532c4bSJorge Ramirez-Ortiz BOARD_DEFAULT := 0x10 2567e532c4bSJorge Ramirez-Ortiz $(eval $(call add_define,BOARD_DEFAULT)) 2577e532c4bSJorge Ramirez-Ortizendif 2587e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_GEN3_ULCB)) 2597e532c4bSJorge Ramirez-Ortiz 2607e532c4bSJorge Ramirez-Ortiz# Process RCAR_REF_INT flag 2617e532c4bSJorge Ramirez-Ortizifndef RCAR_REF_INT 2627e532c4bSJorge Ramirez-OrtizRCAR_REF_INT :=0 2637e532c4bSJorge Ramirez-Ortizendif 2647e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_REF_INT)) 2657e532c4bSJorge Ramirez-Ortiz 2667e532c4bSJorge Ramirez-Ortiz# Process RCAR_REWT_TRAINING flag 2677e532c4bSJorge Ramirez-Ortizifndef RCAR_REWT_TRAINING 268*11d15c3eSToshiyuki OgasaharaRCAR_REWT_TRAINING := 1 2697e532c4bSJorge Ramirez-Ortizendif 2707e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_REWT_TRAINING)) 2717e532c4bSJorge Ramirez-Ortiz 2727e532c4bSJorge Ramirez-Ortiz# Process RCAR_SYSTEM_SUSPEND flag 2737e532c4bSJorge Ramirez-Ortizifndef RCAR_SYSTEM_SUSPEND 2747e532c4bSJorge Ramirez-OrtizRCAR_SYSTEM_SUSPEND := 1 2757e532c4bSJorge Ramirez-Ortizendif 2767e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SYSTEM_SUSPEND)) 2777e532c4bSJorge Ramirez-Ortiz 2787e532c4bSJorge Ramirez-Ortiz# SYSTEM_SUSPEND requires power control of PMIC etc. 2797e532c4bSJorge Ramirez-Ortiz# When executing SYSTEM_SUSPEND other than Salvator-X, Salvator-XS and Ebisu, 2807e532c4bSJorge Ramirez-Ortiz# processing equivalent to that implemented in PMIC_ROHM_BD9571 is necessary. 2817e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SYSTEM_SUSPEND},1) 2827e532c4bSJorge Ramirez-Ortiz ifeq (${PMIC_ROHM_BD9571},0) 2837e532c4bSJorge Ramirez-Ortiz $(error "Error: When you want RCAR_SYSTEM_SUSPEND to be enable, please also set PMIC_ROHM_BD9571 to enable.") 2847e532c4bSJorge Ramirez-Ortiz endif 2857e532c4bSJorge Ramirez-Ortizendif 2867e532c4bSJorge Ramirez-Ortiz 2877e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_LPDDR4_MEMCONF flag 2887e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_LPDDR4_MEMCONF 2897e532c4bSJorge Ramirez-OrtizRCAR_DRAM_LPDDR4_MEMCONF :=1 2907e532c4bSJorge Ramirez-Ortizendif 2917e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_LPDDR4_MEMCONF)) 2927e532c4bSJorge Ramirez-Ortiz 2937e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_DDR3L_MEMCONF flag 2947e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_DDR3L_MEMCONF 2957e532c4bSJorge Ramirez-OrtizRCAR_DRAM_DDR3L_MEMCONF :=1 2967e532c4bSJorge Ramirez-Ortizendif 2977e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_DDR3L_MEMCONF)) 2987e532c4bSJorge Ramirez-Ortiz 2997e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_DDR3L_MEMDUAL flag 3007e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_DDR3L_MEMDUAL 3017e532c4bSJorge Ramirez-OrtizRCAR_DRAM_DDR3L_MEMDUAL :=1 3027e532c4bSJorge Ramirez-Ortizendif 3037e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_DDR3L_MEMDUAL)) 3047e532c4bSJorge Ramirez-Ortiz 3057e532c4bSJorge Ramirez-Ortiz# Process RCAR_BL33_ARG0 flag 3067e532c4bSJorge Ramirez-Ortizifdef RCAR_BL33_ARG0 3077e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_BL33_ARG0)) 3087e532c4bSJorge Ramirez-Ortizendif 3097e532c4bSJorge Ramirez-Ortiz 3107e532c4bSJorge Ramirez-Ortiz#Process RCAR_BL2_DCACHE flag 3117e532c4bSJorge Ramirez-Ortizifndef RCAR_BL2_DCACHE 3127e532c4bSJorge Ramirez-OrtizRCAR_BL2_DCACHE := 0 3137e532c4bSJorge Ramirez-Ortizendif 3147e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_BL2_DCACHE)) 3157e532c4bSJorge Ramirez-Ortiz 3167e532c4bSJorge Ramirez-Ortiz# Process RCAR_DRAM_CHANNEL flag 3177e532c4bSJorge Ramirez-Ortizifndef RCAR_DRAM_CHANNEL 3187e532c4bSJorge Ramirez-OrtizRCAR_DRAM_CHANNEL :=15 3197e532c4bSJorge Ramirez-Ortizendif 3207e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_DRAM_CHANNEL)) 3217e532c4bSJorge Ramirez-Ortiz 3227e532c4bSJorge Ramirez-Ortiz#Process RCAR_SYSTEM_RESET_KEEPON_DDR flag 3237e532c4bSJorge Ramirez-Ortizifndef RCAR_SYSTEM_RESET_KEEPON_DDR 3247e532c4bSJorge Ramirez-OrtizRCAR_SYSTEM_RESET_KEEPON_DDR := 0 3257e532c4bSJorge Ramirez-Ortizendif 3267e532c4bSJorge Ramirez-Ortiz$(eval $(call add_define,RCAR_SYSTEM_RESET_KEEPON_DDR)) 3277e532c4bSJorge Ramirez-Ortiz 3287e532c4bSJorge Ramirez-Ortiz# RCAR_SYSTEM_RESET_KEEPON_DDR requires power control of PMIC etc. 3297e532c4bSJorge Ramirez-Ortiz# When executing SYSTEM_SUSPEND other than Salvator-X, Salvator-XS and Ebisu, 3307e532c4bSJorge Ramirez-Ortiz# processing equivalent to that implemented in PMIC_ROHM_BD9571 is necessary. 3317e532c4bSJorge Ramirez-Ortiz# Also, it is necessary to enable RCAR_SYSTEM_SUSPEND. 3327e532c4bSJorge Ramirez-Ortizifeq (${RCAR_SYSTEM_RESET_KEEPON_DDR},1) 3337e532c4bSJorge Ramirez-Ortiz ifeq (${PMIC_ROHM_BD9571},0) 3347e532c4bSJorge Ramirez-Ortiz $(error "Error: When you want RCAR_SYSTEM_RESET_KEEPON_DDR to be enable, please also set PMIC_ROHM_BD9571 to enable.") 3357e532c4bSJorge Ramirez-Ortiz endif 3367e532c4bSJorge Ramirez-Ortiz ifeq (${RCAR_SYSTEM_SUSPEND},0) 3377e532c4bSJorge Ramirez-Ortiz $(error "Error: When you want RCAR_SYSTEM_RESET_KEEPON_DDR to be enable, please also set RCAR_SYSTEM_SUSPEND to enable.") 3387e532c4bSJorge Ramirez-Ortiz endif 3397e532c4bSJorge Ramirez-Ortizendif 3407e532c4bSJorge Ramirez-Ortiz 3417e532c4bSJorge Ramirez-Ortiz# Enable workarounds for selected Cortex-A53 erratas. 3427e532c4bSJorge Ramirez-OrtizERRATA_A53_835769 := 1 3437e532c4bSJorge Ramirez-OrtizERRATA_A53_843419 := 1 3447e532c4bSJorge Ramirez-OrtizERRATA_A53_855873 := 1 3457e532c4bSJorge Ramirez-Ortiz 3467e532c4bSJorge Ramirez-Ortiz# Enable workarounds for selected Cortex-A57 erratas. 3477e532c4bSJorge Ramirez-OrtizERRATA_A57_859972 := 1 3487e532c4bSJorge Ramirez-OrtizERRATA_A57_813419 := 1 3497e532c4bSJorge Ramirez-Ortiz 3506ac2892aSJorge Ramirez-Ortizinclude drivers/staging/renesas/rcar/ddr/ddr.mk 3516ac2892aSJorge Ramirez-Ortizinclude drivers/staging/renesas/rcar/qos/qos.mk 3526ac2892aSJorge Ramirez-Ortizinclude drivers/staging/renesas/rcar/pfc/pfc.mk 3531d85c4bdSMarek Vasutinclude lib/libfdt/libfdt.mk 3547e532c4bSJorge Ramirez-Ortiz 3555e447816SAntonio Nino DiazPLAT_INCLUDES := -Idrivers/staging/renesas/rcar/ddr \ 3566ac2892aSJorge Ramirez-Ortiz -Idrivers/staging/renesas/rcar/qos \ 3577e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/iic_dvfs \ 3587e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/board \ 359bd57db53SMarek Vasut -Idrivers/renesas/rcar/cpld/ \ 3607e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/avs \ 3617e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/delay \ 3627e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/rom \ 3637e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/scif \ 3647e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/emmc \ 3657e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/pwrc \ 3667e532c4bSJorge Ramirez-Ortiz -Idrivers/renesas/rcar/io \ 3677e532c4bSJorge Ramirez-Ortiz -Iplat/renesas/rcar/include/registers \ 3687e532c4bSJorge Ramirez-Ortiz -Iplat/renesas/rcar/include \ 3697e532c4bSJorge Ramirez-Ortiz -Iplat/renesas/rcar 3707e532c4bSJorge Ramirez-Ortiz 3710969397fSMarek VasutPLAT_BL_COMMON_SOURCES := drivers/renesas/rcar/iic_dvfs/iic_dvfs.c \ 3720969397fSMarek Vasut plat/renesas/rcar/rcar_common.c 3737e532c4bSJorge Ramirez-Ortiz 3747e532c4bSJorge Ramirez-OrtizRCAR_GIC_SOURCES := drivers/arm/gic/common/gic_common.c \ 3757e532c4bSJorge Ramirez-Ortiz drivers/arm/gic/v2/gicv2_main.c \ 3767e532c4bSJorge Ramirez-Ortiz drivers/arm/gic/v2/gicv2_helpers.c \ 3777e532c4bSJorge Ramirez-Ortiz plat/common/plat_gicv2.c 3787e532c4bSJorge Ramirez-Ortiz 3797e532c4bSJorge Ramirez-OrtizBL2_SOURCES += ${RCAR_GIC_SOURCES} \ 3807e532c4bSJorge Ramirez-Ortiz lib/cpus/aarch64/cortex_a53.S \ 3817e532c4bSJorge Ramirez-Ortiz lib/cpus/aarch64/cortex_a57.S \ 3821d85c4bdSMarek Vasut ${LIBFDT_SRCS} \ 3837e532c4bSJorge Ramirez-Ortiz common/desc_image_load.c \ 3847e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/aarch64/platform_common.c \ 3857e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/aarch64/plat_helpers.S \ 3867e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/bl2_interrupt_error.c \ 3877e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/bl2_secure_setting.c \ 3887e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/bl2_plat_setup.c \ 3897e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/plat_storage.c \ 3907e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/bl2_plat_mem_params_desc.c \ 3917e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/plat_image_load.c \ 3927e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/bl2_cpg_init.c \ 3937e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/console/rcar_printf.c \ 3947e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/scif/scif.S \ 3957e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/common.c \ 3967e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/io/io_emmcdrv.c \ 3977e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/io/io_memdrv.c \ 3987e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/io/io_rcar.c \ 3997e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/auth/auth_mod.c \ 4007e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/rpc/rpc_driver.c \ 4017e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/dma/dma_driver.c \ 4027e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/avs/avs_driver.c \ 403c97c5b5eSMarek Vasut drivers/renesas/rcar/delay/micro_delay.c \ 4047e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/emmc/emmc_interrupt.c \ 4057e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/emmc/emmc_utility.c \ 4067e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/emmc/emmc_mount.c \ 4077e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/emmc/emmc_init.c \ 4087e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/emmc/emmc_read.c \ 4097e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/emmc/emmc_cmd.c \ 4107e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/watchdog/swdt.c \ 4117e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/rom/rom_api.c \ 4127e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/board/board.c \ 4137e532c4bSJorge Ramirez-Ortiz drivers/io/io_storage.c 4147e532c4bSJorge Ramirez-Ortiz 4157e532c4bSJorge Ramirez-OrtizBL31_SOURCES += ${RCAR_GIC_SOURCES} \ 4167e532c4bSJorge Ramirez-Ortiz lib/cpus/aarch64/cortex_a53.S \ 4177e532c4bSJorge Ramirez-Ortiz lib/cpus/aarch64/cortex_a57.S \ 4187e532c4bSJorge Ramirez-Ortiz plat/common/plat_psci_common.c \ 4197e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/plat_topology.c \ 4207e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/aarch64/plat_helpers.S \ 4217e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/aarch64/platform_common.c \ 4227e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/bl31_plat_setup.c \ 4237e532c4bSJorge Ramirez-Ortiz plat/renesas/rcar/plat_pm.c \ 4247e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/console/rcar_console.S \ 4257e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/console/rcar_printf.c \ 426ca031dffSMarek Vasut drivers/renesas/rcar/delay/micro_delay.c \ 4277e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/pwrc/call_sram.S \ 4287e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/pwrc/pwrc.c \ 4297e532c4bSJorge Ramirez-Ortiz drivers/renesas/rcar/common.c \ 4307e532c4bSJorge Ramirez-Ortiz drivers/arm/cci/cci.c 4317e532c4bSJorge Ramirez-Ortiz 4327e532c4bSJorge Ramirez-Ortizifeq (${RCAR_GEN3_ULCB},1) 4337e532c4bSJorge Ramirez-OrtizBL31_SOURCES += drivers/renesas/rcar/cpld/ulcb_cpld.c 4347e532c4bSJorge Ramirez-Ortizendif 4357e532c4bSJorge Ramirez-Ortiz 4367e532c4bSJorge Ramirez-Ortizinclude lib/xlat_tables_v2/xlat_tables.mk 4377e532c4bSJorge Ramirez-Ortizinclude drivers/auth/mbedtls/mbedtls_crypto.mk 4387e532c4bSJorge Ramirez-OrtizPLAT_BL_COMMON_SOURCES += ${XLAT_TABLES_LIB_SRCS} 4397e532c4bSJorge Ramirez-Ortiz 4407e532c4bSJorge Ramirez-Ortiz# build the layout images for the bootrom and the necessary srecords 4417e532c4bSJorge Ramirez-Ortizrcar: rcar_layout_tool rcar_srecord 4427e532c4bSJorge Ramirez-Ortizdistclean realclean clean: clean_layout_tool clean_srecord 4437e532c4bSJorge Ramirez-Ortiz 4447e532c4bSJorge Ramirez-Ortiz# layout images 4457e532c4bSJorge Ramirez-OrtizLAYOUT_TOOLPATH ?= tools/renesas/rcar_layout_create 4467e532c4bSJorge Ramirez-Ortiz 4477e532c4bSJorge Ramirez-Ortizclean_layout_tool: 4487e532c4bSJorge Ramirez-Ortiz @echo "clean layout tool" 4497e532c4bSJorge Ramirez-Ortiz ${Q}${MAKE} -C ${LAYOUT_TOOLPATH} clean 4507e532c4bSJorge Ramirez-Ortiz 4517e532c4bSJorge Ramirez-Ortiz.PHONY: rcar_layout_tool 4527e532c4bSJorge Ramirez-Ortizrcar_layout_tool: 4537e532c4bSJorge Ramirez-Ortiz @echo "generating layout srecs" 4547e532c4bSJorge Ramirez-Ortiz ${Q}${MAKE} CPPFLAGS="-D=AARCH64" --no-print-directory -C ${LAYOUT_TOOLPATH} 4557e532c4bSJorge Ramirez-Ortiz 4567e532c4bSJorge Ramirez-Ortiz# srecords 4577e532c4bSJorge Ramirez-OrtizSREC_PATH = ${BUILD_PLAT} 4587e532c4bSJorge Ramirez-OrtizBL2_ELF_SRC = ${SREC_PATH}/bl2/bl2.elf 4597e532c4bSJorge Ramirez-OrtizBL31_ELF_SRC = ${SREC_PATH}/bl31/bl31.elf 4607e532c4bSJorge Ramirez-Ortiz 4617e532c4bSJorge Ramirez-Ortizclean_srecord: 4627e532c4bSJorge Ramirez-Ortiz @echo "clean bl2 and bl31 srecs" 4637e532c4bSJorge Ramirez-Ortiz rm -f ${SREC_PATH}/bl2.srec ${SREC_PATH}/bl31.srec 4647e532c4bSJorge Ramirez-Ortiz 4657e532c4bSJorge Ramirez-Ortiz.PHONY: rcar_srecord 466539caac9SMarek Vasutrcar_srecord: $(BL2_ELF_SRC) $(BL31_ELF_SRC) 4677e532c4bSJorge Ramirez-Ortiz @echo "generating srec: ${SREC_PATH}/bl2.srec" 4687e532c4bSJorge Ramirez-Ortiz $(Q)$(OC) -O srec --srec-forceS3 ${BL2_ELF_SRC} ${SREC_PATH}/bl2.srec 4697e532c4bSJorge Ramirez-Ortiz @echo "generating srec: ${SREC_PATH}/bl31.srec" 4707e532c4bSJorge Ramirez-Ortiz $(Q)$(OC) -O srec --srec-forceS3 ${BL31_ELF_SRC} ${SREC_PATH}/bl31.srec 4717e532c4bSJorge Ramirez-Ortiz 472