diff options
author | Jon Mason <jdmason@kudzu.us> | 2021-08-18 22:52:20 -0400 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-08-20 08:53:03 +0100 |
commit | ff0ea5633a8f1d9e5d709cae9b16482c6be4adcf (patch) | |
tree | 822c29ffc23f869a738f0f9ea1c1fcf2433d76e8 /meta/conf/machine/include/arm | |
parent | a3c1be72af66ba8dd1b1393f10dd1c13c7cb9509 (diff) | |
download | poky-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')
18 files changed, 37 insertions, 27 deletions
diff --git a/meta/conf/machine/include/arm/arch-arm.inc b/meta/conf/machine/include/arm/arch-arm.inc index 869089051c..f1e92e19c6 100644 --- a/meta/conf/machine/include/arm/arch-arm.inc +++ b/meta/conf/machine/include/arm/arch-arm.inc | |||
@@ -14,3 +14,7 @@ TUNE_PKGARCH = "${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI} | |||
14 | ABIEXTENSION = "eabi" | 14 | ABIEXTENSION = "eabi" |
15 | 15 | ||
16 | TARGET_FPU = "${@d.getVar('TUNE_CCARGS_MFLOAT') or 'soft'}" | 16 | TARGET_FPU = "${@d.getVar('TUNE_CCARGS_MFLOAT') or 'soft'}" |
17 | |||
18 | # Some -march settings need a +X option passed in. Since we cannot guarantee that any specified TUNE_CCARGS option is set in any order, we must hard code the order here to allow for it. | ||
19 | TUNE_CCARGS_MARCH_OPTS ??= "" | ||
20 | TUNE_CCARGS .= "${TUNE_CCARGS_MARCH}${TUNE_CCARGS_MARCH_OPTS}" | ||
diff --git a/meta/conf/machine/include/arm/arch-armv4.inc b/meta/conf/machine/include/arm/arch-armv4.inc index 4f4a63b287..be5761fb20 100644 --- a/meta/conf/machine/include/arm/arch-armv4.inc +++ b/meta/conf/machine/include/arm/arch-armv4.inc | |||
@@ -2,7 +2,7 @@ DEFAULTTUNE ?= "armv4" | |||
2 | 2 | ||
3 | TUNEVALID[arm] = "Enable ARM instruction set" | 3 | TUNEVALID[arm] = "Enable ARM instruction set" |
4 | TUNEVALID[armv4] = "Enable instructions for ARMv4" | 4 | TUNEVALID[armv4] = "Enable instructions for ARMv4" |
5 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv4', ' -march=armv4${ARMPKGSFX_THUMB}', '', d)}" | 5 | TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv4', ' -march=armv4${ARMPKGSFX_THUMB}', '', d)}" |
6 | # enable --fix-v4bx when we have armv4 in TUNE_FEATURES, but then disable it when we have also armv5 or thumb | 6 | # enable --fix-v4bx when we have armv4 in TUNE_FEATURES, but then disable it when we have also armv5 or thumb |
7 | # maybe we should extend bb.utils.contains to support check for any checkvalues in value, now it does | 7 | # maybe we should extend bb.utils.contains to support check for any checkvalues in value, now it does |
8 | # checkvalues.issubset(val) which cannot be used for negative test of foo neither bar in value | 8 | # checkvalues.issubset(val) which cannot be used for negative test of foo neither bar in value |
diff --git a/meta/conf/machine/include/arm/arch-armv5.inc b/meta/conf/machine/include/arm/arch-armv5.inc index 5f46992098..6bb465e7b6 100644 --- a/meta/conf/machine/include/arm/arch-armv5.inc +++ b/meta/conf/machine/include/arm/arch-armv5.inc | |||
@@ -2,7 +2,7 @@ DEFAULTTUNE ?= "armv5" | |||
2 | 2 | ||
3 | TUNEVALID[armv5] = "Enable instructions for ARMv5" | 3 | TUNEVALID[armv5] = "Enable instructions for ARMv5" |
4 | TUNECONFLICTS[armv5] = "armv4" | 4 | TUNECONFLICTS[armv5] = "armv4" |
5 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv5', ' -march=armv5t${ARMPKGSFX_DSP}', '', d)}" | 5 | TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv5', ' -march=armv5t${ARMPKGSFX_DSP}', '', d)}" |
6 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv5', 'armv5:', '', d)}" | 6 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv5', 'armv5:', '', d)}" |
7 | 7 | ||
8 | require conf/machine/include/arm/arch-armv4.inc | 8 | require conf/machine/include/arm/arch-armv4.inc |
diff --git a/meta/conf/machine/include/arm/arch-armv6.inc b/meta/conf/machine/include/arm/arch-armv6.inc index 9d2e112b71..ef8d288ea7 100644 --- a/meta/conf/machine/include/arm/arch-armv6.inc +++ b/meta/conf/machine/include/arm/arch-armv6.inc | |||
@@ -2,7 +2,7 @@ DEFAULTTUNE ?= "armv6hf" | |||
2 | 2 | ||
3 | TUNEVALID[armv6] = "Enable instructions for ARMv6" | 3 | TUNEVALID[armv6] = "Enable instructions for ARMv6" |
4 | TUNECONFLICTS[armv6] = "armv4 armv5" | 4 | TUNECONFLICTS[armv6] = "armv4 armv5" |
5 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6', ' -march=armv6', '', d)}" | 5 | TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6', ' -march=armv6', '', d)}" |
6 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv6', 'armv6:', '', d)}" | 6 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv6', 'armv6:', '', d)}" |
7 | 7 | ||
8 | require conf/machine/include/arm/arch-armv5-dsp.inc | 8 | require conf/machine/include/arm/arch-armv5-dsp.inc |
diff --git a/meta/conf/machine/include/arm/arch-armv6m.inc b/meta/conf/machine/include/arm/arch-armv6m.inc index e7ca665a02..d6d6c7ed2d 100644 --- a/meta/conf/machine/include/arm/arch-armv6m.inc +++ b/meta/conf/machine/include/arm/arch-armv6m.inc | |||
@@ -7,7 +7,7 @@ TUNECONFLICTS[armv6m] = "armv4 armv5 armv6 armv7a" | |||
7 | 7 | ||
8 | # Use armv6s-m instead of armv6-m to avoid gcc bug "SVC is not permitted on this architecture". | 8 | # Use armv6s-m instead of armv6-m to avoid gcc bug "SVC is not permitted on this architecture". |
9 | # SVC is a valid instruction. | 9 | # SVC is a valid instruction. |
10 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', ' -march=armv6s-m', '', d)}" | 10 | TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', ' -march=armv6s-m', '', d)}" |
11 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', 'armv6m:', '', d)}" | 11 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', 'armv6m:', '', d)}" |
12 | 12 | ||
13 | require conf/machine/include/arm/arch-armv5.inc | 13 | require conf/machine/include/arm/arch-armv5.inc |
diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc b/meta/conf/machine/include/arm/arch-armv7a.inc index 0f83cee37c..0a805b3be2 100644 --- a/meta/conf/machine/include/arm/arch-armv7a.inc +++ b/meta/conf/machine/include/arm/arch-armv7a.inc | |||
@@ -3,7 +3,7 @@ ARM_INSTRUCTION_SET ?= "thumb" | |||
3 | 3 | ||
4 | TUNEVALID[armv7a] = "Enable instructions for ARMv7-a" | 4 | TUNEVALID[armv7a] = "Enable instructions for ARMv7-a" |
5 | TUNECONFLICTS[armv7a] = "armv4 armv5 armv6 armv7" | 5 | TUNECONFLICTS[armv7a] = "armv4 armv5 armv6 armv7" |
6 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', ' -march=armv7-a', '', d)}" | 6 | TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', ' -march=armv7-a', '', d)}" |
7 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', 'armv7a:', '', d)}" | 7 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', 'armv7a:', '', d)}" |
8 | 8 | ||
9 | require conf/machine/include/arm/arch-armv6.inc | 9 | require conf/machine/include/arm/arch-armv6.inc |
diff --git a/meta/conf/machine/include/arm/arch-armv7em.inc b/meta/conf/machine/include/arm/arch-armv7em.inc index adcab272ed..f7608ea2ee 100644 --- a/meta/conf/machine/include/arm/arch-armv7em.inc +++ b/meta/conf/machine/include/arm/arch-armv7em.inc | |||
@@ -4,7 +4,7 @@ | |||
4 | DEFAULTTUNE ?= "armv7em" | 4 | DEFAULTTUNE ?= "armv7em" |
5 | 5 | ||
6 | TUNEVALID[armv7em] = "Enable instructions for ARMv7e-m" | 6 | TUNEVALID[armv7em] = "Enable instructions for ARMv7e-m" |
7 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7em', ' -march=armv7e-m', '', d)}" | 7 | TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7em', ' -march=armv7e-m', '', d)}" |
8 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7em', 'armv7em:', '', d)}" | 8 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7em', 'armv7em:', '', d)}" |
9 | 9 | ||
10 | TUNECONFLICTS[armv7em] = "armv4 armv5 armv6 armv7a" | 10 | TUNECONFLICTS[armv7em] = "armv4 armv5 armv6 armv7a" |
diff --git a/meta/conf/machine/include/arm/arch-armv7m.inc b/meta/conf/machine/include/arm/arch-armv7m.inc index a36c265bc1..2b69a3dfd1 100644 --- a/meta/conf/machine/include/arm/arch-armv7m.inc +++ b/meta/conf/machine/include/arm/arch-armv7m.inc | |||
@@ -4,7 +4,7 @@ | |||
4 | DEFAULTTUNE ?= "armv7m" | 4 | DEFAULTTUNE ?= "armv7m" |
5 | 5 | ||
6 | TUNEVALID[armv7m] = "Enable instructions for ARMv7-m" | 6 | TUNEVALID[armv7m] = "Enable instructions for ARMv7-m" |
7 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', ' -march=armv7-m', '', d)}" | 7 | TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', ' -march=armv7-m', '', d)}" |
8 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', 'armv7m:', '', d)}" | 8 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', 'armv7m:', '', d)}" |
9 | 9 | ||
10 | TUNECONFLICTS[armv7m] = "armv4 armv5 armv6 armv7a" | 10 | TUNECONFLICTS[armv7m] = "armv4 armv5 armv6 armv7a" |
diff --git a/meta/conf/machine/include/arm/arch-armv7ve.inc b/meta/conf/machine/include/arm/arch-armv7ve.inc index b40c2ca8ad..8102ae6085 100644 --- a/meta/conf/machine/include/arm/arch-armv7ve.inc +++ b/meta/conf/machine/include/arm/arch-armv7ve.inc | |||
@@ -2,7 +2,7 @@ DEFAULTTUNE ?= "armv7vethf" | |||
2 | 2 | ||
3 | TUNEVALID[armv7ve] = "Enable instructions for ARMv7ve" | 3 | TUNEVALID[armv7ve] = "Enable instructions for ARMv7ve" |
4 | TUNECONFLICTS[armv7ve] = "armv4 armv5 armv6 armv7 armv7a" | 4 | TUNECONFLICTS[armv7ve] = "armv4 armv5 armv6 armv7 armv7a" |
5 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', ' -march=armv7ve', '', d)}" | 5 | TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', ' -march=armv7ve', '', d)}" |
6 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 'armv7ve:', '', d)}" | 6 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 'armv7ve:', '', d)}" |
7 | 7 | ||
8 | require conf/machine/include/arm/arch-armv7a.inc | 8 | require conf/machine/include/arm/arch-armv7a.inc |
diff --git a/meta/conf/machine/include/arm/arch-armv8-1m-main.inc b/meta/conf/machine/include/arm/arch-armv8-1m-main.inc index 9171b31c90..5b1bcb8f46 100644 --- a/meta/conf/machine/include/arm/arch-armv8-1m-main.inc +++ b/meta/conf/machine/include/arm/arch-armv8-1m-main.inc | |||
@@ -5,7 +5,7 @@ | |||
5 | DEFAULTTUNE ?= "armv8-1m-main" | 5 | DEFAULTTUNE ?= "armv8-1m-main" |
6 | 6 | ||
7 | TUNEVALID[armv8-1m-main] = "Enable instructions for ARMv8.1-m.main" | 7 | TUNEVALID[armv8-1m-main] = "Enable instructions for ARMv8.1-m.main" |
8 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-1m-main', ' -march=armv8.1-m.main', '', d)}" | 8 | TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-1m-main', ' -march=armv8.1-m.main', '', d)}" |
9 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-1m-main', 'armv8-1m-main:', '', d)}" | 9 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-1m-main', 'armv8-1m-main:', '', d)}" |
10 | 10 | ||
11 | TUNECONFLICTS[armv8-1m-main] = "armv4 armv5 armv6 armv7a" | 11 | TUNECONFLICTS[armv8-1m-main] = "armv4 armv5 armv6 armv7a" |
diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc b/meta/conf/machine/include/arm/arch-armv8-2a.inc index c84b1ecf24..30f2870811 100644 --- a/meta/conf/machine/include/arm/arch-armv8-2a.inc +++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc | |||
@@ -1,7 +1,7 @@ | |||
1 | DEFAULTTUNE ?= "armv8-2a" | 1 | DEFAULTTUNE ?= "armv8-2a" |
2 | 2 | ||
3 | TUNEVALID[armv8-2a] = "Enable instructions for ARMv8-a" | 3 | TUNEVALID[armv8-2a] = "Enable instructions for ARMv8-a" |
4 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', ' -march=armv8.2-a', '', d)}" | 4 | TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', ' -march=armv8.2-a', '', d)}" |
5 | # TUNE crypto will be handled by arch-armv8a.inc below | 5 | # TUNE crypto will be handled by arch-armv8a.inc below |
6 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', 'armv8-2a:', '', d)}" | 6 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', 'armv8-2a:', '', d)}" |
7 | 7 | ||
diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc index 819dffbeba..97c944dfa5 100644 --- a/meta/conf/machine/include/arm/arch-armv8a.inc +++ b/meta/conf/machine/include/arm/arch-armv8a.inc | |||
@@ -1,14 +1,12 @@ | |||
1 | DEFAULTTUNE ?= "armv8a-crc" | 1 | DEFAULTTUNE ?= "armv8a-crc" |
2 | 2 | ||
3 | TUNEVALID[armv8a] = "Enable instructions for ARMv8-a" | 3 | TUNEVALID[armv8a] = "Enable instructions for ARMv8-a" |
4 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}" | 4 | TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}" |
5 | TUNEVALID[crc] = "Enable instructions for ARMv8-a Cyclic Redundancy Check (CRC)" | ||
6 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}" | ||
7 | TUNEVALID[crypto] = "Enable instructions for ARMv8-a cryptographic" | ||
8 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '+crypto', '', d)}" | ||
9 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', 'armv8a:', '', d)}" | 5 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', 'armv8a:', '', d)}" |
10 | 6 | ||
11 | require conf/machine/include/arm/arch-arm64.inc | 7 | require conf/machine/include/arm/arch-arm64.inc |
8 | require conf/machine/include/arm/feature-arm-crc.inc | ||
9 | require conf/machine/include/arm/feature-arm-crypto.inc | ||
12 | 10 | ||
13 | # Little Endian base configs | 11 | # Little Endian base configs |
14 | AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto" | 12 | AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto" |
diff --git a/meta/conf/machine/include/arm/arch-armv8m-base.inc b/meta/conf/machine/include/arm/arch-armv8m-base.inc index d9a341c66e..ffee8cea80 100644 --- a/meta/conf/machine/include/arm/arch-armv8m-base.inc +++ b/meta/conf/machine/include/arm/arch-armv8m-base.inc | |||
@@ -4,7 +4,7 @@ | |||
4 | DEFAULTTUNE ?= "armv8m-base" | 4 | DEFAULTTUNE ?= "armv8m-base" |
5 | 5 | ||
6 | TUNEVALID[armv8m-base] = "Enable instructions for ARMv8-m.base" | 6 | TUNEVALID[armv8m-base] = "Enable instructions for ARMv8-m.base" |
7 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-base', ' -march=armv8-m.base', '', d)}" | 7 | TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-base', ' -march=armv8-m.base', '', d)}" |
8 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-base', 'armv8m-base:', '', d)}" | 8 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-base', 'armv8m-base:', '', d)}" |
9 | 9 | ||
10 | TUNECONFLICTS[armv8m-base] = "armv4 armv5 armv6 armv7a" | 10 | TUNECONFLICTS[armv8m-base] = "armv4 armv5 armv6 armv7a" |
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 @@ | |||
4 | DEFAULTTUNE ?= "armv8m-main" | 4 | DEFAULTTUNE ?= "armv8m-main" |
5 | 5 | ||
6 | require conf/machine/include/arm/arch-armv8m-base.inc | 6 | require conf/machine/include/arm/arch-armv8m-base.inc |
7 | require conf/machine/include/arm/feature-arm-dsp.inc | ||
8 | require conf/machine/include/arm/feature-arm-neon.inc | ||
7 | 9 | ||
8 | TUNEVALID[armv8m-main] = "Enable instructions for ARMv8-m.main" | 10 | TUNEVALID[armv8m-main] = "Enable instructions for ARMv8-m.main" |
9 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', ' -march=armv8-m.main${MARCH_DSP}${MARCH_FPU}', '', d)}" | 11 | TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', ' -march=armv8-m.main', '', d)}" |
10 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', 'armv8m-main:', '', d)}" | 12 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', 'armv8m-main:', '', d)}" |
11 | 13 | ||
12 | TUNECONFLICTS[armv8m-main] = "armv4 armv5 armv6 armv7a" | 14 | TUNECONFLICTS[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 | ||
15 | TUNEVALID[dsp] = "ARM DSP functionality" | ||
16 | ARMPKGSFX_DSP = "${@bb.utils.contains('TUNE_FEATURES', [ 'dsp' ], 'e', '', d)}" | ||
17 | MARCH_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 | ||
20 | TUNEVALID[vfpv5spd16] = "Enable Vector Floating Point Version 5, Single Precision. with 16 registers (fpv5-sp-d16) unit." | ||
21 | TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv5spd16', 'fpv5-sp-d16', '', d)}" | ||
22 | MARCH_FPU = "${@bb.utils.contains('TUNE_FEATURES', [ 'vfpv5spd16' ], '+fp', '+nofp', d)}" | ||
23 | |||
24 | AVAILTUNES += "armv8m-main armv8m-maine armv8m-main-vfpv5spd16 armv8m-maine-vfpv5spd16" | 16 | AVAILTUNES += "armv8m-main armv8m-maine armv8m-main-vfpv5spd16 armv8m-maine-vfpv5spd16" |
25 | ARMPKGARCH:tune-armv8m-main = "armv8m-main" | 17 | ARMPKGARCH:tune-armv8m-main = "armv8m-main" |
26 | ARMPKGARCH:tune-armv8m-maine = "armv8m-main" | 18 | ARMPKGARCH:tune-armv8m-maine = "armv8m-main" |
diff --git a/meta/conf/machine/include/arm/feature-arm-crc.inc b/meta/conf/machine/include/arm/feature-arm-crc.inc new file mode 100644 index 0000000000..8a69d2e2fa --- /dev/null +++ b/meta/conf/machine/include/arm/feature-arm-crc.inc | |||
@@ -0,0 +1,4 @@ | |||
1 | # Cyclic Redundancy Check (CRC) instructions for armv8-a and armv8-r | ||
2 | |||
3 | TUNEVALID[crc] = "Enable instructions for ARMv8 Cyclic Redundancy Check (CRC)" | ||
4 | TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}" | ||
diff --git a/meta/conf/machine/include/arm/feature-arm-crypto.inc b/meta/conf/machine/include/arm/feature-arm-crypto.inc new file mode 100644 index 0000000000..aade6ce08d --- /dev/null +++ b/meta/conf/machine/include/arm/feature-arm-crypto.inc | |||
@@ -0,0 +1,5 @@ | |||
1 | # Cryptographic instructions for: | ||
2 | # armv8-a, armv8.1-a, armv8.3-a, armv8.4-a, armv8.5-a, armv8.6-a, and armv8-r | ||
3 | |||
4 | TUNEVALID[crypto] = "Enable cryptographic instructions for ARMv8" | ||
5 | TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '+crypto', '', d)}" | ||
diff --git a/meta/conf/machine/include/arm/feature-arm-dsp.inc b/meta/conf/machine/include/arm/feature-arm-dsp.inc new file mode 100644 index 0000000000..ec5007a8ca --- /dev/null +++ b/meta/conf/machine/include/arm/feature-arm-dsp.inc | |||
@@ -0,0 +1,2 @@ | |||
1 | # Note: TUNEVALID set in conf/machine/include/arm/arch-armv5-dsp.inc | ||
2 | TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', [ 'dsp' ], '+dsp', '', d)}" | ||
diff --git a/meta/conf/machine/include/arm/feature-arm-neon.inc b/meta/conf/machine/include/arm/feature-arm-neon.inc index eaddd054ce..174b9b9f2a 100644 --- a/meta/conf/machine/include/arm/feature-arm-neon.inc +++ b/meta/conf/machine/include/arm/feature-arm-neon.inc | |||
@@ -19,3 +19,8 @@ TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', [ 'vfpv4', 'neon' ], | |||
19 | 19 | ||
20 | TUNEVALID[vfpv4d16] = "Enable Vector Floating Point Version 4 with 16 registers (vfpv4-d16) unit." | 20 | TUNEVALID[vfpv4d16] = "Enable Vector Floating Point Version 4 with 16 registers (vfpv4-d16) unit." |
21 | TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv4d16', ' vfpv4-d16', '', d)}" | 21 | TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv4d16', ' vfpv4-d16', '', d)}" |
22 | |||
23 | TUNEVALID[vfpv5spd16] = "Enable Vector Floating Point Version 5, Single Precision. with 16 registers (fpv5-sp-d16) unit." | ||
24 | TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv5spd16', 'fpv5-sp-d16', '', d)}" | ||
25 | |||
26 | TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', [ 'vfpv3d16', 'vfpv5spd16' ], '+fp', '', d)}" | ||