aboutsummaryrefslogtreecommitdiff
path: root/core/arch/arm/mm
diff options
context:
space:
mode:
authorVolodymyr Babchuk <volodymyr_babchuk@epam.com>2020-01-23 20:05:02 +0200
committerJerome Forissier <jerome@forissier.org>2020-01-24 14:42:18 +0100
commit9c619b2c69ee1110eb851d735b04c740e8e71688 (patch)
treea4bba1c6fbc11d21a794f1c8a9a9b6588de531fc /core/arch/arm/mm
parent4b2d89454dac0fea86a6b1f8dfa42f904f9a23c4 (diff)
virt: core_mmu: use nexus memory area for temporary map
If CFG_VIRTUALIZATION is enabled, page allocator code will try to allocate pages from nexus sections, which were not mapped by default. Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Diffstat (limited to 'core/arch/arm/mm')
-rw-r--r--core/arch/arm/mm/core_mmu.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/arch/arm/mm/core_mmu.c b/core/arch/arm/mm/core_mmu.c
index 5e4ad8ec..5d1496ce 100644
--- a/core/arch/arm/mm/core_mmu.c
+++ b/core/arch/arm/mm/core_mmu.c
@@ -1205,7 +1205,12 @@ static struct tee_mmap_region *get_tmp_mmap(void)
*/
void core_init_mmu_map(unsigned long seed, struct core_mmu_config *cfg)
{
+#ifndef CFG_VIRTUALIZATION
vaddr_t start = ROUNDDOWN((vaddr_t)__nozi_start, SMALL_PAGE_SIZE);
+#else
+ vaddr_t start = ROUNDDOWN((vaddr_t)__vcore_nex_rw_start,
+ SMALL_PAGE_SIZE);
+#endif
vaddr_t len = ROUNDUP((vaddr_t)__nozi_end, SMALL_PAGE_SIZE) - start;
struct tee_mmap_region *tmp_mmap = get_tmp_mmap();
unsigned long offs = 0;