Add tuning files for ARM cortex m0 plus and the armv6-m architecture
that it is based on.

Signed-off-by: Jonathan Richardson <[email protected]>
---
 meta/conf/machine/include/arm/arch-armv6m.inc | 20 +++++++++++++++++++
 .../machine/include/tune-cortex-m0plus.inc    | 11 ++++++++++
 2 files changed, 31 insertions(+)
 create mode 100755 meta/conf/machine/include/arm/arch-armv6m.inc
 create mode 100755 meta/conf/machine/include/tune-cortex-m0plus.inc

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..8202ef52f7
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv6m.inc
@@ -0,0 +1,20 @@
+# 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"
+BASE_LIB_tune-armv6m               = "lib32"
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"
-- 
2.20.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#141617): 
https://lists.openembedded.org/g/openembedded-core/message/141617
Mute This Topic: https://lists.openembedded.org/mt/76274410/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to