ARMv7: Alias dmbld() to dmb()
authorJeenu Viswambharan <jeenu.viswambharan@arm.com>
Wed, 5 Sep 2018 13:23:27 +0000 (14:23 +0100)
committerJeenu Viswambharan <jeenu.viswambharan@arm.com>
Wed, 5 Sep 2018 13:39:14 +0000 (14:39 +0100)
'dmb ld' is not a recognized instruction for ARMv7. Since generic code
may use 'dmb ld', alias it to 'dmb' when building for ARMv7.

Change-Id: I502f360cb6412897ca9580b725d9f79469a7612e
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
include/lib/aarch32/arch_helpers.h

index 6369a5d78e01986fc2ac72d346207f966be10aad..5d9c1c1516693b07ac6f50b5adee5b04dd9dd0d6 100644 (file)
@@ -210,7 +210,12 @@ DEFINE_SYSOP_FUNC(sev)
 DEFINE_SYSOP_TYPE_FUNC(dsb, sy)
 DEFINE_SYSOP_TYPE_FUNC(dmb, sy)
 DEFINE_SYSOP_TYPE_FUNC(dmb, st)
+
+/* dmb ld is not valid for armv7/thumb machines */
+#if ARM_ARCH_MAJOR != 7
 DEFINE_SYSOP_TYPE_FUNC(dmb, ld)
+#endif
+
 DEFINE_SYSOP_TYPE_FUNC(dsb, ish)
 DEFINE_SYSOP_TYPE_FUNC(dsb, ishst)
 DEFINE_SYSOP_TYPE_FUNC(dmb, ish)
@@ -323,6 +328,11 @@ DEFINE_DCOP_PARAM_FUNC(cvac, DCCMVAC)
 #define dsb()                  dsbsy()
 #define dmb()                  dmbsy()
 
+/* dmb ld is not valid for armv7/thumb machines, so alias it to dmb */
+#if ARM_ARCH_MAJOR == 7
+#define        dmbld()                 dmb()
+#endif
+
 #define IS_IN_SECURE() \
        (GET_NS_BIT(read_scr()) == 0)