xref: /OK3568_Linux_fs/yocto/poky/meta/conf/machine/include/arm/arch-armv6m.inc (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# Tuning for ARMV6-m defined in ARM v6-M ArchitectureReference Manual
2*4882a593Smuzhiyun# at https://static.docs.arm.com/ddi0419/d/DDI0419D_armv6m_arm.pdf
3*4882a593SmuzhiyunDEFAULTTUNE ?= "armv6m"
4*4882a593Smuzhiyun
5*4882a593SmuzhiyunTUNEVALID[armv6m] = "Enable instructions for ARMv6-m"
6*4882a593SmuzhiyunTUNECONFLICTS[armv6m] = "armv4 armv5 armv6 armv7a"
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun# Use armv6s-m instead of armv6-m to avoid gcc bug "SVC is not permitted on this architecture".
9*4882a593Smuzhiyun# SVC is a valid instruction.
10*4882a593SmuzhiyunTUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', ' -march=armv6s-m', '', d)}"
11*4882a593SmuzhiyunMACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', 'armv6m:', '', d)}"
12*4882a593Smuzhiyun
13*4882a593Smuzhiyunrequire conf/machine/include/arm/arch-armv5.inc
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun# Little Endian
16*4882a593SmuzhiyunAVAILTUNES += "armv6m"
17*4882a593SmuzhiyunARMPKGARCH:tune-armv6m             = "armv6m"
18*4882a593SmuzhiyunTUNE_FEATURES:tune-armv6m          = "armv6m"
19*4882a593SmuzhiyunPACKAGE_EXTRA_ARCHS:tune-armv6m    = "armv6m"
20