1# 2# Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. 3# 4# SPDX-License-Identifier: BSD-3-Clause 5# 6 7# Enable version2 of image loading 8LOAD_IMAGE_V2 := 1 9 10# On Poplar, the TSP can execute from TZC secure area in DRAM. 11POPLAR_TSP_RAM_LOCATION ?= dram 12ifeq (${POPLAR_TSP_RAM_LOCATION}, dram) 13 POPLAR_TSP_RAM_LOCATION_ID = POPLAR_DRAM_ID 14else ifeq (${POPLAR_TSP_RAM_LOCATION}, sram) 15 POPLAR_TSP_RAM_LOCATION_ID = POPLAR_SRAM_ID 16else 17 $(error "Currently unsupported POPLAR_TSP_RAM_LOCATION value") 18endif 19$(eval $(call add_define,POPLAR_TSP_RAM_LOCATION_ID)) 20 21POPLAR_DRAM_SIZE ?= two_gig 22ifeq (${POPLAR_DRAM_SIZE}, two_gig) 23 POPLAR_DRAM_SIZE_ID = POPLAR_DRAM_SIZE_2G 24else ifeq (${POPLAR_DRAM_SIZE}, one_gig) 25 POPLAR_DRAM_SIZE_ID = POPLAR_DRAM_SIZE_1G 26else 27 $(error "Currently unsupported POPLAR_DRAM_SIZE value") 28endif 29$(eval $(call add_define,POPLAR_DRAM_SIZE_ID)) 30 31POPLAR_RECOVERY := 0 32$(eval $(call add_define,POPLAR_RECOVERY)) 33 34# Add the build options to pack Trusted OS Extra1 and Trusted OS Extra2 images 35# in the FIP if the platform requires. 36ifneq ($(BL32_EXTRA1),) 37$(eval $(call FIP_ADD_IMG,BL32_EXTRA1,--tos-fw-extra1)) 38endif 39ifneq ($(BL32_EXTRA2),) 40$(eval $(call FIP_ADD_IMG,BL32_EXTRA2,--tos-fw-extra2)) 41endif 42 43NEED_BL33 := yes 44 45COLD_BOOT_SINGLE_CPU := 1 46PROGRAMMABLE_RESET_ADDRESS := 1 47CTX_INCLUDE_FPREGS := 1 48ENABLE_PLAT_COMPAT := 0 49ERRATA_A53_855873 := 1 50ERRATA_A53_835769 := 1 51ERRATA_A53_843419 := 1 52ENABLE_SVE_FOR_NS := 0 53 54WORKAROUND_CVE_2017_5715 := 0 55 56ARM_GIC_ARCH := 2 57$(eval $(call add_define,ARM_GIC_ARCH)) 58 59PLAT_PL061_MAX_GPIOS := 104 60$(eval $(call add_define,PLAT_PL061_MAX_GPIOS)) 61 62PLAT_INCLUDES := -Iplat/hisilicon/poplar/include \ 63 -Iinclude/plat/arm/common/ \ 64 -Iplat/hisilicon/poplar \ 65 -Iinclude/common/tbbr \ 66 -Iinclude/drivers/synopsys \ 67 -Iinclude/drivers/io 68 69PLAT_BL_COMMON_SOURCES := \ 70 lib/aarch64/xlat_tables.c \ 71 drivers/delay_timer/generic_delay_timer.c \ 72 drivers/arm/gic/common/gic_common.c \ 73 drivers/arm/gic/v2/gicv2_helpers.c \ 74 drivers/delay_timer/delay_timer.c \ 75 drivers/arm/pl011/pl011_console.S \ 76 drivers/arm/gic/v2/gicv2_main.c \ 77 plat/arm/common/aarch64/arm_helpers.S \ 78 plat/arm/common/arm_gicv2.c \ 79 plat/common/plat_gicv2.c \ 80 plat/hisilicon/poplar/aarch64/platform_common.c 81 82BL1_SOURCES += \ 83 lib/cpus/aarch64/cortex_a53.S \ 84 drivers/arm/pl061/pl061_gpio.c \ 85 drivers/emmc/emmc.c \ 86 drivers/synopsys/emmc/dw_mmc.c \ 87 drivers/io/io_storage.c \ 88 drivers/io/io_block.c \ 89 drivers/gpio/gpio.c \ 90 drivers/io/io_fip.c \ 91 drivers/io/io_memmap.c \ 92 plat/hisilicon/poplar/bl1_plat_setup.c \ 93 plat/hisilicon/poplar/plat_storage.c 94 95BL2_SOURCES += \ 96 drivers/arm/pl061/pl061_gpio.c \ 97 drivers/emmc/emmc.c \ 98 drivers/synopsys/emmc/dw_mmc.c \ 99 drivers/io/io_storage.c \ 100 drivers/io/io_block.c \ 101 drivers/io/io_fip.c \ 102 drivers/gpio/gpio.c \ 103 drivers/io/io_memmap.c \ 104 plat/hisilicon/poplar/bl2_plat_setup.c \ 105 plat/hisilicon/poplar/plat_storage.c 106 107ifeq (${LOAD_IMAGE_V2},1) 108BL2_SOURCES += \ 109 plat/hisilicon/poplar/bl2_plat_mem_params_desc.c \ 110 plat/hisilicon/poplar/poplar_image_load.c \ 111 common/desc_image_load.c 112 113ifeq (${SPD},opteed) 114BL2_SOURCES += \ 115 lib/optee/optee_utils.c 116endif 117endif 118 119BL31_SOURCES += \ 120 lib/cpus/aarch64/aem_generic.S \ 121 lib/cpus/aarch64/cortex_a53.S \ 122 plat/common/aarch64/plat_psci_common.c \ 123 plat/hisilicon/poplar/bl31_plat_setup.c \ 124 plat/hisilicon/poplar/plat_topology.c \ 125 plat/hisilicon/poplar/plat_pm.c 126