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>
This commit is contained in:
Masahiro Yamada 2020-03-26 13:18:48 +09:00
parent fd092be239
commit f554773520
2 changed files with 20 additions and 0 deletions

View File

@ -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 setup_mmu_cfg(uint64_t *params, unsigned int flags,
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);

View File

@ -239,6 +239,23 @@ void enable_mmu_el3(unsigned int flags)
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)