xref: /rk3399_ARM-atf/plat/imx/imx7/warp7/platform.mk (revision 172e55be16df78a368e90469183e3bae4c39085f)
1*172e55beSBryan O'Donoghue#
2*172e55beSBryan O'Donoghue# Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3*172e55beSBryan O'Donoghue#
4*172e55beSBryan O'Donoghue# SPDX-License-Identifier: BSD-3-Clause
5*172e55beSBryan O'Donoghue#
6*172e55beSBryan O'Donoghue
7*172e55beSBryan O'Donoghue# Architecture
8*172e55beSBryan O'Donoghue$(eval $(call add_define,ARMV7_SUPPORTS_LARGE_PAGE_ADDRESSING))
9*172e55beSBryan O'Donoghue
10*172e55beSBryan O'Donoghue# Tune compiler for Cortex-A7
11*172e55beSBryan O'Donoghueifeq ($(notdir $(CC)),armclang)
12*172e55beSBryan O'Donoghue    TF_CFLAGS	+=	-mfpu=neon
13*172e55beSBryan O'Donoghue    ASFLAGS	+=	-mfpu=neon
14*172e55beSBryan O'Donoghueelse ifneq ($(findstring clang,$(notdir $(CC))),)
15*172e55beSBryan O'Donoghue    TF_CFLAGS	+=	-mfpu=neon
16*172e55beSBryan O'Donoghue    ASFLAGS	+=	-mfpu=neon
17*172e55beSBryan O'Donoghueelse
18*172e55beSBryan O'Donoghue    TF_CFLAGS	+=	-mfpu=neon
19*172e55beSBryan O'Donoghue    ASFLAGS	+=	-mfpu=neon
20*172e55beSBryan O'Donoghueendif
21*172e55beSBryan O'Donoghue
22*172e55beSBryan O'Donoghue# Platform
23*172e55beSBryan O'DonoghuePLAT_INCLUDES		:=	-Idrivers/imx/uart			\
24*172e55beSBryan O'Donoghue				-Iinclude/common/tbbr			\
25*172e55beSBryan O'Donoghue				-Iinclude/plat/arm/common/		\
26*172e55beSBryan O'Donoghue				-Iplat/imx/common/include/		\
27*172e55beSBryan O'Donoghue				-Iplat/imx/imx7/warp7/include		\
28*172e55beSBryan O'Donoghue				-Idrivers/imx/timer			\
29*172e55beSBryan O'Donoghue				-Idrivers/imx/usdhc			\
30*172e55beSBryan O'Donoghue				-Iplat/imx/imx7/include
31*172e55beSBryan O'Donoghue
32*172e55beSBryan O'Donoghue# Translation tables library
33*172e55beSBryan O'Donoghueinclude lib/xlat_tables_v2/xlat_tables.mk
34*172e55beSBryan O'Donoghue
35*172e55beSBryan O'DonoghueBL2_SOURCES		+=	common/desc_image_load.c			\
36*172e55beSBryan O'Donoghue				drivers/console/aarch32/console.S		\
37*172e55beSBryan O'Donoghue				drivers/delay_timer/delay_timer.c		\
38*172e55beSBryan O'Donoghue				drivers/mmc/mmc.c				\
39*172e55beSBryan O'Donoghue				drivers/io/io_block.c				\
40*172e55beSBryan O'Donoghue				drivers/io/io_fip.c				\
41*172e55beSBryan O'Donoghue				drivers/io/io_memmap.c				\
42*172e55beSBryan O'Donoghue				drivers/io/io_storage.c				\
43*172e55beSBryan O'Donoghue				drivers/imx/timer/imx_gpt.c			\
44*172e55beSBryan O'Donoghue				drivers/imx/uart/imx_uart.c			\
45*172e55beSBryan O'Donoghue				drivers/imx/uart/imx_crash_uart.S		\
46*172e55beSBryan O'Donoghue				drivers/imx/usdhc/imx_usdhc.c			\
47*172e55beSBryan O'Donoghue				lib/aarch32/arm32_aeabi_divmod.c		\
48*172e55beSBryan O'Donoghue				lib/aarch32/arm32_aeabi_divmod_a32.S		\
49*172e55beSBryan O'Donoghue				lib/cpus/aarch32/cortex_a7.S			\
50*172e55beSBryan O'Donoghue				lib/optee/optee_utils.c				\
51*172e55beSBryan O'Donoghue				plat/imx/common/imx_aips.c			\
52*172e55beSBryan O'Donoghue				plat/imx/common/imx_caam.c			\
53*172e55beSBryan O'Donoghue				plat/imx/common/imx_clock.c			\
54*172e55beSBryan O'Donoghue				plat/imx/common/imx_csu.c			\
55*172e55beSBryan O'Donoghue				plat/imx/common/imx_io_mux.c			\
56*172e55beSBryan O'Donoghue				plat/imx/common/imx_snvs.c			\
57*172e55beSBryan O'Donoghue				plat/imx/common/imx_wdog.c			\
58*172e55beSBryan O'Donoghue				plat/imx/common/imx7_clock.c		\
59*172e55beSBryan O'Donoghue				plat/imx/imx7/warp7/aarch32/warp7_helpers.S	\
60*172e55beSBryan O'Donoghue				plat/imx/imx7/warp7/warp7_bl2_el3_setup.c	\
61*172e55beSBryan O'Donoghue				plat/imx/imx7/warp7/warp7_bl2_mem_params_desc.c \
62*172e55beSBryan O'Donoghue				plat/imx/imx7/warp7/warp7_io_storage.c		\
63*172e55beSBryan O'Donoghue				plat/imx/imx7/warp7/warp7_image_load.c		\
64*172e55beSBryan O'Donoghue				${XLAT_TABLES_LIB_SRCS}
65*172e55beSBryan O'Donoghue
66*172e55beSBryan O'Donoghue# Build config flags
67*172e55beSBryan O'Donoghue# ------------------
68*172e55beSBryan O'Donoghue
69*172e55beSBryan O'DonoghueWORKAROUND_CVE_2017_5715	:= 0
70*172e55beSBryan O'Donoghue
71*172e55beSBryan O'Donoghue# Disable the PSCI platform compatibility layer by default
72*172e55beSBryan O'DonoghueENABLE_PLAT_COMPAT		:= 0
73*172e55beSBryan O'Donoghue
74*172e55beSBryan O'Donoghue# Enable reset to BL31 by default
75*172e55beSBryan O'DonoghueRESET_TO_BL31			:= 0
76*172e55beSBryan O'Donoghue
77*172e55beSBryan O'Donoghue# Non-TF Boot ROM
78*172e55beSBryan O'DonoghueBL2_AT_EL3			:= 1
79*172e55beSBryan O'Donoghue
80*172e55beSBryan O'Donoghue# Indicate single-core
81*172e55beSBryan O'DonoghueCOLD_BOOT_SINGLE_CPU		:= 1
82*172e55beSBryan O'Donoghue
83*172e55beSBryan O'Donoghue# Have different sections for code and rodata
84*172e55beSBryan O'DonoghueSEPARATE_CODE_AND_RODATA	:= 1
85*172e55beSBryan O'Donoghue
86*172e55beSBryan O'Donoghue# Use Coherent memory
87*172e55beSBryan O'DonoghueUSE_COHERENT_MEM		:= 1
88*172e55beSBryan O'Donoghue
89*172e55beSBryan O'Donoghue# Enable new version of image loading required for AArch32
90*172e55beSBryan O'DonoghueLOAD_IMAGE_V2			:= 1
91*172e55beSBryan O'Donoghue
92*172e55beSBryan O'Donoghue# PLAT_WARP7_UART
93*172e55beSBryan O'DonoghuePLAT_WARP7_UART			:=1
94*172e55beSBryan O'Donoghue$(eval $(call add_define,PLAT_WARP7_UART))
95*172e55beSBryan O'Donoghue
96*172e55beSBryan O'Donoghue# Verify build config
97*172e55beSBryan O'Donoghue# -------------------
98*172e55beSBryan O'Donoghue
99*172e55beSBryan O'Donoghueifneq (${LOAD_IMAGE_V2}, 1)
100*172e55beSBryan O'Donoghue  $(error Error: warp7 needs LOAD_IMAGE_V2=1)
101*172e55beSBryan O'Donoghueendif
102*172e55beSBryan O'Donoghue
103*172e55beSBryan O'Donoghueifeq (${ARCH},aarch64)
104*172e55beSBryan O'Donoghue  $(error Error: AArch64 not supported on i.mx7)
105*172e55beSBryan O'Donoghueendif
106