xref: /rk3399_ARM-atf/plat/marvell/armada/common/marvell_common.mk (revision dc05e50b8ddfc97e2f37b6a7499761432b6f6299)
1# Copyright (C) 2018 Marvell International Ltd.
2#
3# SPDX-License-Identifier:     BSD-3-Clause
4# https://spdx.org/licenses
5
6MARVELL_PLAT_BASE		:= plat/marvell/armada
7MARVELL_PLAT_INCLUDE_BASE	:= include/plat/marvell/armada
8
9include plat/marvell/version.mk
10
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))
18
19# Convert LLC to secure SRAM
20LLC_SRAM			:= 0
21$(eval $(call add_define,LLC_SRAM))
22
23# Enable/Disable LLC
24LLC_ENABLE			:= 1
25$(eval $(call add_define,LLC_ENABLE))
26
27include lib/xlat_tables_v2/xlat_tables.mk
28
29PLAT_INCLUDES		+=	-I$(MARVELL_PLAT_INCLUDE_BASE)/common	\
30				-I$(MARVELL_PLAT_INCLUDE_BASE)/common/aarch64
31
32
33PLAT_BL_COMMON_SOURCES  += ${XLAT_TABLES_LIB_SRCS} \
34				$(MARVELL_PLAT_BASE)/common/aarch64/marvell_common.c	\
35				$(MARVELL_PLAT_BASE)/common/aarch64/marvell_helpers.S	\
36				$(MARVELL_COMMON_BASE)/marvell_console.c
37
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					\
54				common/desc_image_load.c				\
55				$(MARVELL_PLAT_BASE)/common/marvell_bl2_setup.c		\
56				$(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
60ifeq (${SPD},opteed)
61PLAT_INCLUDES		+=	-Iinclude/lib
62BL2_SOURCES		+=	lib/optee/optee_utils.c
63endif
64
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
75# 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
84# MSS (SCP) build
85ifeq (${MSS_SUPPORT}, 1)
86include $(MARVELL_PLAT_BASE)/common/mss/mss_common.mk
87endif
88
89$(BUILD_PLAT)/$(BOOT_IMAGE): $(BUILD_PLAT)/bl1.bin $(BUILD_PLAT)/$(FIP_NAME)
90	$(if $(shell find $(BUILD_PLAT)/bl1.bin -type f -size +128k),$(error "Image '$(BUILD_PLAT)/bl1.bin' is bigger than 128kB"))
91	@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; }
95	@$(ECHO_BLANK_LINE)
96	@echo "Built $@ successfully"
97	@$(ECHO_BLANK_LINE)
98
99.PHONY: mrvl_bootimage
100mrvl_bootimage: $(BUILD_PLAT)/$(BOOT_IMAGE)
101
102.PHONY: mrvl_flash
103mrvl_flash: $(BUILD_PLAT)/$(FLASH_IMAGE)
104