xlat_tables_v2: add enable_mmu()

enable_mmu_* has a different function name, so it is not handy in the
shared code. enable_mmu() calls an appropriate one depending on the
exception level.

Change-Id: I0657968bfcb91c32733f75f9259f550a5c35b1c3
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
diff --git a/include/lib/xlat_tables/xlat_mmu_helpers.h b/include/lib/xlat_tables/xlat_mmu_helpers.h
index abdf1b6..269afd2 100644
--- a/include/lib/xlat_tables/xlat_mmu_helpers.h
+++ b/include/lib/xlat_tables/xlat_mmu_helpers.h
@@ -56,6 +56,8 @@
 #include <stdint.h>
 #include <string.h>
 
+#include <arch_helpers.h>
+
 /*
  * Return the values that the MMU configuration registers must contain for the
  * specified translation context. `params` must be a pointer to array of size
@@ -70,6 +72,7 @@
 void enable_mmu_el1(unsigned int flags);
 void enable_mmu_el2(unsigned int flags);
 void enable_mmu_el3(unsigned int flags);
+void enable_mmu(unsigned int flags);
 
 void enable_mmu_direct_el1(unsigned int flags);
 void enable_mmu_direct_el2(unsigned int flags);
diff --git a/lib/xlat_tables_v2/xlat_tables_context.c b/lib/xlat_tables_v2/xlat_tables_context.c
index a1c974e..032e142 100644
--- a/lib/xlat_tables_v2/xlat_tables_context.c
+++ b/lib/xlat_tables_v2/xlat_tables_context.c
@@ -239,6 +239,23 @@
 	enable_mmu_direct_el3(flags);
 }
 
+void enable_mmu(unsigned int flags)
+{
+	switch (get_current_el_maybe_constant()) {
+	case 1:
+		enable_mmu_el1(flags);
+		break;
+	case 2:
+		enable_mmu_el2(flags);
+		break;
+	case 3:
+		enable_mmu_el3(flags);
+		break;
+	default:
+		panic();
+	}
+}
+
 #else /* !__aarch64__ */
 
 void enable_mmu_svc_mon(unsigned int flags)