1a2847172SGrzegorz Jaszczyk# Copyright (C) 2018 Marvell International Ltd. 2a2847172SGrzegorz Jaszczyk# 3a2847172SGrzegorz Jaszczyk# SPDX-License-Identifier: BSD-3-Clause 4a2847172SGrzegorz Jaszczyk# https://spdx.org/licenses 5a2847172SGrzegorz Jaszczyk 6a2847172SGrzegorz JaszczykMARVELL_PLAT_BASE := plat/marvell/armada 7a2847172SGrzegorz JaszczykMARVELL_PLAT_INCLUDE_BASE := include/plat/marvell/armada 8a2847172SGrzegorz Jaszczyk 9a2847172SGrzegorz Jaszczykinclude plat/marvell/version.mk 10a2847172SGrzegorz Jaszczyk 11a2847172SGrzegorz JaszczykVERSION_STRING +=(Marvell-${SUBVERSION}) 12a2847172SGrzegorz Jaszczyk 13a2847172SGrzegorz JaszczykSEPARATE_CODE_AND_RODATA := 1 14a2847172SGrzegorz Jaszczyk 15a2847172SGrzegorz Jaszczyk# flag to switch from PLL to ARO 16a2847172SGrzegorz JaszczykARO_ENABLE := 0 17a2847172SGrzegorz Jaszczyk$(eval $(call add_define,ARO_ENABLE)) 185a40d70fSKonstantin Porotchkin 195a40d70fSKonstantin Porotchkin# Convert LLC to secure SRAM 205a40d70fSKonstantin PorotchkinLLC_SRAM := 0 215a40d70fSKonstantin Porotchkin$(eval $(call add_define,LLC_SRAM)) 225a40d70fSKonstantin Porotchkin 23a2847172SGrzegorz Jaszczyk# Enable/Disable LLC 24a2847172SGrzegorz JaszczykLLC_ENABLE := 1 25a2847172SGrzegorz Jaszczyk$(eval $(call add_define,LLC_ENABLE)) 26a2847172SGrzegorz Jaszczyk 27a2847172SGrzegorz Jaszczykinclude lib/xlat_tables_v2/xlat_tables.mk 28a2847172SGrzegorz Jaszczyk 29a2847172SGrzegorz JaszczykPLAT_INCLUDES += -I$(MARVELL_PLAT_INCLUDE_BASE)/common \ 30a2847172SGrzegorz Jaszczyk -I$(MARVELL_PLAT_INCLUDE_BASE)/common/aarch64 31a2847172SGrzegorz Jaszczyk 32a2847172SGrzegorz Jaszczyk 33a2847172SGrzegorz JaszczykPLAT_BL_COMMON_SOURCES += ${XLAT_TABLES_LIB_SRCS} \ 34a2847172SGrzegorz Jaszczyk $(MARVELL_PLAT_BASE)/common/aarch64/marvell_common.c \ 35a2847172SGrzegorz Jaszczyk $(MARVELL_PLAT_BASE)/common/aarch64/marvell_helpers.S \ 36a2847172SGrzegorz Jaszczyk $(MARVELL_COMMON_BASE)/marvell_console.c 37a2847172SGrzegorz Jaszczyk 38a2847172SGrzegorz JaszczykBL1_SOURCES += drivers/delay_timer/delay_timer.c \ 39a2847172SGrzegorz Jaszczyk drivers/io/io_fip.c \ 40a2847172SGrzegorz Jaszczyk drivers/io/io_memmap.c \ 41a2847172SGrzegorz Jaszczyk drivers/io/io_storage.c \ 42a2847172SGrzegorz Jaszczyk $(MARVELL_PLAT_BASE)/common/marvell_bl1_setup.c \ 43a2847172SGrzegorz Jaszczyk $(MARVELL_PLAT_BASE)/common/marvell_io_storage.c \ 44a2847172SGrzegorz Jaszczyk $(MARVELL_PLAT_BASE)/common/plat_delay_timer.c 45a2847172SGrzegorz Jaszczyk 46a2847172SGrzegorz Jaszczykifdef EL3_PAYLOAD_BASE 47a2847172SGrzegorz Jaszczyk# Need the arm_program_trusted_mailbox() function to release secondary CPUs from 48a2847172SGrzegorz Jaszczyk# their holding pen 49a2847172SGrzegorz Jaszczykendif 50a2847172SGrzegorz Jaszczyk 51a2847172SGrzegorz JaszczykBL2_SOURCES += drivers/io/io_fip.c \ 52a2847172SGrzegorz Jaszczyk drivers/io/io_memmap.c \ 53a2847172SGrzegorz Jaszczyk drivers/io/io_storage.c \ 54a2847172SGrzegorz Jaszczyk common/desc_image_load.c \ 55a2847172SGrzegorz Jaszczyk $(MARVELL_PLAT_BASE)/common/marvell_bl2_setup.c \ 56a2847172SGrzegorz Jaszczyk $(MARVELL_PLAT_BASE)/common/marvell_io_storage.c \ 57a2847172SGrzegorz Jaszczyk $(MARVELL_PLAT_BASE)/common/aarch64/marvell_bl2_mem_params_desc.c \ 58a2847172SGrzegorz Jaszczyk $(MARVELL_PLAT_BASE)/common/marvell_image_load.c 59a2847172SGrzegorz Jaszczyk 6041e8c6fcSMarcin Wojtasifeq (${SPD},opteed) 6141e8c6fcSMarcin WojtasPLAT_INCLUDES += -Iinclude/lib 6241e8c6fcSMarcin WojtasBL2_SOURCES += lib/optee/optee_utils.c 6341e8c6fcSMarcin Wojtasendif 64a2847172SGrzegorz Jaszczyk 65a2847172SGrzegorz JaszczykBL31_SOURCES += $(MARVELL_PLAT_BASE)/common/marvell_bl31_setup.c \ 66a2847172SGrzegorz Jaszczyk $(MARVELL_PLAT_BASE)/common/marvell_pm.c \ 67a2847172SGrzegorz Jaszczyk $(MARVELL_PLAT_BASE)/common/marvell_topology.c \ 68a2847172SGrzegorz Jaszczyk plat/common/plat_psci_common.c \ 69a2847172SGrzegorz Jaszczyk $(MARVELL_PLAT_BASE)/common/plat_delay_timer.c \ 70a2847172SGrzegorz Jaszczyk drivers/delay_timer/delay_timer.c 71a2847172SGrzegorz Jaszczyk 72a2847172SGrzegorz Jaszczyk# PSCI functionality 73a2847172SGrzegorz Jaszczyk$(eval $(call add_define,CONFIG_ARM64)) 74a2847172SGrzegorz Jaszczyk 7541e8c6fcSMarcin Wojtas# Add the build options to pack Trusted OS Extra1 and Trusted OS Extra2 images 7641e8c6fcSMarcin Wojtas# in the FIP if the platform requires. 7741e8c6fcSMarcin Wojtasifneq ($(BL32_EXTRA1),) 7841e8c6fcSMarcin Wojtas$(eval $(call TOOL_ADD_IMG,bl32_extra1,--tos-fw-extra1)) 7941e8c6fcSMarcin Wojtasendif 8041e8c6fcSMarcin Wojtasifneq ($(BL32_EXTRA2),) 8141e8c6fcSMarcin Wojtas$(eval $(call TOOL_ADD_IMG,bl32_extra2,--tos-fw-extra2)) 8241e8c6fcSMarcin Wojtasendif 8341e8c6fcSMarcin Wojtas 84a2847172SGrzegorz Jaszczyk# MSS (SCP) build 85a2847172SGrzegorz Jaszczykifeq (${MSS_SUPPORT}, 1) 86a2847172SGrzegorz Jaszczykinclude $(MARVELL_PLAT_BASE)/common/mss/mss_common.mk 87a2847172SGrzegorz Jaszczykendif 8891bc2da7SPali Rohár 8991bc2da7SPali Rohár$(BUILD_PLAT)/$(BOOT_IMAGE): $(BUILD_PLAT)/bl1.bin $(BUILD_PLAT)/$(FIP_NAME) 90*23b1be79SPali Rohár $(if $(shell find $(BUILD_PLAT)/bl1.bin -type f -size +128k),$(error "Image '$(BUILD_PLAT)/bl1.bin' is bigger than 128kB")) 9191bc2da7SPali Rohár @cp $(BUILD_PLAT)/bl1.bin $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; } 9291bc2da7SPali Rohár @truncate -s %128K $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; } 9391bc2da7SPali Rohár @cat $(BUILD_PLAT)/$(FIP_NAME) >> $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; } 9491bc2da7SPali Rohár @truncate -s %4 $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; } 9591bc2da7SPali Rohár @echo "Built $@ successfully" 9691bc2da7SPali Rohár 97e4bbd39cSPali Rohár.PHONY: mrvl_bootimage 9891bc2da7SPali Rohármrvl_bootimage: $(BUILD_PLAT)/$(BOOT_IMAGE) 99