Mark the cortex-{a7,a53,a53.57} chips as supporting LPAE
(cherry picked from commit bdfeb3e760feb080b449cc58129e5473bda54dec)
Bug: 27340895
Bug: 27324856
Change-Id: Id3994c6d334c8bb673fc3849550f591136a8dd6a
diff --git a/core/combo/arch/arm/armv7-a-neon.mk b/core/combo/arch/arm/armv7-a-neon.mk
index 5dc1fec..5d5b050 100644
--- a/core/combo/arch/arm/armv7-a-neon.mk
+++ b/core/combo/arch/arm/armv7-a-neon.mk
@@ -6,6 +6,8 @@
ARCH_ARM_HAVE_VFP_D32 := true
ARCH_ARM_HAVE_NEON := true
+local_arch_has_lpae := false
+
ifneq (,$(filter cortex-a15 krait denver,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)))
# TODO: krait is not a cortex-a15, we set the variant to cortex-a15 so that
# hardware divide operations are generated. This should be removed and a
@@ -13,9 +15,7 @@
# core/clang/arm.mk.
arch_variant_cflags := -mcpu=cortex-a15
- # Fake an ARM compiler flag as these processors support LPAE which GCC/clang
- # don't advertise.
- arch_variant_cflags += -D__ARM_FEATURE_LPAE=1
+ local_arch_has_lpae := true
arch_variant_ldflags := \
-Wl,--no-fix-cortex-a8
else
@@ -26,6 +26,8 @@
else
ifneq (,$(filter cortex-a7 cortex-a53 cortex-a53.a57,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)))
arch_variant_cflags := -mcpu=cortex-a7
+
+ local_arch_has_lpae := true
arch_variant_ldflags := \
-Wl,--no-fix-cortex-a8
else
@@ -37,6 +39,16 @@
endif
endif
+ifeq (true,$(local_arch_has_lpae))
+ # Fake an ARM compiler flag as these processors support LPAE which GCC/clang
+ # don't advertise.
+ # TODO This is a hack and we need to add it for each processor that supports LPAE until some
+ # better solution comes around. See Bug 27340895
+ arch_variant_cflags += -D__ARM_FEATURE_LPAE=1
+endif
+
+local_arch_has_lpae :=
+
arch_variant_cflags += \
-mfloat-abi=softfp \
-mfpu=neon