Commit 664e15c2 authored by Masahiro Yamada's avatar Masahiro Yamada Committed by Sandrine Bailleux
Browse files

uniphier: support read-only xlat tables



BL2 for this platform uses mmap_add_dynamic_region(), but BL31 and
BL32 (TSP) only use static mapping. So, BL31 and BL32 can make the
tables read-only after enabling MMU.

Enable ALLOW_RO_XLAT_TABLES by default.

Change-Id: Ib59c44697163629119888bb6abd47fa144f09ba3
Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
parent 2765ffdc
...@@ -14,6 +14,13 @@ override ENABLE_SVE_FOR_NS := 0 ...@@ -14,6 +14,13 @@ override ENABLE_SVE_FOR_NS := 0
# UNIPHIER_MEM_BASE so that all TF images are loaded at their link addresses. # UNIPHIER_MEM_BASE so that all TF images are loaded at their link addresses.
override ENABLE_PIE := 1 override ENABLE_PIE := 1
ALLOW_RO_XLAT_TABLES := 1
ifeq ($(ALLOW_RO_XLAT_TABLES),1)
BL31_CFLAGS += -DPLAT_RO_XLAT_TABLES=1
BL32_CFLAGS += -DPLAT_RO_XLAT_TABLES=1
endif
# Cortex-A53 revision r0p4-51rel0 # Cortex-A53 revision r0p4-51rel0
# needed for LD20, unneeded for LD11, PXs3 (no ACE) # needed for LD20, unneeded for LD11, PXs3 (no ACE)
ERRATA_A53_855873 := 1 ERRATA_A53_855873 := 1
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include <common/debug.h> #include <common/debug.h>
#include <lib/xlat_tables/xlat_tables_v2.h> #include <lib/xlat_tables/xlat_tables_v2.h>
#include <plat/common/platform.h>
#include "uniphier.h" #include "uniphier.h"
...@@ -65,4 +66,16 @@ void uniphier_mmap_setup(unsigned int soc) ...@@ -65,4 +66,16 @@ void uniphier_mmap_setup(unsigned int soc)
init_xlat_tables(); init_xlat_tables();
enable_mmu(0); enable_mmu(0);
#if PLAT_RO_XLAT_TABLES
{
int ret;
ret = xlat_make_tables_readonly();
if (ret) {
ERROR("Failed to make translation tables read-only.");
plat_error_handler(ret);
}
}
#endif
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment