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