Andrew Geissler | 635e0e4 | 2020-08-21 15:58:33 -0500 | [diff] [blame] | 1 | # Tuning for ARMV6-m defined in ARM v6-M ArchitectureReference Manual |
| 2 | # at https://static.docs.arm.com/ddi0419/d/DDI0419D_armv6m_arm.pdf |
| 3 | DEFAULTTUNE ?= "armv6m" |
| 4 | |
| 5 | TUNEVALID[armv6m] = "Enable instructions for ARMv6-m" |
| 6 | TUNECONFLICTS[armv6m] = "armv4 armv5 armv6 armv7a" |
| 7 | |
| 8 | # Use armv6s-m instead of armv6-m to avoid gcc bug "SVC is not permitted on this architecture". |
| 9 | # SVC is a valid instruction. |
| 10 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', ' -march=armv6s-m', '', d)}" |
Andrew Geissler | c3d88e4 | 2020-10-02 09:45:00 -0500 | [diff] [blame] | 11 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', 'armv6m:', '', d)}" |
Andrew Geissler | 635e0e4 | 2020-08-21 15:58:33 -0500 | [diff] [blame] | 12 | |
| 13 | require conf/machine/include/arm/arch-armv5.inc |
| 14 | |
| 15 | # Little Endian |
| 16 | AVAILTUNES += "armv6m" |
| 17 | ARMPKGARCH_tune-armv6m = "armv6m" |
| 18 | TUNE_FEATURES_tune-armv6m = "armv6m" |
| 19 | PACKAGE_EXTRA_ARCHS_tune-armv6m = "armv6m" |