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. |
Andrew Geissler | d159c7f | 2021-09-02 21:05:58 -0500 | [diff] [blame] | 10 | TUNE_CCARGS_MARCH .= "${@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" |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 17 | ARMPKGARCH:tune-armv6m = "armv6m" |
| 18 | TUNE_FEATURES:tune-armv6m = "armv6m" |
| 19 | PACKAGE_EXTRA_ARCHS:tune-armv6m = "armv6m" |