1*c9d75b3cSYann Gautier /* 2*c9d75b3cSYann Gautier * Copyright (c) 2015-2019, ARM Limited and Contributors. All rights reserved. 3*c9d75b3cSYann Gautier * 4*c9d75b3cSYann Gautier * SPDX-License-Identifier: BSD-3-Clause 5*c9d75b3cSYann Gautier */ 6*c9d75b3cSYann Gautier 7*c9d75b3cSYann Gautier #include <platform_def.h> 8*c9d75b3cSYann Gautier 9*c9d75b3cSYann Gautier #include <lib/xlat_tables/xlat_tables_v2.h> 10*c9d75b3cSYann Gautier 11*c9d75b3cSYann Gautier #define MAP_SRAM MAP_REGION_FLAT(STM32MP1_SRAM_BASE, \ 12*c9d75b3cSYann Gautier STM32MP1_SRAM_SIZE, \ 13*c9d75b3cSYann Gautier MT_MEMORY | \ 14*c9d75b3cSYann Gautier MT_RW | \ 15*c9d75b3cSYann Gautier MT_SECURE | \ 16*c9d75b3cSYann Gautier MT_EXECUTE_NEVER) 17*c9d75b3cSYann Gautier 18*c9d75b3cSYann Gautier #define MAP_DEVICE1 MAP_REGION_FLAT(STM32MP1_DEVICE1_BASE, \ 19*c9d75b3cSYann Gautier STM32MP1_DEVICE1_SIZE, \ 20*c9d75b3cSYann Gautier MT_DEVICE | \ 21*c9d75b3cSYann Gautier MT_RW | \ 22*c9d75b3cSYann Gautier MT_SECURE | \ 23*c9d75b3cSYann Gautier MT_EXECUTE_NEVER) 24*c9d75b3cSYann Gautier 25*c9d75b3cSYann Gautier #define MAP_DEVICE2 MAP_REGION_FLAT(STM32MP1_DEVICE2_BASE, \ 26*c9d75b3cSYann Gautier STM32MP1_DEVICE2_SIZE, \ 27*c9d75b3cSYann Gautier MT_DEVICE | \ 28*c9d75b3cSYann Gautier MT_RW | \ 29*c9d75b3cSYann Gautier MT_SECURE | \ 30*c9d75b3cSYann Gautier MT_EXECUTE_NEVER) 31*c9d75b3cSYann Gautier 32*c9d75b3cSYann Gautier #if defined(IMAGE_BL2) 33*c9d75b3cSYann Gautier static const mmap_region_t stm32mp1_mmap[] = { 34*c9d75b3cSYann Gautier MAP_SRAM, 35*c9d75b3cSYann Gautier MAP_DEVICE1, 36*c9d75b3cSYann Gautier MAP_DEVICE2, 37*c9d75b3cSYann Gautier {0} 38*c9d75b3cSYann Gautier }; 39*c9d75b3cSYann Gautier #endif 40*c9d75b3cSYann Gautier #if defined(IMAGE_BL32) 41*c9d75b3cSYann Gautier static const mmap_region_t stm32mp1_mmap[] = { 42*c9d75b3cSYann Gautier MAP_SRAM, 43*c9d75b3cSYann Gautier MAP_DEVICE1, 44*c9d75b3cSYann Gautier MAP_DEVICE2, 45*c9d75b3cSYann Gautier {0} 46*c9d75b3cSYann Gautier }; 47*c9d75b3cSYann Gautier #endif 48*c9d75b3cSYann Gautier 49*c9d75b3cSYann Gautier void configure_mmu(void) 50*c9d75b3cSYann Gautier { 51*c9d75b3cSYann Gautier mmap_add(stm32mp1_mmap); 52*c9d75b3cSYann Gautier init_xlat_tables(); 53*c9d75b3cSYann Gautier 54*c9d75b3cSYann Gautier enable_mmu_svc_mon(0); 55*c9d75b3cSYann Gautier } 56