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: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
Masahiro Yamada 2020-03-26 13:18:48 +09:00 committed by Sandrine Bailleux
parent 2765ffdc99
commit 664e15c2bd
2 changed files with 20 additions and 0 deletions

View File

@ -14,6 +14,13 @@ override ENABLE_SVE_FOR_NS := 0
# UNIPHIER_MEM_BASE so that all TF images are loaded at their link addresses.
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
# needed for LD20, unneeded for LD11, PXs3 (no ACE)
ERRATA_A53_855873 := 1

View File

@ -10,6 +10,7 @@
#include <common/debug.h>
#include <lib/xlat_tables/xlat_tables_v2.h>
#include <plat/common/platform.h>
#include "uniphier.h"
@ -65,4 +66,16 @@ void uniphier_mmap_setup(unsigned int soc)
init_xlat_tables();
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
}