blob: a8e9d507866030cf97f733e2ee1ff4456b81c24b [file] [log] [blame]
Etienne Carriere1374fcb2017-11-08 13:48:40 +01001#
2# Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6
7ifneq (${ARCH},aarch32)
8$(error ARM_ARCH_MAJOR=7 mandates ARCH=aarch32)
9endif
10
11# For ARMv7, set march32 from platform directive ARMV7_CORTEX_Ax=yes
12# and ARM_WITH_NEON=yes/no.
13#
14# GCC and Clang require -march=armv7-a for C-A9 and -march=armv7ve for C-A15.
15# armClang requires -march=armv7-a for all ARMv7 Cortex-A. To comply with
16# all, just drop -march and supply only -mcpu.
17
Govindraj Rajacd10c6e2023-05-30 16:52:15 -050018# Platform can override march-directive through MARCH_DIRECTIVE
19ifdef MARCH_DIRECTIVE
20march-directive := $(MARCH_DIRECTIVE)
Etienne Carriere1374fcb2017-11-08 13:48:40 +010021else
22march32-set-${ARM_CORTEX_A5} := -mcpu=cortex-a5
23march32-set-${ARM_CORTEX_A7} := -mcpu=cortex-a7
24march32-set-${ARM_CORTEX_A9} := -mcpu=cortex-a9
25march32-set-${ARM_CORTEX_A12} := -mcpu=cortex-a12
26march32-set-${ARM_CORTEX_A15} := -mcpu=cortex-a15
27march32-set-${ARM_CORTEX_A17} := -mcpu=cortex-a17
28march32-neon-$(ARM_WITH_NEON) := -mfpu=neon
29
30# default to -march=armv7-a as target directive
31march32-set-yes ?= -march=armv7-a
Govindraj Rajacd10c6e2023-05-30 16:52:15 -050032march-directive := ${march32-set-yes} ${march32-neon-yes}
Etienne Carriere1374fcb2017-11-08 13:48:40 +010033endif
Etienne Carriere0af78b62017-11-08 13:53:47 +010034
35# Platform may override these extension support directives:
36#
37# ARMV7_SUPPORTS_LARGE_PAGE_ADDRESSING
38# Defined if core supports the Large Page Addressing extension.
Etienne Carriere4cce8352017-11-08 14:38:33 +010039#
40# ARMV7_SUPPORTS_VIRTUALIZATION
41# Defined if ARMv7 core supports the Virtualization extension.
Etienne Carrieree259fa72017-11-08 14:41:47 +010042#
43# ARMV7_SUPPORTS_GENERIC_TIMER
44# Defined if ARMv7 core supports the Generic Timer extension.
Etienne Carriere0af78b62017-11-08 13:53:47 +010045
46ifeq ($(filter yes,$(ARM_CORTEX_A7) $(ARM_CORTEX_A12) $(ARM_CORTEX_A15) $(ARM_CORTEX_A17)),yes)
Leonardo Sandoval65fca7c2020-09-10 12:18:27 -050047$(eval $(call add_defines,\
48 $(sort \
49 ARMV7_SUPPORTS_LARGE_PAGE_ADDRESSING \
50 ARMV7_SUPPORTS_VIRTUALIZATION \
51 ARMV7_SUPPORTS_GENERIC_TIMER \
52 ARMV7_SUPPORTS_VFP \
53)))
Usama Arif078e66f2018-12-12 17:14:29 +000054endif
55
56ifeq ($(ARM_CORTEX_A5),yes)
57$(eval $(call add_define,ARM_CORTEX_A5))
Etienne Carriere0af78b62017-11-08 13:53:47 +010058endif