summaryrefslogtreecommitdiffstats
path: root/meta/conf/machine/include
diff options
context:
space:
mode:
authorJonathan Richardson <jonathan.richardson@broadcom.com>2020-08-18 15:42:07 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-08-20 15:28:57 +0100
commit1a2d05b504c7a6f5a917cb2e7d026e57bb2daf8f (patch)
treee2e67a65f2699fc39cca23d22617861cc1adf777 /meta/conf/machine/include
parent0344dd754aafbf3d05539bbc0c6d39f0541f300b (diff)
downloadopenembedded-core-contrib-1a2d05b504c7a6f5a917cb2e7d026e57bb2daf8f.tar.gz
cortex-m0plus.inc: Add tuning for cortex M0 plus
Add tuning files for ARM cortex m0 plus and the armv6-m architecture that it is based on. Signed-off-by: Jonathan Richardson <jonathan.richardson@broadcom.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/conf/machine/include')
-rwxr-xr-xmeta/conf/machine/include/arm/arch-armv6m.inc19
-rwxr-xr-xmeta/conf/machine/include/tune-cortex-m0plus.inc11
2 files changed, 30 insertions, 0 deletions
diff --git a/meta/conf/machine/include/arm/arch-armv6m.inc b/meta/conf/machine/include/arm/arch-armv6m.inc
new file mode 100755
index 0000000000..68768106c6
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv6m.inc
@@ -0,0 +1,19 @@
+# Tuning for ARMV6-m defined in ARM v6-M ArchitectureReference Manual
+# at https://static.docs.arm.com/ddi0419/d/DDI0419D_armv6m_arm.pdf
+DEFAULTTUNE ?= "armv6m"
+
+TUNEVALID[armv6m] = "Enable instructions for ARMv6-m"
+TUNECONFLICTS[armv6m] = "armv4 armv5 armv6 armv7a"
+
+# Use armv6s-m instead of armv6-m to avoid gcc bug "SVC is not permitted on this architecture".
+# SVC is a valid instruction.
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', ' -march=armv6s-m', '', d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', 'armv6m:', '' ,d)}"
+
+require conf/machine/include/arm/arch-armv5.inc
+
+# Little Endian
+AVAILTUNES += "armv6m"
+ARMPKGARCH_tune-armv6m = "armv6m"
+TUNE_FEATURES_tune-armv6m = "armv6m"
+PACKAGE_EXTRA_ARCHS_tune-armv6m = "armv6m"
diff --git a/meta/conf/machine/include/tune-cortex-m0plus.inc b/meta/conf/machine/include/tune-cortex-m0plus.inc
new file mode 100755
index 0000000000..1c7512b061
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortex-m0plus.inc
@@ -0,0 +1,11 @@
+DEFAULTTUNE ?= "cortexm0-plus"
+require conf/machine/include/arm/arch-armv6m.inc
+
+TUNEVALID[cortexm0-plus] = "Enable Cortex-M0 Plus specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm0-plus', ' -mcpu=cortex-m0plus', '', d)}"
+AVAILTUNES += "cortexm0-plus"
+
+ARMPKGARCH_tune-cortexm0-plus = "cortexm0-plus"
+TUNE_FEATURES_tune-cortexm0-plus = "${TUNE_FEATURES_tune-armv6m} cortexm0-plus"
+
+PACKAGE_EXTRA_ARCHS_tune-cortexm0-plus = "${PACKAGE_EXTRA_ARCHS_tune-armv6m} cortexm0-plus"