summaryrefslogtreecommitdiffstats
path: root/meta/conf/machine/include/arm/arch-armv8m-main.inc
diff options
context:
space:
mode:
authorJon Mason <jdmason@kudzu.us>2021-08-18 22:52:20 -0400
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-08-20 08:53:03 +0100
commitff0ea5633a8f1d9e5d709cae9b16482c6be4adcf (patch)
tree822c29ffc23f869a738f0f9ea1c1fcf2433d76e8 /meta/conf/machine/include/arm/arch-armv8m-main.inc
parenta3c1be72af66ba8dd1b1393f10dd1c13c7cb9509 (diff)
downloadpoky-ff0ea5633a8f1d9e5d709cae9b16482c6be4adcf.tar.gz
arch-arm*: add better support for gcc march extensions
GCC has the ability to pass extensions to the march parameter, which expand the funcationality of the march. For example "-march=armv7ve+simd" adds SIMD to ARMv7. Currently, there is no way to expand the march setting without modifying each instance, as you can't guarantee the ordering when using the existing TUNE_CCARGS. By introducing two new variables, TUNE_CCARGS_MARCH and TUNE_CCARGS_MARCH_OPT, we can enforce that these two go together. Also, expand existing and create new feature files that use these variables to expand the functionality. (From OE-Core rev: 794eb617bfd1997e7a3498812c63a20c58a10554) Signed-off-by: Jon Mason <jdmason@kudzu.us> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/conf/machine/include/arm/arch-armv8m-main.inc')
-rw-r--r--meta/conf/machine/include/arm/arch-armv8m-main.inc14
1 files changed, 3 insertions, 11 deletions
diff --git a/meta/conf/machine/include/arm/arch-armv8m-main.inc b/meta/conf/machine/include/arm/arch-armv8m-main.inc
index 4dbe401c19..01bef35428 100644
--- a/meta/conf/machine/include/arm/arch-armv8m-main.inc
+++ b/meta/conf/machine/include/arm/arch-armv8m-main.inc
@@ -4,23 +4,15 @@
4DEFAULTTUNE ?= "armv8m-main" 4DEFAULTTUNE ?= "armv8m-main"
5 5
6require conf/machine/include/arm/arch-armv8m-base.inc 6require conf/machine/include/arm/arch-armv8m-base.inc
7require conf/machine/include/arm/feature-arm-dsp.inc
8require conf/machine/include/arm/feature-arm-neon.inc
7 9
8TUNEVALID[armv8m-main] = "Enable instructions for ARMv8-m.main" 10TUNEVALID[armv8m-main] = "Enable instructions for ARMv8-m.main"
9TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', ' -march=armv8-m.main${MARCH_DSP}${MARCH_FPU}', '', d)}" 11TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', ' -march=armv8-m.main', '', d)}"
10MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', 'armv8m-main:', '', d)}" 12MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', 'armv8m-main:', '', d)}"
11 13
12TUNECONFLICTS[armv8m-main] = "armv4 armv5 armv6 armv7a" 14TUNECONFLICTS[armv8m-main] = "armv4 armv5 armv6 armv7a"
13 15
14# FIXME - below taken from meta/conf/machine/include/arm/arch-armv5-dsp.inc and should be put into something more generic
15TUNEVALID[dsp] = "ARM DSP functionality"
16ARMPKGSFX_DSP = "${@bb.utils.contains('TUNE_FEATURES', [ 'dsp' ], 'e', '', d)}"
17MARCH_DSP = "${@bb.utils.contains('TUNE_FEATURES', [ 'dsp' ], '+dsp', '+nodsp', d)}"
18
19# FIXME - Below belongs in meta/conf/machine/include/arm/feature-arm-neon.inc
20TUNEVALID[vfpv5spd16] = "Enable Vector Floating Point Version 5, Single Precision. with 16 registers (fpv5-sp-d16) unit."
21TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv5spd16', 'fpv5-sp-d16', '', d)}"
22MARCH_FPU = "${@bb.utils.contains('TUNE_FEATURES', [ 'vfpv5spd16' ], '+fp', '+nofp', d)}"
23
24AVAILTUNES += "armv8m-main armv8m-maine armv8m-main-vfpv5spd16 armv8m-maine-vfpv5spd16" 16AVAILTUNES += "armv8m-main armv8m-maine armv8m-main-vfpv5spd16 armv8m-maine-vfpv5spd16"
25ARMPKGARCH:tune-armv8m-main = "armv8m-main" 17ARMPKGARCH:tune-armv8m-main = "armv8m-main"
26ARMPKGARCH:tune-armv8m-maine = "armv8m-main" 18ARMPKGARCH:tune-armv8m-maine = "armv8m-main"