xref: /rk3399_ARM-atf/make_helpers/armv7-a-cpus.mk (revision 26e63c4450b1e4dcef3f9256663f36253e6b62d2)
1*26e63c44SEtienne Carriere#
2*26e63c44SEtienne Carriere# Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
3*26e63c44SEtienne Carriere#
4*26e63c44SEtienne Carriere# SPDX-License-Identifier: BSD-3-Clause
5*26e63c44SEtienne Carriere#
6*26e63c44SEtienne Carriere
7*26e63c44SEtienne Carriereifneq (${ARCH},aarch32)
8*26e63c44SEtienne Carriere$(error ARM_ARCH_MAJOR=7 mandates ARCH=aarch32)
9*26e63c44SEtienne Carriereendif
10*26e63c44SEtienne Carriere
11*26e63c44SEtienne Carriere# For ARMv7, set march32 from platform directive ARMV7_CORTEX_Ax=yes
12*26e63c44SEtienne Carriere# and ARM_WITH_NEON=yes/no.
13*26e63c44SEtienne Carriere#
14*26e63c44SEtienne Carriere# GCC and Clang require -march=armv7-a for C-A9 and -march=armv7ve for C-A15.
15*26e63c44SEtienne Carriere# armClang requires -march=armv7-a for all ARMv7 Cortex-A. To comply with
16*26e63c44SEtienne Carriere# all, just drop -march and supply only -mcpu.
17*26e63c44SEtienne Carriere
18*26e63c44SEtienne Carriere# Platform can override march32-directive through MARCH32_DIRECTIVE
19*26e63c44SEtienne Carriereifdef MARCH32_DIRECTIVE
20*26e63c44SEtienne Carrieremarch32-directive		:= $(MARCH32_DIRECTIVE)
21*26e63c44SEtienne Carriereelse
22*26e63c44SEtienne Carrieremarch32-set-${ARM_CORTEX_A5}	:= -mcpu=cortex-a5
23*26e63c44SEtienne Carrieremarch32-set-${ARM_CORTEX_A7}	:= -mcpu=cortex-a7
24*26e63c44SEtienne Carrieremarch32-set-${ARM_CORTEX_A9}	:= -mcpu=cortex-a9
25*26e63c44SEtienne Carrieremarch32-set-${ARM_CORTEX_A12}	:= -mcpu=cortex-a12
26*26e63c44SEtienne Carrieremarch32-set-${ARM_CORTEX_A15}	:= -mcpu=cortex-a15
27*26e63c44SEtienne Carrieremarch32-set-${ARM_CORTEX_A17}	:= -mcpu=cortex-a17
28*26e63c44SEtienne Carrieremarch32-neon-$(ARM_WITH_NEON)	:= -mfpu=neon
29*26e63c44SEtienne Carriere
30*26e63c44SEtienne Carriere# default to -march=armv7-a as target directive
31*26e63c44SEtienne Carrieremarch32-set-yes			?= -march=armv7-a
32*26e63c44SEtienne Carrieremarch32-directive		:= ${march32-set-yes} ${march32-neon-yes}
33*26e63c44SEtienne Carriereendif
34