1*91f16700Schasinglulu# 2*91f16700Schasinglulu# Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu# 4*91f16700Schasinglulu# SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu# 6*91f16700Schasinglulu 7*91f16700Schasinglulu# On Poplar, the TSP can execute from TZC secure area in DRAM. 8*91f16700SchasingluluPOPLAR_TSP_RAM_LOCATION ?= dram 9*91f16700Schasingluluifeq (${POPLAR_TSP_RAM_LOCATION}, dram) 10*91f16700Schasinglulu POPLAR_TSP_RAM_LOCATION_ID = POPLAR_DRAM_ID 11*91f16700Schasingluluelse ifeq (${POPLAR_TSP_RAM_LOCATION}, sram) 12*91f16700Schasinglulu POPLAR_TSP_RAM_LOCATION_ID = POPLAR_SRAM_ID 13*91f16700Schasingluluelse 14*91f16700Schasinglulu $(error "Currently unsupported POPLAR_TSP_RAM_LOCATION value") 15*91f16700Schasingluluendif 16*91f16700Schasinglulu$(eval $(call add_define,POPLAR_TSP_RAM_LOCATION_ID)) 17*91f16700Schasinglulu 18*91f16700SchasingluluPOPLAR_DRAM_SIZE ?= two_gig 19*91f16700Schasingluluifeq (${POPLAR_DRAM_SIZE}, two_gig) 20*91f16700Schasinglulu POPLAR_DRAM_SIZE_ID = POPLAR_DRAM_SIZE_2G 21*91f16700Schasingluluelse ifeq (${POPLAR_DRAM_SIZE}, one_gig) 22*91f16700Schasinglulu POPLAR_DRAM_SIZE_ID = POPLAR_DRAM_SIZE_1G 23*91f16700Schasingluluelse 24*91f16700Schasinglulu $(error "Currently unsupported POPLAR_DRAM_SIZE value") 25*91f16700Schasingluluendif 26*91f16700Schasinglulu$(eval $(call add_define,POPLAR_DRAM_SIZE_ID)) 27*91f16700Schasinglulu 28*91f16700SchasingluluPOPLAR_RECOVERY := 0 29*91f16700Schasinglulu$(eval $(call add_define,POPLAR_RECOVERY)) 30*91f16700Schasinglulu 31*91f16700Schasinglulu# Add the build options to pack Trusted OS Extra1 and Trusted OS Extra2 images 32*91f16700Schasinglulu# in the FIP if the platform requires. 33*91f16700Schasingluluifneq ($(BL32_EXTRA1),) 34*91f16700Schasinglulu$(eval $(call TOOL_ADD_IMG,BL32_EXTRA1,--tos-fw-extra1)) 35*91f16700Schasingluluendif 36*91f16700Schasingluluifneq ($(BL32_EXTRA2),) 37*91f16700Schasinglulu$(eval $(call TOOL_ADD_IMG,BL32_EXTRA2,--tos-fw-extra2)) 38*91f16700Schasingluluendif 39*91f16700Schasinglulu 40*91f16700SchasingluluNEED_BL33 := yes 41*91f16700Schasinglulu 42*91f16700SchasingluluCOLD_BOOT_SINGLE_CPU := 1 43*91f16700SchasingluluPROGRAMMABLE_RESET_ADDRESS := 1 44*91f16700SchasingluluCTX_INCLUDE_FPREGS := 1 45*91f16700SchasingluluERRATA_A53_855873 := 1 46*91f16700SchasingluluERRATA_A53_835769 := 1 47*91f16700SchasingluluERRATA_A53_843419 := 1 48*91f16700SchasingluluENABLE_SVE_FOR_NS := 0 49*91f16700SchasingluluWORKAROUND_CVE_2017_5715 := 0 50*91f16700Schasinglulu 51*91f16700SchasingluluPLAT_PL061_MAX_GPIOS := 104 52*91f16700Schasinglulu$(eval $(call add_define,PLAT_PL061_MAX_GPIOS)) 53*91f16700Schasinglulu 54*91f16700SchasingluluPLAT_INCLUDES := -Iplat/hisilicon/poplar/include \ 55*91f16700Schasinglulu -Iplat/hisilicon/poplar 56*91f16700Schasinglulu 57*91f16700SchasingluluPLAT_BL_COMMON_SOURCES := \ 58*91f16700Schasinglulu lib/xlat_tables/aarch64/xlat_tables.c \ 59*91f16700Schasinglulu lib/xlat_tables/xlat_tables_common.c \ 60*91f16700Schasinglulu drivers/delay_timer/generic_delay_timer.c \ 61*91f16700Schasinglulu drivers/arm/gic/common/gic_common.c \ 62*91f16700Schasinglulu drivers/arm/gic/v2/gicv2_helpers.c \ 63*91f16700Schasinglulu drivers/delay_timer/delay_timer.c \ 64*91f16700Schasinglulu drivers/arm/pl011/aarch64/pl011_console.S \ 65*91f16700Schasinglulu drivers/arm/gic/v2/gicv2_main.c \ 66*91f16700Schasinglulu plat/common/plat_gicv2.c \ 67*91f16700Schasinglulu plat/hisilicon/poplar/aarch64/platform_common.c \ 68*91f16700Schasinglulu plat/hisilicon/poplar/aarch64/poplar_helpers.S \ 69*91f16700Schasinglulu plat/hisilicon/poplar/poplar_gicv2.c 70*91f16700Schasinglulu 71*91f16700SchasingluluBL1_SOURCES += \ 72*91f16700Schasinglulu lib/cpus/aarch64/cortex_a53.S \ 73*91f16700Schasinglulu drivers/arm/pl061/pl061_gpio.c \ 74*91f16700Schasinglulu drivers/mmc/mmc.c \ 75*91f16700Schasinglulu drivers/synopsys/emmc/dw_mmc.c \ 76*91f16700Schasinglulu drivers/io/io_storage.c \ 77*91f16700Schasinglulu drivers/io/io_block.c \ 78*91f16700Schasinglulu drivers/gpio/gpio.c \ 79*91f16700Schasinglulu drivers/io/io_fip.c \ 80*91f16700Schasinglulu drivers/io/io_memmap.c \ 81*91f16700Schasinglulu plat/hisilicon/poplar/bl1_plat_setup.c \ 82*91f16700Schasinglulu plat/hisilicon/poplar/plat_storage.c 83*91f16700Schasinglulu 84*91f16700SchasingluluBL2_SOURCES += \ 85*91f16700Schasinglulu drivers/arm/pl061/pl061_gpio.c \ 86*91f16700Schasinglulu drivers/mmc/mmc.c \ 87*91f16700Schasinglulu drivers/synopsys/emmc/dw_mmc.c \ 88*91f16700Schasinglulu drivers/io/io_storage.c \ 89*91f16700Schasinglulu drivers/io/io_block.c \ 90*91f16700Schasinglulu drivers/io/io_fip.c \ 91*91f16700Schasinglulu drivers/gpio/gpio.c \ 92*91f16700Schasinglulu drivers/io/io_memmap.c \ 93*91f16700Schasinglulu plat/hisilicon/poplar/bl2_plat_setup.c \ 94*91f16700Schasinglulu plat/hisilicon/poplar/plat_storage.c 95*91f16700Schasinglulu 96*91f16700SchasingluluBL2_SOURCES += \ 97*91f16700Schasinglulu plat/hisilicon/poplar/bl2_plat_mem_params_desc.c \ 98*91f16700Schasinglulu plat/hisilicon/poplar/poplar_image_load.c \ 99*91f16700Schasinglulu common/desc_image_load.c 100*91f16700Schasinglulu 101*91f16700Schasingluluifeq (${SPD},opteed) 102*91f16700SchasingluluBL2_SOURCES += \ 103*91f16700Schasinglulu lib/optee/optee_utils.c 104*91f16700Schasingluluendif 105*91f16700Schasinglulu 106*91f16700SchasingluluBL31_SOURCES += \ 107*91f16700Schasinglulu lib/cpus/aarch64/aem_generic.S \ 108*91f16700Schasinglulu lib/cpus/aarch64/cortex_a53.S \ 109*91f16700Schasinglulu plat/common/plat_psci_common.c \ 110*91f16700Schasinglulu plat/hisilicon/poplar/bl31_plat_setup.c \ 111*91f16700Schasinglulu plat/hisilicon/poplar/plat_topology.c \ 112*91f16700Schasinglulu plat/hisilicon/poplar/plat_pm.c 113