100 lines
3.3 KiB
Makefile
100 lines
3.3 KiB
Makefile
# Copyright (C) 2018 Marvell International Ltd.
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
# https://spdx.org/licenses
|
|
|
|
MARVELL_PLAT_BASE := plat/marvell/armada
|
|
MARVELL_PLAT_INCLUDE_BASE := include/plat/marvell/armada
|
|
|
|
SEPARATE_CODE_AND_RODATA := 1
|
|
|
|
# flag to switch from PLL to ARO
|
|
ARO_ENABLE := 0
|
|
$(eval $(call add_define,ARO_ENABLE))
|
|
|
|
# Convert LLC to secure SRAM
|
|
LLC_SRAM := 0
|
|
$(eval $(call add_define,LLC_SRAM))
|
|
|
|
# Enable/Disable LLC
|
|
LLC_ENABLE := 1
|
|
$(eval $(call add_define,LLC_ENABLE))
|
|
|
|
include lib/xlat_tables_v2/xlat_tables.mk
|
|
|
|
PLAT_INCLUDES += -I$(MARVELL_PLAT_INCLUDE_BASE)/common \
|
|
-I$(MARVELL_PLAT_INCLUDE_BASE)/common/aarch64
|
|
|
|
|
|
PLAT_BL_COMMON_SOURCES += ${XLAT_TABLES_LIB_SRCS} \
|
|
$(MARVELL_PLAT_BASE)/common/aarch64/marvell_common.c \
|
|
$(MARVELL_PLAT_BASE)/common/aarch64/marvell_helpers.S \
|
|
$(MARVELL_COMMON_BASE)/marvell_console.c
|
|
|
|
BL1_SOURCES += drivers/delay_timer/delay_timer.c \
|
|
drivers/io/io_fip.c \
|
|
drivers/io/io_memmap.c \
|
|
drivers/io/io_storage.c \
|
|
$(MARVELL_PLAT_BASE)/common/marvell_bl1_setup.c \
|
|
$(MARVELL_PLAT_BASE)/common/marvell_io_storage.c \
|
|
$(MARVELL_PLAT_BASE)/common/plat_delay_timer.c
|
|
|
|
ifdef EL3_PAYLOAD_BASE
|
|
# Need the arm_program_trusted_mailbox() function to release secondary CPUs from
|
|
# their holding pen
|
|
endif
|
|
|
|
BL2_SOURCES += drivers/io/io_fip.c \
|
|
drivers/io/io_memmap.c \
|
|
drivers/io/io_storage.c \
|
|
common/desc_image_load.c \
|
|
$(MARVELL_PLAT_BASE)/common/marvell_bl2_setup.c \
|
|
$(MARVELL_PLAT_BASE)/common/marvell_io_storage.c \
|
|
$(MARVELL_PLAT_BASE)/common/aarch64/marvell_bl2_mem_params_desc.c \
|
|
$(MARVELL_PLAT_BASE)/common/marvell_image_load.c
|
|
|
|
ifeq (${SPD},opteed)
|
|
PLAT_INCLUDES += -Iinclude/lib
|
|
BL2_SOURCES += lib/optee/optee_utils.c
|
|
endif
|
|
|
|
BL31_SOURCES += $(MARVELL_PLAT_BASE)/common/marvell_bl31_setup.c \
|
|
$(MARVELL_PLAT_BASE)/common/marvell_pm.c \
|
|
$(MARVELL_PLAT_BASE)/common/marvell_topology.c \
|
|
plat/common/plat_psci_common.c \
|
|
$(MARVELL_PLAT_BASE)/common/plat_delay_timer.c \
|
|
drivers/delay_timer/delay_timer.c
|
|
|
|
# PSCI functionality
|
|
$(eval $(call add_define,CONFIG_ARM64))
|
|
|
|
# Add the build options to pack Trusted OS Extra1 and Trusted OS Extra2 images
|
|
# in the FIP if the platform requires.
|
|
ifneq ($(BL32_EXTRA1),)
|
|
$(eval $(call TOOL_ADD_IMG,bl32_extra1,--tos-fw-extra1))
|
|
endif
|
|
ifneq ($(BL32_EXTRA2),)
|
|
$(eval $(call TOOL_ADD_IMG,bl32_extra2,--tos-fw-extra2))
|
|
endif
|
|
|
|
# MSS (SCP) build
|
|
ifeq (${MSS_SUPPORT}, 1)
|
|
include $(MARVELL_PLAT_BASE)/common/mss/mss_common.mk
|
|
endif
|
|
|
|
$(BUILD_PLAT)/$(BOOT_IMAGE): $(BUILD_PLAT)/bl1.bin $(BUILD_PLAT)/$(FIP_NAME)
|
|
$(if $(shell find $(BUILD_PLAT)/bl1.bin -type f -size +128k),$(error "Image '$(BUILD_PLAT)/bl1.bin' is bigger than 128kB"))
|
|
@cp $(BUILD_PLAT)/bl1.bin $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; }
|
|
@truncate -s %128K $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; }
|
|
@cat $(BUILD_PLAT)/$(FIP_NAME) >> $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; }
|
|
@truncate -s %4 $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; }
|
|
@$(ECHO_BLANK_LINE)
|
|
@echo "Built $@ successfully"
|
|
@$(ECHO_BLANK_LINE)
|
|
|
|
.PHONY: mrvl_bootimage
|
|
mrvl_bootimage: $(BUILD_PLAT)/$(BOOT_IMAGE)
|
|
|
|
.PHONY: mrvl_flash
|
|
mrvl_flash: $(BUILD_PLAT)/$(FLASH_IMAGE)
|