summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Mason <jdmason@kudzu.us>2021-08-18 22:52:21 -0400
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-08-20 08:53:03 +0100
commit8d77024c718bac4bb94a978db65455063fdd4a12 (patch)
tree8a8bf2035b6b76c977aad2cf8905f8098defa707
parentff0ea5633a8f1d9e5d709cae9b16482c6be4adcf (diff)
downloadpoky-8d77024c718bac4bb94a978db65455063fdd4a12.tar.gz
tune-cortexr*: add support for all Arm Cortex-R processors
Add tune entries for all Arm Cortex-R processors currently supported in GCC. Also, add the simd feature, which can be used in ARMv7a and ARMv8a, but currently isn't. (From OE-Core rev: 67e582379afa9bff8d585b4c7f1bc65a76d088fb) Signed-off-by: Jon Mason <jdmason@kudzu.us> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/conf/machine/include/arm/arch-armv7a.inc1
-rw-r--r--meta/conf/machine/include/arm/arch-armv7r.inc22
-rw-r--r--meta/conf/machine/include/arm/arch-armv8r.inc38
-rw-r--r--meta/conf/machine/include/arm/armv7r/tune-cortexr4.inc14
-rw-r--r--meta/conf/machine/include/arm/armv7r/tune-cortexr4f.inc14
-rw-r--r--meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc14
-rw-r--r--meta/conf/machine/include/arm/armv7r/tune-cortexr7.inc14
-rw-r--r--meta/conf/machine/include/arm/armv7r/tune-cortexr8.inc14
-rw-r--r--meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc14
-rw-r--r--meta/conf/machine/include/arm/feature-arm-idiv.inc2
-rw-r--r--meta/conf/machine/include/arm/feature-arm-simd.inc5
11 files changed, 152 insertions, 0 deletions
diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc b/meta/conf/machine/include/arm/arch-armv7a.inc
index 0a805b3be2..74fc8d11ab 100644
--- a/meta/conf/machine/include/arm/arch-armv7a.inc
+++ b/meta/conf/machine/include/arm/arch-armv7a.inc
@@ -8,6 +8,7 @@ MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', 'armv7a:',
8 8
9require conf/machine/include/arm/arch-armv6.inc 9require conf/machine/include/arm/arch-armv6.inc
10require conf/machine/include/arm/feature-arm-neon.inc 10require conf/machine/include/arm/feature-arm-neon.inc
11require conf/machine/include/arm/feature-arm-simd.inc
11 12
12# Little Endian base configs 13# Little Endian base configs
13AVAILTUNES += "armv7a armv7at armv7a-vfpv3d16 armv7at-vfpv3d16 armv7a-vfpv3 armv7at-vfpv3 armv7a-vfpv4d16 armv7at-vfpv4d16 armv7a-neon armv7at-neon armv7a-neon-vfpv4 armv7at-neon-vfpv4" 14AVAILTUNES += "armv7a armv7at armv7a-vfpv3d16 armv7at-vfpv3d16 armv7a-vfpv3 armv7at-vfpv3 armv7a-vfpv4d16 armv7at-vfpv4d16 armv7a-neon armv7at-neon armv7a-neon-vfpv4 armv7at-neon-vfpv4"
diff --git a/meta/conf/machine/include/arm/arch-armv7r.inc b/meta/conf/machine/include/arm/arch-armv7r.inc
new file mode 100644
index 0000000000..fac26cf4ad
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv7r.inc
@@ -0,0 +1,22 @@
1#
2# Defaults for ARMv7-r
3#
4DEFAULTTUNE ?= "armv7r"
5
6TUNEVALID[armv7r] = "Enable instructions for ARMv7-r"
7TUNE_CCARGS_MARCH = "${@bb.utils.contains('TUNE_FEATURES', 'armv7r', ' -march=armv7-r', '', d)}"
8MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7r', 'armv7r:', '', d)}"
9
10TUNECONFLICTS[armv7r] = "armv4 armv5 armv6 armv7a"
11
12require conf/machine/include/arm/arch-armv6.inc
13require conf/machine/include/arm/feature-arm-idiv.inc
14require conf/machine/include/arm/feature-arm-neon.inc
15
16AVAILTUNES += "armv7r armv7r-vfpv3d16"
17ARMPKGARCH:tune-armv7r = "armv7r"
18ARMPKGARCH:tune-armv7r-vfpv3d16 = "armv7r"
19TUNE_FEATURES:tune-armv7r = "armv7r"
20TUNE_FEATURES:tune-armv7r-vfpv3d16 = "${TUNE_FEATURES:tune-armv7r} vfpv3d16"
21PACKAGE_EXTRA_ARCHS:tune-armv7r = "armv7r"
22PACKAGE_EXTRA_ARCHS:tune-armv7r-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS:tune-armv7r} tune-armv7r-fpv3d16"
diff --git a/meta/conf/machine/include/arm/arch-armv8r.inc b/meta/conf/machine/include/arm/arch-armv8r.inc
new file mode 100644
index 0000000000..be4ef3e629
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv8r.inc
@@ -0,0 +1,38 @@
1#
2# Defaults for ARMv8-r
3#
4DEFAULTTUNE ?= "armv8r"
5
6TUNEVALID[armv8r] = "Enable instructions for ARMv8-r"
7TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8r', ' -march=armv8-r', '', d)}"
8MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8r', 'armv8r:', '', d)}"
9
10require conf/machine/include/arm/arch-arm64.inc
11require conf/machine/include/arm/feature-arm-simd.inc
12require conf/machine/include/arm/feature-arm-crc.inc
13require conf/machine/include/arm/feature-arm-crypto.inc
14
15# All ARMv8 has floating point hardware built in. Null it here to avoid any confusion for 32bit.
16TARGET_FPU_32 = ""
17
18AVAILTUNES += "armv8r armv8r-crc armv8r-crypto armv8r-simd armv8r-crc-crypto armv8r-crc-simd armv8r-crc-crypto-simd"
19ARMPKGARCH:tune-armv8r = "armv8r"
20ARMPKGARCH:tune-armv8r-crc = "armv8r"
21ARMPKGARCH:tune-armv8r-crypto = "armv8r"
22ARMPKGARCH:tune-armv8r-simd = "armv8r"
23ARMPKGARCH:tune-armv8r-crc-crypto = "armv8r"
24ARMPKGARCH:tune-armv8r-crc-simd = "armv8r"
25ARMPKGARCH:tune-armv8r-crc-crypto-simd = "armv8r"
26TUNE_FEATURES:tune-armv8r = "armv8r"
27TUNE_FEATURES:tune-armv8r-crc = "${TUNE_FEATURES:tune-armv8r} crc"
28TUNE_FEATURES:tune-armv8r-crypto = "${TUNE_FEATURES:tune-armv8r} crypto"
29TUNE_FEATURES:tune-armv8r-simd = "${TUNE_FEATURES:tune-armv8r} simd"
30TUNE_FEATURES:tune-armv8r-crc-crypto = "${TUNE_FEATURES:tune-armv8r-crc} crypto"
31TUNE_FEATURES:tune-armv8r-crc-simd = "${TUNE_FEATURES:tune-armv8r-crc} simd"
32TUNE_FEATURES:tune-armv8r-crc-crypto-simd = "${TUNE_FEATURES:tune-armv8r-crc-crypto} simd"
33PACKAGE_EXTRA_ARCHS:tune-armv8r = "armv8r"
34PACKAGE_EXTRA_ARCHS:tune-armv8r-crc = "${PACKAGE_EXTRA_ARCHS:tune-armv8r} armv8r-crc"
35PACKAGE_EXTRA_ARCHS:tune-armv8r-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8r} armv8r-crypto"
36PACKAGE_EXTRA_ARCHS:tune-armv8r-simd = "${PACKAGE_EXTRA_ARCHS:tune-armv8r} armv8r-simd"
37PACKAGE_EXTRA_ARCHS:tune-armv8r-crc-simd = "${PACKAGE_EXTRA_ARCHS:tune-armv8r-crc} armv8r-simd armv8r-crc-simd"
38PACKAGE_EXTRA_ARCHS:tune-armv8r-crc-crypto-simd = "${PACKAGE_EXTRA_ARCHS:tune-armv8r-crc-simd} armv8r-crc-crypto-simd"
diff --git a/meta/conf/machine/include/arm/armv7r/tune-cortexr4.inc b/meta/conf/machine/include/arm/armv7r/tune-cortexr4.inc
new file mode 100644
index 0000000000..0eed729630
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv7r/tune-cortexr4.inc
@@ -0,0 +1,14 @@
1#
2# Tune Settings for Cortex-R4
3#
4DEFAULTTUNE ?= "cortexr4"
5
6TUNEVALID[cortexr4] = "Enable Cortex-R4 specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexr4', ' -mcpu=cortex-r4', '', d)}"
8
9require conf/machine/include/arm/arch-armv7r.inc
10
11AVAILTUNES += "cortexr4"
12ARMPKGARCH:tune-cortexr4 = "cortexr4"
13TUNE_FEATURES:tune-cortexr4 = "${TUNE_FEATURES:tune-armv7r} cortexr4"
14PACKAGE_EXTRA_ARCHS:tune-cortexr4 = "${PACKAGE_EXTRA_ARCHS:tune-armv7r} cortexr4"
diff --git a/meta/conf/machine/include/arm/armv7r/tune-cortexr4f.inc b/meta/conf/machine/include/arm/armv7r/tune-cortexr4f.inc
new file mode 100644
index 0000000000..0712b3ab1b
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv7r/tune-cortexr4f.inc
@@ -0,0 +1,14 @@
1#
2# Tune Settings for Cortex-R4F
3#
4DEFAULTTUNE ?= "cortexr4f"
5
6TUNEVALID[cortexr4f] = "Enable Cortex-R4F specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexr4f', ' -mcpu=cortex-r4f', '', d)}"
8
9require conf/machine/include/arm/arch-armv7r.inc
10
11AVAILTUNES += "cortexr4f"
12ARMPKGARCH:tune-cortexr4f = "cortexr4f"
13TUNE_FEATURES:tune-cortexr4f = "${TUNE_FEATURES:tune-armv7r-vfpv3d16} cortexr4f"
14PACKAGE_EXTRA_ARCHS:tune-cortexr4f = "${PACKAGE_EXTRA_ARCHS:tune-armv7r-vfpv3d16} cortexr4f-vfpv3d16"
diff --git a/meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc b/meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc
new file mode 100644
index 0000000000..ecaaa0d846
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc
@@ -0,0 +1,14 @@
1#
2# Tune Settings for Cortex-R5
3#
4DEFAULTTUNE ?= "cortexr5"
5
6TUNEVALID[cortexr5] = "Enable Cortex-R5 specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexr5', ' -mcpu=cortex-r5', '', d)}"
8
9require conf/machine/include/arm/arch-armv7r.inc
10
11AVAILTUNES += "cortexr5"
12ARMPKGARCH:tune-cortexr5 = "cortexr5"
13TUNE_FEATURES:tune-cortexr5 = "${TUNE_FEATURES:tune-armv7r-vfpv3d16} cortexr5 idiv"
14PACKAGE_EXTRA_ARCHS:tune-cortexr5 = "${PACKAGE_EXTRA_ARCHS:tune-armv7r-vfpv3d16} cortexr5-vfpv3d16"
diff --git a/meta/conf/machine/include/arm/armv7r/tune-cortexr7.inc b/meta/conf/machine/include/arm/armv7r/tune-cortexr7.inc
new file mode 100644
index 0000000000..bfae1f0075
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv7r/tune-cortexr7.inc
@@ -0,0 +1,14 @@
1#
2# Tune Settings for Cortex-R7
3#
4DEFAULTTUNE ?= "cortexr7"
5
6TUNEVALID[cortexr7] = "Enable Cortex-R7 specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexr7', ' -mcpu=cortex-r7', '', d)}"
8
9require conf/machine/include/arm/arch-armv7r.inc
10
11AVAILTUNES += "cortexr7"
12ARMPKGARCH:tune-cortexr7 = "cortexr7"
13TUNE_FEATURES:tune-cortexr7 = "${TUNE_FEATURES:tune-armv7r-vfpv3d16} cortexr7 idiv"
14PACKAGE_EXTRA_ARCHS:tune-cortexr7 = "${PACKAGE_EXTRA_ARCHS:tune-armv7r-vfpv3d16} cortexr7-vfpv3d16"
diff --git a/meta/conf/machine/include/arm/armv7r/tune-cortexr8.inc b/meta/conf/machine/include/arm/armv7r/tune-cortexr8.inc
new file mode 100644
index 0000000000..7fb824f6e9
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv7r/tune-cortexr8.inc
@@ -0,0 +1,14 @@
1#
2# Tune Settings for Cortex-R8
3#
4DEFAULTTUNE ?= "cortexr8"
5
6TUNEVALID[cortexr8] = "Enable Cortex-R8 specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexr8', ' -mcpu=cortex-r8', '', d)}"
8
9require conf/machine/include/arm/arch-armv7r.inc
10
11AVAILTUNES += "cortexr8"
12ARMPKGARCH:tune-cortexr8 = "cortexr8"
13TUNE_FEATURES:tune-cortexr8 = "${TUNE_FEATURES:tune-armv7r-vfpv3d16} cortexr8 idiv"
14PACKAGE_EXTRA_ARCHS:tune-cortexr8 = "${PACKAGE_EXTRA_ARCHS:tune-armv7r-vfpv3d16} cortexr8-vfpv3d16"
diff --git a/meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc b/meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc
new file mode 100644
index 0000000000..3a97cf8ee8
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc
@@ -0,0 +1,14 @@
1#
2# Tune Settings for Cortex-R52
3#
4DEFAULTTUNE ?= "cortexr52"
5
6TUNEVALID[cortexr52] = "Enable Cortex-R52 specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexr52', ' -mcpu=cortex-r52', '', d)}"
8
9require conf/machine/include/arm/arch-armv8r.inc
10
11AVAILTUNES += "cortexr52"
12ARMPKGARCH:tune-cortexr52 = "cortexr52"
13TUNE_FEATURES:tune-cortexr52 = "${TUNE_FEATURES:tune-armv8r-crc-simd} cortexr52"
14PACKAGE_EXTRA_ARCHS:tune-cortexr52 = "${PACKAGE_EXTRA_ARCHS:tune-armv8r-crc-simd} cortexr52"
diff --git a/meta/conf/machine/include/arm/feature-arm-idiv.inc b/meta/conf/machine/include/arm/feature-arm-idiv.inc
new file mode 100644
index 0000000000..0ea42b1b39
--- /dev/null
+++ b/meta/conf/machine/include/arm/feature-arm-idiv.inc
@@ -0,0 +1,2 @@
1TUNEVALID[idiv] = "ARM-state integer division instructions"
2TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', 'idiv', '+idiv', '', d)}"
diff --git a/meta/conf/machine/include/arm/feature-arm-simd.inc b/meta/conf/machine/include/arm/feature-arm-simd.inc
new file mode 100644
index 0000000000..1afaf8d901
--- /dev/null
+++ b/meta/conf/machine/include/arm/feature-arm-simd.inc
@@ -0,0 +1,5 @@
1# Advanced SIMD and floating-point instructions for armv7-a, armv7ve,
2# armv8-a, armv8.1-a, armv8.3-a, armv8.4-a, armv8.5-a, armv8.6-a, and armv8-r
3
4TUNEVALID[simd] = "Enable instructions for Advanced SIMD and floating-point units"
5TUNE_CCARGS_MARCH_OPTS .= "${@bb.utils.contains('TUNE_FEATURES', 'simd', '+simd', '', d)}"