xref: /rk3399_ARM-atf/plat/imx/imx7/common/imx7.mk (revision ad43c49ee39f52d2f3e682aefd76ecbbe3e0c712)
1c5937f2dSJun Nie#
2*ad43c49eSManish V Badarkhe# Copyright (c) 2018-2020, ARM Limited and Contributors. All rights reserved.
3c5937f2dSJun Nie#
4c5937f2dSJun Nie# SPDX-License-Identifier: BSD-3-Clause
5c5937f2dSJun Nie#
6c5937f2dSJun Nie
7c5937f2dSJun Nie# Architecture
8c5937f2dSJun Nie$(eval $(call add_define,ARMV7_SUPPORTS_LARGE_PAGE_ADDRESSING))
9c5937f2dSJun Nie
10c5937f2dSJun NieTF_CFLAGS	+=	-mfpu=neon
11c5937f2dSJun NieASFLAGS		+=	-mfpu=neon
12c5937f2dSJun Nie
13c5937f2dSJun Nie# Platform
14c5937f2dSJun NiePLAT_INCLUDES		:=	-Idrivers/imx/uart			\
15c5937f2dSJun Nie				-Iplat/imx/common/include		\
16c5937f2dSJun Nie				-Iplat/imx/imx7/include			\
17c5937f2dSJun Nie				-Idrivers/imx/timer			\
18c5937f2dSJun Nie				-Idrivers/imx/usdhc			\
19c5937f2dSJun Nie
20c5937f2dSJun Nie# Translation tables library
21c5937f2dSJun Nieinclude lib/xlat_tables_v2/xlat_tables.mk
22c5937f2dSJun Nie
23c5937f2dSJun NieBL2_SOURCES		+=	common/desc_image_load.c			\
24c5937f2dSJun Nie				drivers/delay_timer/delay_timer.c		\
25c5937f2dSJun Nie				drivers/mmc/mmc.c				\
26c5937f2dSJun Nie				drivers/io/io_block.c				\
27c5937f2dSJun Nie				drivers/io/io_fip.c				\
28c5937f2dSJun Nie				drivers/io/io_memmap.c				\
29c5937f2dSJun Nie				drivers/io/io_storage.c				\
30c5937f2dSJun Nie				drivers/imx/timer/imx_gpt.c			\
31c5937f2dSJun Nie				drivers/imx/uart/imx_uart.c			\
32c5937f2dSJun Nie				drivers/imx/uart/imx_crash_uart.S		\
33c5937f2dSJun Nie				lib/aarch32/arm32_aeabi_divmod.c		\
34c5937f2dSJun Nie				lib/aarch32/arm32_aeabi_divmod_a32.S		\
35c5937f2dSJun Nie				lib/cpus/aarch32/cortex_a7.S			\
36c5937f2dSJun Nie				lib/optee/optee_utils.c				\
37c5937f2dSJun Nie				plat/imx/common/imx_aips.c			\
38c5937f2dSJun Nie				plat/imx/common/imx_caam.c			\
39c5937f2dSJun Nie				plat/imx/common/imx_clock.c			\
40c5937f2dSJun Nie				plat/imx/common/imx_csu.c			\
41c5937f2dSJun Nie				plat/imx/common/imx_io_mux.c			\
42c5937f2dSJun Nie				plat/imx/common/imx_snvs.c			\
43c5937f2dSJun Nie				plat/imx/common/imx_wdog.c			\
44c5937f2dSJun Nie				plat/imx/common/imx7_clock.c			\
45c5937f2dSJun Nie				plat/imx/imx7/common/imx7_bl2_mem_params_desc.c	\
46c5937f2dSJun Nie				plat/imx/imx7/common/imx7_bl2_el3_common.c	\
47c5937f2dSJun Nie				plat/imx/imx7/common/imx7_helpers.S		\
48c5937f2dSJun Nie				plat/imx/imx7/common/imx7_image_load.c		\
49c5937f2dSJun Nie				plat/imx/imx7/common/imx7_io_storage.c		\
50c5937f2dSJun Nie				plat/imx/common/aarch32/imx_uart_console.S	\
51c5937f2dSJun Nie				${XLAT_TABLES_LIB_SRCS}
52c5937f2dSJun Nie
53c5937f2dSJun Nieifneq (${TRUSTED_BOARD_BOOT},0)
54c5937f2dSJun Nie
55c5937f2dSJun Nieinclude drivers/auth/mbedtls/mbedtls_crypto.mk
56c5937f2dSJun Nieinclude drivers/auth/mbedtls/mbedtls_x509.mk
57c5937f2dSJun Nie
58c5937f2dSJun NieAUTH_SOURCES	:=	drivers/auth/auth_mod.c			\
59c5937f2dSJun Nie			drivers/auth/crypto_mod.c		\
60c5937f2dSJun Nie			drivers/auth/img_parser_mod.c		\
61*ad43c49eSManish V Badarkhe			drivers/auth/tbbr/tbbr_cot_common.c
62c5937f2dSJun Nie
63c5937f2dSJun NieBL2_SOURCES		+=	${AUTH_SOURCES}					\
64c5937f2dSJun Nie				plat/common/tbbr/plat_tbbr.c			\
65c5937f2dSJun Nie				plat/imx/imx7/common/imx7_trusted_boot.c	\
66*ad43c49eSManish V Badarkhe				plat/imx/imx7/common/imx7_rotpk.S		\
67*ad43c49eSManish V Badarkhe				drivers/auth/tbbr/tbbr_cot_bl2.c
68c5937f2dSJun Nie
69c5937f2dSJun NieROT_KEY             = $(BUILD_PLAT)/rot_key.pem
70c5937f2dSJun NieROTPK_HASH          = $(BUILD_PLAT)/rotpk_sha256.bin
71c5937f2dSJun Nie
72c5937f2dSJun Nie$(eval $(call add_define_val,ROTPK_HASH,'"$(ROTPK_HASH)"'))
73c5937f2dSJun Nie$(eval $(call MAKE_LIB_DIRS))
74c5937f2dSJun Nie
75c5937f2dSJun Nie$(BUILD_PLAT)/bl2/imx7_rotpk.o: $(ROTPK_HASH)
76c5937f2dSJun Nie
77c5937f2dSJun Niecertificates: $(ROT_KEY)
78c5937f2dSJun Nie
79c5937f2dSJun Nie$(ROT_KEY): | $(BUILD_PLAT)
80c5937f2dSJun Nie	@echo "  OPENSSL $@"
81c5937f2dSJun Nie	@if [ ! -f $(ROT_KEY) ]; then \
82c5937f2dSJun Nie		openssl genrsa 2048 > $@ 2>/dev/null; \
83c5937f2dSJun Nie	fi
84c5937f2dSJun Nie
85c5937f2dSJun Nie$(ROTPK_HASH): $(ROT_KEY)
86c5937f2dSJun Nie	@echo "  OPENSSL $@"
87c5937f2dSJun Nie	$(Q)openssl rsa -in $< -pubout -outform DER 2>/dev/null |\
88c5937f2dSJun Nie	openssl dgst -sha256 -binary > $@ 2>/dev/null
89c5937f2dSJun Nieendif
90c5937f2dSJun Nie
91c5937f2dSJun Nie# Add the build options to pack BLx images and kernel device tree
92c5937f2dSJun Nie# in the FIP if the platform requires.
93c5937f2dSJun Nieifneq ($(BL2),)
94c5937f2dSJun Nie$(eval $(call TOOL_ADD_PAYLOAD,${BUILD_PLAT}/tb_fw.crt,--tb-fw-cert))
95c5937f2dSJun Nieendif
96c5937f2dSJun Nieifneq ($(BL32_EXTRA1),)
97c5937f2dSJun Nie$(eval $(call TOOL_ADD_IMG,BL32_EXTRA1,--tos-fw-extra1))
98c5937f2dSJun Nieendif
99c5937f2dSJun Nieifneq ($(BL32_EXTRA2),)
100c5937f2dSJun Nie$(eval $(call TOOL_ADD_IMG,BL32_EXTRA2,--tos-fw-extra2))
101c5937f2dSJun Nieendif
102c5937f2dSJun Nieifneq ($(HW_CONFIG),)
103c5937f2dSJun Nie$(eval $(call TOOL_ADD_IMG,HW_CONFIG,--hw-config))
104c5937f2dSJun Nieendif
105c5937f2dSJun Nie
106c5937f2dSJun Nie# Verify build config
107c5937f2dSJun Nie# -------------------
108c5937f2dSJun Nie
109c5937f2dSJun Nieifeq (${ARCH},aarch64)
110c5937f2dSJun Nie  $(error Error: AArch64 not supported on i.mx7)
111c5937f2dSJun Nieendif
112