aarch64: mmu: invert the MT_OVERWRITE flag

The MT_OVERWRITE case is much more common. Redefine that flag as
MT_NO_OVERWRITE instead for those fewer cases where it is needed.

One such case is platform provided mappings. Apply them after the
common kernel mappings and use the MT_NO_OVERWRITE on them.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
This commit is contained in:
Nicolas Pitre 2021-02-14 16:08:21 -05:00 committed by Anas Nashif
commit cb49e4b789
2 changed files with 19 additions and 14 deletions

View file

@ -46,7 +46,7 @@
#define MT_P_EXECUTE_SHIFT 5U
#define MT_U_EXECUTE_SHIFT 6U
#define MT_RW_AP_SHIFT 7U
#define MT_OVERWRITE_SHIFT 8U
#define MT_NO_OVERWRITE_SHIFT 8U
#define MT_RO (0U << MT_PERM_SHIFT)
#define MT_RW (1U << MT_PERM_SHIFT)
@ -63,7 +63,7 @@
#define MT_U_EXECUTE (0U << MT_U_EXECUTE_SHIFT)
#define MT_U_EXECUTE_NEVER (1U << MT_U_EXECUTE_SHIFT)
#define MT_OVERWRITE (1U << MT_OVERWRITE_SHIFT)
#define MT_NO_OVERWRITE (1U << MT_NO_OVERWRITE_SHIFT)
#define MT_P_RW_U_RW (MT_RW | MT_RW_AP_ELx | MT_P_EXECUTE_NEVER | MT_U_EXECUTE_NEVER)
#define MT_P_RW_U_NA (MT_RW | MT_RW_AP_EL_HIGHER | MT_P_EXECUTE_NEVER | MT_U_EXECUTE_NEVER)