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