diff --git a/core/combo/TARGET_linux-arm.mk b/core/combo/TARGET_linux-arm.mk index ffb6021c3..45030622d 100644 --- a/core/combo/TARGET_linux-arm.mk +++ b/core/combo/TARGET_linux-arm.mk @@ -36,9 +36,21 @@ endif KNOWN_ARMv8_CORES := cortex-a53 cortex-a53.a57 cortex-a55 cortex-a73 cortex-a75 cortex-a76 KNOWN_ARMv8_CORES += kryo denver64 exynos-m1 exynos-m2 +KNOWN_ARMv82a_CORES := cortex-a55 cortex-a75 + +# Check for cores that implement armv8-2a ISAs. +ifneq (,$(filter $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT), $(KNOWN_ARMv82a_CORES))) + ifneq ($(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT),armv8-2a) + $(warning $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT) is armv8-2a.) + ifneq (,$(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)) + $(warning TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT, $(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT), ignored! Use armv8-2a instead.) + endif + # Overwrite TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT + TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT := armv8-2a + endif # Many devices (incorrectly) use armv7-a-neon as the 2nd architecture variant # for cores that implement armv8-a ISAs. The following sets it to armv8-a. -ifneq (,$(filter $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT), $(KNOWN_ARMv8_CORES))) +else ifneq (,$(filter $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT), $(KNOWN_ARMv8_CORES))) ifneq ($(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT),armv8-a) $(warning $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT) is armv8-a.) ifneq (,$(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)) diff --git a/core/combo/arch/arm/armv8-2a.mk b/core/combo/arch/arm/armv8-2a.mk new file mode 100644 index 000000000..e69de29bb