summaryrefslogtreecommitdiffstats
path: root/meta/conf/machine/include/arm/arch-armv6m.inc
blob: 68768106c6d799ab9593e3f6293b424a465c0331 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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"