blob: 04eb51c48d2b060b70873c5401e02f3c05d65b55 [file] [log] [blame]
Konstantin Porotchkinf69ec582018-06-07 18:31:14 +03001# Copyright (C) 2018 Marvell International Ltd.
2#
3# SPDX-License-Identifier: BSD-3-Clause
4# https://spdx.org/licenses
5
Grzegorz Jaszczyk3039bce2019-11-05 13:14:59 +01006MARVELL_PLAT_BASE := plat/marvell/armada
7MARVELL_PLAT_INCLUDE_BASE := include/plat/marvell/armada
Konstantin Porotchkinf69ec582018-06-07 18:31:14 +03008
Grzegorz Jaszczyk3039bce2019-11-05 13:14:59 +01009include plat/marvell/version.mk
Konstantin Porotchkinf69ec582018-06-07 18:31:14 +030010
11VERSION_STRING +=(Marvell-${SUBVERSION})
12
13SEPARATE_CODE_AND_RODATA := 1
14
15# flag to switch from PLL to ARO
16ARO_ENABLE := 0
17$(eval $(call add_define,ARO_ENABLE))
Konstantin Porotchkin2ef36a32019-03-31 16:58:11 +030018
19# Convert LLC to secure SRAM
20LLC_SRAM := 0
21$(eval $(call add_define,LLC_SRAM))
22
Konstantin Porotchkinf69ec582018-06-07 18:31:14 +030023# Enable/Disable LLC
24LLC_ENABLE := 1
25$(eval $(call add_define,LLC_ENABLE))
26
Remi Pommarel7459e742019-07-14 20:34:28 +020027include lib/xlat_tables_v2/xlat_tables.mk
28
Antonio Nino Diaz50a4d1a2019-02-01 12:22:22 +000029PLAT_INCLUDES += -I$(MARVELL_PLAT_INCLUDE_BASE)/common \
Konstantin Porotchkinf69ec582018-06-07 18:31:14 +030030 -I$(MARVELL_PLAT_INCLUDE_BASE)/common/aarch64
31
32
Remi Pommarel7459e742019-07-14 20:34:28 +020033PLAT_BL_COMMON_SOURCES += ${XLAT_TABLES_LIB_SRCS} \
Konstantin Porotchkinf69ec582018-06-07 18:31:14 +030034 $(MARVELL_PLAT_BASE)/common/aarch64/marvell_common.c \
Konstantin Porotchkind8e39572018-11-14 17:15:08 +020035 $(MARVELL_PLAT_BASE)/common/aarch64/marvell_helpers.S \
36 $(MARVELL_COMMON_BASE)/marvell_console.c
Konstantin Porotchkinf69ec582018-06-07 18:31:14 +030037
38BL1_SOURCES += drivers/delay_timer/delay_timer.c \
39 drivers/io/io_fip.c \
40 drivers/io/io_memmap.c \
41 drivers/io/io_storage.c \
42 $(MARVELL_PLAT_BASE)/common/marvell_bl1_setup.c \
43 $(MARVELL_PLAT_BASE)/common/marvell_io_storage.c \
44 $(MARVELL_PLAT_BASE)/common/plat_delay_timer.c
45
46ifdef EL3_PAYLOAD_BASE
47# Need the arm_program_trusted_mailbox() function to release secondary CPUs from
48# their holding pen
49endif
50
51BL2_SOURCES += drivers/io/io_fip.c \
52 drivers/io/io_memmap.c \
53 drivers/io/io_storage.c \
Konstantin Porotchkind973c032018-10-02 17:45:15 +030054 common/desc_image_load.c \
Konstantin Porotchkinf69ec582018-06-07 18:31:14 +030055 $(MARVELL_PLAT_BASE)/common/marvell_bl2_setup.c \
Konstantin Porotchkind973c032018-10-02 17:45:15 +030056 $(MARVELL_PLAT_BASE)/common/marvell_io_storage.c \
57 $(MARVELL_PLAT_BASE)/common/aarch64/marvell_bl2_mem_params_desc.c \
58 $(MARVELL_PLAT_BASE)/common/marvell_image_load.c
59
Marcin Wojtas35b75f02019-11-13 13:31:48 +010060ifeq (${SPD},opteed)
61PLAT_INCLUDES += -Iinclude/lib
62BL2_SOURCES += lib/optee/optee_utils.c
63endif
Konstantin Porotchkinf69ec582018-06-07 18:31:14 +030064
65BL31_SOURCES += $(MARVELL_PLAT_BASE)/common/marvell_bl31_setup.c \
66 $(MARVELL_PLAT_BASE)/common/marvell_pm.c \
67 $(MARVELL_PLAT_BASE)/common/marvell_topology.c \
68 plat/common/plat_psci_common.c \
69 $(MARVELL_PLAT_BASE)/common/plat_delay_timer.c \
70 drivers/delay_timer/delay_timer.c
71
72# PSCI functionality
73$(eval $(call add_define,CONFIG_ARM64))
74
Marcin Wojtas35b75f02019-11-13 13:31:48 +010075# Add the build options to pack Trusted OS Extra1 and Trusted OS Extra2 images
76# in the FIP if the platform requires.
77ifneq ($(BL32_EXTRA1),)
78$(eval $(call TOOL_ADD_IMG,bl32_extra1,--tos-fw-extra1))
79endif
80ifneq ($(BL32_EXTRA2),)
81$(eval $(call TOOL_ADD_IMG,bl32_extra2,--tos-fw-extra2))
82endif
83
Konstantin Porotchkinf69ec582018-06-07 18:31:14 +030084# MSS (SCP) build
85ifeq (${MSS_SUPPORT}, 1)
86include $(MARVELL_PLAT_BASE)/common/mss/mss_common.mk
87endif
Pali Rohár3666d482020-10-29 16:50:19 +010088
89$(BUILD_PLAT)/$(BOOT_IMAGE): $(BUILD_PLAT)/bl1.bin $(BUILD_PLAT)/$(FIP_NAME)
Pali Rohár5cd386f2020-12-03 11:59:53 +010090 $(if $(shell find $(BUILD_PLAT)/bl1.bin -type f -size +128k),$(error "Image '$(BUILD_PLAT)/bl1.bin' is bigger than 128kB"))
Pali Rohár3666d482020-10-29 16:50:19 +010091 @cp $(BUILD_PLAT)/bl1.bin $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; }
92 @truncate -s %128K $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; }
93 @cat $(BUILD_PLAT)/$(FIP_NAME) >> $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; }
94 @truncate -s %4 $(BUILD_PLAT)/$(BOOT_IMAGE) || { rm -f $(BUILD_PLAT)/$(BOOT_IMAGE); false; }
Pali Rohár7cf48c82021-01-26 10:44:07 +010095 @$(ECHO_BLANK_LINE)
Pali Rohár3666d482020-10-29 16:50:19 +010096 @echo "Built $@ successfully"
Pali Rohár7cf48c82021-01-26 10:44:07 +010097 @$(ECHO_BLANK_LINE)
Pali Rohár3666d482020-10-29 16:50:19 +010098
Pali Rohár06a38e22020-11-23 19:45:28 +010099.PHONY: mrvl_bootimage
Pali Rohár3666d482020-10-29 16:50:19 +0100100mrvl_bootimage: $(BUILD_PLAT)/$(BOOT_IMAGE)
Pali Rohár4bce4d52021-01-26 10:44:07 +0100101
102.PHONY: mrvl_flash
103mrvl_flash: $(BUILD_PLAT)/$(FLASH_IMAGE)