summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Mason <jdmason@kudzu.us>2021-08-10 17:36:33 -0400
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-08-13 14:44:06 +0100
commitdac9318c5a7145bf499bcc2463e21ddcd63c2331 (patch)
treee0dbc703159892d24225193f84e5e3e4805e46e3
parent7c88e08e62d526b109f2286f13f9da13e60a8c0f (diff)
downloadpoky-dac9318c5a7145bf499bcc2463e21ddcd63c2331.tar.gz
tune-cortexm*: add support for all Arm Cortex-M processors
Add tune entries for all Arm Cortex-M processors currently supported in GCC (that are not currently present). The ARMv7 entries were added in conf/machine/include/ to match the existing Cortex-M and Cortex-A tune files. The ARMv8 entries were added to conf/machine/include/arm/armv8-m to match how ARMv8 was done for Cortex-A processor tune files. (From OE-Core rev: a9ff58f4cc1b45145fc1576c7eacabaea64b7bd4) Signed-off-by: Jon Mason <jdmason@kudzu.us> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/conf/machine/include/arm/arch-armv7em.inc17
-rw-r--r--meta/conf/machine/include/arm/arch-armv7m.inc17
-rw-r--r--meta/conf/machine/include/arm/arch-armv8-1m-main.inc18
-rw-r--r--meta/conf/machine/include/arm/arch-armv8m-base.inc17
-rw-r--r--meta/conf/machine/include/arm/arch-armv8m-main.inc36
-rw-r--r--meta/conf/machine/include/arm/armv8-1m/tune-cortexm55.inc14
-rw-r--r--meta/conf/machine/include/arm/armv8-m/tune-cortexm23.inc14
-rw-r--r--meta/conf/machine/include/arm/armv8-m/tune-cortexm33.inc17
-rw-r--r--meta/conf/machine/include/arm/armv8-m/tune-cortexm35p.inc17
-rw-r--r--meta/conf/machine/include/tune-cortexm1.inc14
-rw-r--r--meta/conf/machine/include/tune-cortexm3.inc14
-rw-r--r--meta/conf/machine/include/tune-cortexm4.inc14
-rw-r--r--meta/conf/machine/include/tune-cortexm7.inc14
13 files changed, 223 insertions, 0 deletions
diff --git a/meta/conf/machine/include/arm/arch-armv7em.inc b/meta/conf/machine/include/arm/arch-armv7em.inc
new file mode 100644
index 0000000000..adcab272ed
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv7em.inc
@@ -0,0 +1,17 @@
1#
2# Defaults for ARMv7e-m
3#
4DEFAULTTUNE ?= "armv7em"
5
6TUNEVALID[armv7em] = "Enable instructions for ARMv7e-m"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7em', ' -march=armv7e-m', '', d)}"
8MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7em', 'armv7em:', '', d)}"
9
10TUNECONFLICTS[armv7em] = "armv4 armv5 armv6 armv7a"
11
12require conf/machine/include/arm/arch-armv7m.inc
13
14AVAILTUNES += "armv7em"
15ARMPKGARCH:tune-armv7em = "armv7em"
16TUNE_FEATURES:tune-armv7em = "armv7em"
17PACKAGE_EXTRA_ARCHS:tune-armv7em = "armv7em"
diff --git a/meta/conf/machine/include/arm/arch-armv7m.inc b/meta/conf/machine/include/arm/arch-armv7m.inc
new file mode 100644
index 0000000000..a36c265bc1
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv7m.inc
@@ -0,0 +1,17 @@
1#
2# Defaults for ARMv7-m
3#
4DEFAULTTUNE ?= "armv7m"
5
6TUNEVALID[armv7m] = "Enable instructions for ARMv7-m"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', ' -march=armv7-m', '', d)}"
8MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', 'armv7m:', '', d)}"
9
10TUNECONFLICTS[armv7m] = "armv4 armv5 armv6 armv7a"
11
12require conf/machine/include/arm/arch-armv6m.inc
13
14AVAILTUNES += "armv7m"
15ARMPKGARCH:tune-armv7m = "armv7m"
16TUNE_FEATURES:tune-armv7m = "armv7m"
17PACKAGE_EXTRA_ARCHS:tune-armv7m = "armv7m"
diff --git a/meta/conf/machine/include/arm/arch-armv8-1m-main.inc b/meta/conf/machine/include/arm/arch-armv8-1m-main.inc
new file mode 100644
index 0000000000..9171b31c90
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv8-1m-main.inc
@@ -0,0 +1,18 @@
1#
2#
3# Defaults for ARMv8.1-M.main
4#
5DEFAULTTUNE ?= "armv8-1m-main"
6
7TUNEVALID[armv8-1m-main] = "Enable instructions for ARMv8.1-m.main"
8TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-1m-main', ' -march=armv8.1-m.main', '', d)}"
9MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-1m-main', 'armv8-1m-main:', '', d)}"
10
11TUNECONFLICTS[armv8-1m-main] = "armv4 armv5 armv6 armv7a"
12
13require conf/machine/include/arm/arch-armv8m-main.inc
14
15AVAILTUNES += "armv8-1m-main"
16ARMPKGARCH:tune-armv8-1m-main = "armv8-1m-main"
17TUNE_FEATURES:tune-armv8-1m-main = "armv8-1m-main"
18PACKAGE_EXTRA_ARCHS:tune-armv8-1m-main = "armv8-1m-main"
diff --git a/meta/conf/machine/include/arm/arch-armv8m-base.inc b/meta/conf/machine/include/arm/arch-armv8m-base.inc
new file mode 100644
index 0000000000..d9a341c66e
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv8m-base.inc
@@ -0,0 +1,17 @@
1#
2# Defaults for ARMv8-m.base
3#
4DEFAULTTUNE ?= "armv8m-base"
5
6TUNEVALID[armv8m-base] = "Enable instructions for ARMv8-m.base"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-base', ' -march=armv8-m.base', '', d)}"
8MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-base', 'armv8m-base:', '', d)}"
9
10TUNECONFLICTS[armv8m-base] = "armv4 armv5 armv6 armv7a"
11
12require conf/machine/include/arm/arch-armv7m.inc
13
14AVAILTUNES += "armv8m-base"
15ARMPKGARCH:tune-armv8m-base = "armv8m-base"
16TUNE_FEATURES:tune-armv8m-base = "armv8m-base"
17PACKAGE_EXTRA_ARCHS:tune-armv8m-base = "armv8m-base"
diff --git a/meta/conf/machine/include/arm/arch-armv8m-main.inc b/meta/conf/machine/include/arm/arch-armv8m-main.inc
new file mode 100644
index 0000000000..27f552b2d7
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv8m-main.inc
@@ -0,0 +1,36 @@
1#
2# Defaults for ARMv8-m.main
3#
4DEFAULTTUNE ?= "armv8m-main"
5
6require conf/machine/include/arm/arch-armv8m-base.inc
7
8TUNEVALID[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)}"
10MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', 'armv8m-main:', '', d)}"
11
12TUNECONFLICTS[armv8m-main] = "armv4 armv5 armv6 armv7a"
13
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-mainearmv8m-main-vfpv5spd16 armv8m-maine-vfpv5spd16"
25ARMPKGARCH:tune-armv8m-main = "armv8m-main"
26ARMPKGARCH:tune-armv8m-maine = "armv8m-main"
27ARMPKGARCH:tune-armv8m-main-vfpv5spd16 = "armv8m-main"
28ARMPKGARCH:tune-armv8m-maine-vfpv5spd16 = "armv8m-main"
29TUNE_FEATURES:tune-armv8m-main = "armv8m-main"
30TUNE_FEATURES:tune-armv8m-maine = "${TUNE_FEATURES:tune-armv8m-main} dsp"
31TUNE_FEATURES:tune-armv8m-main-vfpv5spd16 = "${TUNE_FEATURES:tune-armv8m-main} vfpv5spd16"
32TUNE_FEATURES:tune-armv8m-maine-vfpv5spd16 = "${TUNE_FEATURES:tune-armv8m-main-vfpv5spd16} dsp"
33PACKAGE_EXTRA_ARCHS:tune-armv8m-main = "armv8m-main"
34PACKAGE_EXTRA_ARCHS:tune-armv8m-maine = "${PACKAGE_EXTRA_ARCHS:tune-armv8m-main} armv8m-maine"
35PACKAGE_EXTRA_ARCHS:tune-armv8m-main-vfpv5spd16 = "${PACKAGE_EXTRA_ARCHS:tune-armv8m-main} armv8m-main-fpv5-spd16"
36PACKAGE_EXTRA_ARCHS:tune-armv8m-maine-vfpv5spd16 = "${PACKAGE_EXTRA_ARCHS:tune-armv8m-main} armv8m-maine-fpv5-spd16"
diff --git a/meta/conf/machine/include/arm/armv8-1m/tune-cortexm55.inc b/meta/conf/machine/include/arm/armv8-1m/tune-cortexm55.inc
new file mode 100644
index 0000000000..493ad67b21
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8-1m/tune-cortexm55.inc
@@ -0,0 +1,14 @@
1#
2# Tune Settings for Cortex-M55
3#
4DEFAULTTUNE ?= "cortexm55"
5
6TUNEVALID[cortexm55] = "Enable Cortex-M55 specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm55', ' -mcpu=cortex-m55', '', d)}"
8
9require conf/machine/include/arm/arch-armv8-1m-main.inc
10
11AVAILTUNES += "cortexm55"
12ARMPKGARCH:tune-cortexm55 = "cortexm55"
13TUNE_FEATURES:tune-cortexm55 = "${TUNE_FEATURES:tune-armv8-1m-main} cortexm55"
14PACKAGE_EXTRA_ARCHS:tune-cortexm55 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-1m-main} cortexm55"
diff --git a/meta/conf/machine/include/arm/armv8-m/tune-cortexm23.inc b/meta/conf/machine/include/arm/armv8-m/tune-cortexm23.inc
new file mode 100644
index 0000000000..25780bc080
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8-m/tune-cortexm23.inc
@@ -0,0 +1,14 @@
1#
2# Tune Settings for Cortex-M23
3#
4DEFAULTTUNE ?= "cortexm23"
5
6TUNEVALID[cortexm23] = "Enable Cortex-M23 specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm23', ' -mcpu=cortex-m23', '', d)}"
8
9require conf/machine/include/arm/arch-armv8m-base.inc
10
11AVAILTUNES += "cortexm23"
12ARMPKGARCH:tune-cortexm23 = "cortexm23"
13TUNE_FEATURES:tune-cortexm23 = "${TUNE_FEATURES:tune-armv8m-base} cortexm23"
14PACKAGE_EXTRA_ARCHS:tune-cortexm23 = "${PACKAGE_EXTRA_ARCHS:tune-armv8m-base} cortexm23"
diff --git a/meta/conf/machine/include/arm/armv8-m/tune-cortexm33.inc b/meta/conf/machine/include/arm/armv8-m/tune-cortexm33.inc
new file mode 100644
index 0000000000..04d1fe2bde
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8-m/tune-cortexm33.inc
@@ -0,0 +1,17 @@
1#
2# Tune Settings for Cortex-M33
3#
4DEFAULTTUNE ?= "cortexm33"
5
6TUNEVALID[cortexm33] = "Enable Cortex-M33 specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm33', ' -mcpu=cortex-m33', '', d)}"
8
9require conf/machine/include/arm/arch-armv8m-main.inc
10
11# GCC thnks that DSP and VFP are required, but Arm docs say it is
12# optional. So forcing below so that compiling works, but this should
13# be fixed in GCC
14AVAILTUNES += "cortexm33"
15ARMPKGARCH:tune-cortexm33 = "cortexm33"
16TUNE_FEATURES:tune-cortexm33 = "${TUNE_FEATURES:tune-armv8m-maine-vfpv5spd16} cortexm33"
17PACKAGE_EXTRA_ARCHS:tune-cortexm33 = "${PACKAGE_EXTRA_ARCHS:tune-armv8m-maine-vfpv5spd16} cortexm33e-fpv5-spd16"
diff --git a/meta/conf/machine/include/arm/armv8-m/tune-cortexm35p.inc b/meta/conf/machine/include/arm/armv8-m/tune-cortexm35p.inc
new file mode 100644
index 0000000000..60e978facd
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8-m/tune-cortexm35p.inc
@@ -0,0 +1,17 @@
1#
2# Tune Settings for Cortex-M35P
3#
4DEFAULTTUNE ?= "cortexm35p"
5
6TUNEVALID[cortexm35p] = "Enable Cortex-M35p specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm35p', ' -mcpu=cortex-m35p', '', d)}"
8
9require conf/machine/include/arm/arch-armv8m-main.inc
10
11# GCC thnks that DSP and VFP are required, but Arm docs say it is
12# optional. So forcing below so that compiling works, but this should
13# be fixed in GCC
14AVAILTUNES += "cortexm35p"
15ARMPKGARCH:tune-cortexm35p = "cortexm35p"
16TUNE_FEATURES:tune-cortexm35p = "${TUNE_FEATURES:tune-armv8m-maine-vfpv5spd16} cortexm35p"
17PACKAGE_EXTRA_ARCHS:tune-cortexm35p = "${PACKAGE_EXTRA_ARCHS:tune-armv8m-maine-vfpv5spd16} cortexm35pe-fpv5-spd16"
diff --git a/meta/conf/machine/include/tune-cortexm1.inc b/meta/conf/machine/include/tune-cortexm1.inc
new file mode 100644
index 0000000000..16661f3a26
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexm1.inc
@@ -0,0 +1,14 @@
1#
2# Tune Settings for Cortex-M1
3#
4DEFAULTTUNE ?= "cortexm1"
5
6TUNEVALID[cortexm1] = "Enable Cortex-M1 specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm1', ' -mcpu=cortex-m1', '', d)}"
8
9require conf/machine/include/arm/arch-armv6m.inc
10
11AVAILTUNES += "cortexm1"
12ARMPKGARCH:tune-cortexm1 = "cortexm1"
13TUNE_FEATURES:tune-cortexm1 = "${TUNE_FEATURES:tune-armv6m} cortexm1"
14PACKAGE_EXTRA_ARCHS:tune-cortexm1 = "${PACKAGE_EXTRA_ARCHS:tune-armv6m} cortexm1"
diff --git a/meta/conf/machine/include/tune-cortexm3.inc b/meta/conf/machine/include/tune-cortexm3.inc
new file mode 100644
index 0000000000..a6cb566387
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexm3.inc
@@ -0,0 +1,14 @@
1#
2# Tune Settings for Cortex-M3
3#
4DEFAULTTUNE ?= "cortexm3"
5
6TUNEVALID[cortexm3] = "Enable Cortex-M3 specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm3', ' -mcpu=cortex-m3', '', d)}"
8
9require conf/machine/include/arm/arch-armv7m.inc
10
11AVAILTUNES += "cortexm3"
12ARMPKGARCH:tune-cortexm3 = "cortexm3"
13TUNE_FEATURES:tune-cortexm3 = "${TUNE_FEATURES:tune-armv7m} cortexm3"
14PACKAGE_EXTRA_ARCHS:tune-cortexm3 = "${PACKAGE_EXTRA_ARCHS:tune-armv7m} cortexm3"
diff --git a/meta/conf/machine/include/tune-cortexm4.inc b/meta/conf/machine/include/tune-cortexm4.inc
new file mode 100644
index 0000000000..e86622ff3d
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexm4.inc
@@ -0,0 +1,14 @@
1#
2# Tune Settings for Cortex-M4
3#
4DEFAULTTUNE ?= "cortexm4"
5
6TUNEVALID[cortexm4] = "Enable Cortex-M4 specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm4', ' -mcpu=cortex-m4', '', d)}"
8
9require conf/machine/include/arm/arch-armv7em.inc
10
11AVAILTUNES += "cortexm4"
12ARMPKGARCH:tune-cortexm4 = "cortexm4"
13TUNE_FEATURES:tune-cortexm4 = "${TUNE_FEATURES:tune-armv7em} cortexm4"
14PACKAGE_EXTRA_ARCHS:tune-cortexm4 = "${PACKAGE_EXTRA_ARCHS:tune-armv7em} cortexm4"
diff --git a/meta/conf/machine/include/tune-cortexm7.inc b/meta/conf/machine/include/tune-cortexm7.inc
new file mode 100644
index 0000000000..6434ec6398
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexm7.inc
@@ -0,0 +1,14 @@
1#
2# Tune Settings for Cortex-M7
3#
4DEFAULTTUNE ?= "cortexm7"
5
6TUNEVALID[cortexm7] = "Enable Cortex-M7 specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm7', ' -mcpu=cortex-m7', '', d)}"
8
9require conf/machine/include/arm/arch-armv7em.inc
10
11AVAILTUNES += "cortexm7"
12ARMPKGARCH:tune-cortexm7 = "cortexm7"
13TUNE_FEATURES:tune-cortexm7 = "${TUNE_FEATURES:tune-armv7em} cortexm7"
14PACKAGE_EXTRA_ARCHS:tune-cortexm7 = "${PACKAGE_EXTRA_ARCHS:tune-armv7em} cortexm7"