xref: /rk3399_ARM-atf/plat/imx/imx7/common/imx7.mk (revision f1318bffd4615701d3043df8b569e56a5dba074e)
1c5937f2dSJun Nie#
2*142ee34eSLauren Wehrmeister# Copyright (c) 2018-2025, 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			\
1981d1d86cSYing-Chun Liu (PaulLiu)				-Iinclude/common/tbbr
20c5937f2dSJun Nie
21c5937f2dSJun Nie# Translation tables library
22c5937f2dSJun Nieinclude lib/xlat_tables_v2/xlat_tables.mk
23c5937f2dSJun Nie
24c5937f2dSJun NieBL2_SOURCES		+=	common/desc_image_load.c			\
25c5937f2dSJun Nie				drivers/delay_timer/delay_timer.c		\
26c5937f2dSJun Nie				drivers/mmc/mmc.c				\
27c5937f2dSJun Nie				drivers/io/io_block.c				\
28c5937f2dSJun Nie				drivers/io/io_fip.c				\
29c5937f2dSJun Nie				drivers/io/io_memmap.c				\
30c5937f2dSJun Nie				drivers/io/io_storage.c				\
31c5937f2dSJun Nie				drivers/imx/timer/imx_gpt.c			\
32c5937f2dSJun Nie				drivers/imx/uart/imx_uart.c			\
33c5937f2dSJun Nie				drivers/imx/uart/imx_crash_uart.S		\
34c5937f2dSJun Nie				lib/aarch32/arm32_aeabi_divmod.c		\
35c5937f2dSJun Nie				lib/aarch32/arm32_aeabi_divmod_a32.S		\
36c5937f2dSJun Nie				lib/cpus/aarch32/cortex_a7.S			\
37c5937f2dSJun Nie				lib/optee/optee_utils.c				\
38c5937f2dSJun Nie				plat/imx/common/imx_aips.c			\
39c5937f2dSJun Nie				plat/imx/common/imx_caam.c			\
40c5937f2dSJun Nie				plat/imx/common/imx_clock.c			\
41c5937f2dSJun Nie				plat/imx/common/imx_csu.c			\
42c5937f2dSJun Nie				plat/imx/common/imx_io_mux.c			\
43c5937f2dSJun Nie				plat/imx/common/imx_snvs.c			\
44c5937f2dSJun Nie				plat/imx/common/imx_wdog.c			\
45c5937f2dSJun Nie				plat/imx/common/imx7_clock.c			\
46c5937f2dSJun Nie				plat/imx/imx7/common/imx7_bl2_mem_params_desc.c	\
47c5937f2dSJun Nie				plat/imx/imx7/common/imx7_bl2_el3_common.c	\
48c5937f2dSJun Nie				plat/imx/imx7/common/imx7_helpers.S		\
49c5937f2dSJun Nie				plat/imx/imx7/common/imx7_image_load.c		\
5081d1d86cSYing-Chun Liu (PaulLiu)				plat/imx/common/imx_io_storage.c		\
51c5937f2dSJun Nie				plat/imx/common/aarch32/imx_uart_console.S	\
52c5937f2dSJun Nie				${XLAT_TABLES_LIB_SRCS}
53c5937f2dSJun Nie
54c5937f2dSJun Nieifneq (${TRUSTED_BOARD_BOOT},0)
55c5937f2dSJun Nie
56c5937f2dSJun Nieinclude drivers/auth/mbedtls/mbedtls_crypto.mk
57c5937f2dSJun Nieinclude drivers/auth/mbedtls/mbedtls_x509.mk
58c5937f2dSJun Nie
59*142ee34eSLauren WehrmeisterAUTH_MK := drivers/auth/auth.mk
60*142ee34eSLauren Wehrmeister$(info Including ${AUTH_MK})
61*142ee34eSLauren Wehrmeisterinclude ${AUTH_MK}
62*142ee34eSLauren Wehrmeister
63*142ee34eSLauren WehrmeisterAUTH_SOURCES	+=	drivers/auth/tbbr/tbbr_cot_common.c
64c5937f2dSJun Nie
65c5937f2dSJun NieBL2_SOURCES		+=	${AUTH_SOURCES}					\
66c5937f2dSJun Nie				plat/common/tbbr/plat_tbbr.c			\
67c5937f2dSJun Nie				plat/imx/imx7/common/imx7_trusted_boot.c	\
68ad43c49eSManish V Badarkhe				plat/imx/imx7/common/imx7_rotpk.S		\
69ad43c49eSManish V Badarkhe				drivers/auth/tbbr/tbbr_cot_bl2.c
70c5937f2dSJun Nie
71c5937f2dSJun NieROT_KEY             = $(BUILD_PLAT)/rot_key.pem
72c5937f2dSJun NieROTPK_HASH          = $(BUILD_PLAT)/rotpk_sha256.bin
73c5937f2dSJun Nie
74c5937f2dSJun Nie$(eval $(call add_define_val,ROTPK_HASH,'"$(ROTPK_HASH)"'))
75c5937f2dSJun Nie
76c5937f2dSJun Nie$(BUILD_PLAT)/bl2/imx7_rotpk.o: $(ROTPK_HASH)
77c5937f2dSJun Nie
78c5937f2dSJun Niecertificates: $(ROT_KEY)
79c5937f2dSJun Nie
807a95759fSChris Kay$(ROT_KEY): | $$(@D)/
817c4e1eeaSChris Kay	$(s)echo "  OPENSSL $@"
827c4e1eeaSChris Kay	$(q)if [ ! -f $(ROT_KEY) ]; then \
83e95abc4cSSalome Thirot		${OPENSSL_BIN_PATH}/openssl genrsa 2048 > $@ 2>/dev/null; \
84c5937f2dSJun Nie	fi
85c5937f2dSJun Nie
867a95759fSChris Kay$(ROTPK_HASH): $(ROT_KEY) | $$(@D)/
877c4e1eeaSChris Kay	$(s)echo "  OPENSSL $@"
887c4e1eeaSChris Kay	$(q)${OPENSSL_BIN_PATH}/openssl rsa -in $< -pubout -outform DER 2>/dev/null |\
89e95abc4cSSalome Thirot	${OPENSSL_BIN_PATH}/openssl dgst -sha256 -binary > $@ 2>/dev/null
90c5937f2dSJun Nieendif
91c5937f2dSJun Nie
92c5937f2dSJun Nie# Add the build options to pack BLx images and kernel device tree
93c5937f2dSJun Nie# in the FIP if the platform requires.
94c5937f2dSJun Nieifneq ($(BL2),)
95c5937f2dSJun Nie$(eval $(call TOOL_ADD_PAYLOAD,${BUILD_PLAT}/tb_fw.crt,--tb-fw-cert))
96c5937f2dSJun Nieendif
97c5937f2dSJun Nieifneq ($(BL32_EXTRA1),)
98c5937f2dSJun Nie$(eval $(call TOOL_ADD_IMG,BL32_EXTRA1,--tos-fw-extra1))
99c5937f2dSJun Nieendif
100c5937f2dSJun Nieifneq ($(BL32_EXTRA2),)
101c5937f2dSJun Nie$(eval $(call TOOL_ADD_IMG,BL32_EXTRA2,--tos-fw-extra2))
102c5937f2dSJun Nieendif
103c5937f2dSJun Nieifneq ($(HW_CONFIG),)
104c5937f2dSJun Nie$(eval $(call TOOL_ADD_IMG,HW_CONFIG,--hw-config))
105c5937f2dSJun Nieendif
106c5937f2dSJun Nie
107c5937f2dSJun Nie# Verify build config
108c5937f2dSJun Nie# -------------------
109c5937f2dSJun Nie
110c5937f2dSJun Nieifeq (${ARCH},aarch64)
111c5937f2dSJun Nie  $(error Error: AArch64 not supported on i.mx7)
112c5937f2dSJun Nieendif
113043f38fdSJuan Pablo Conde
114043f38fdSJuan Pablo Condeifeq (${AARCH32_SP}, none)
115043f38fdSJuan Pablo Conde    $(error Variable AARCH32_SP has to be set for AArch32)
116043f38fdSJuan Pablo Condeendif
117