xref: /openbmc/u-boot/arch/arm/mach-stm32/soc.c (revision f5bd13ed)
1c729fb25SPatrice Chotard /*
2c729fb25SPatrice Chotard  * Copyright (C) 2017, STMicroelectronics - All Rights Reserved
3c729fb25SPatrice Chotard  * Author(s): Patrice Chotard, <patrice.chotard@st.com> for STMicroelectronics.
4c729fb25SPatrice Chotard  *
5c729fb25SPatrice Chotard  * SPDX-License-Identifier:	GPL-2.0+
6c729fb25SPatrice Chotard  */
7c729fb25SPatrice Chotard 
8c729fb25SPatrice Chotard #include <common.h>
9c729fb25SPatrice Chotard #include <asm/io.h>
10c729fb25SPatrice Chotard #include <asm/armv7m_mpu.h>
11c729fb25SPatrice Chotard 
12c729fb25SPatrice Chotard int arch_cpu_init(void)
13c729fb25SPatrice Chotard {
14c729fb25SPatrice Chotard 	int i;
15c729fb25SPatrice Chotard 
16c729fb25SPatrice Chotard 	struct mpu_region_config stm32_region_config[] = {
17c729fb25SPatrice Chotard 		/*
18*f5bd13edSPatrice Chotard 		 * Make SDRAM area cacheable & executable.
19c729fb25SPatrice Chotard 		 */
20*f5bd13edSPatrice Chotard #if defined(CONFIG_STM32F4)
21c729fb25SPatrice Chotard 		{ 0x00000000, REGION_0, XN_DIS, PRIV_RW_USR_RW,
22*f5bd13edSPatrice Chotard 		O_I_WB_RD_WR_ALLOC, REGION_16MB },
23*f5bd13edSPatrice Chotard #endif
24c729fb25SPatrice Chotard 
25*f5bd13edSPatrice Chotard #if defined(CONFIG_STM32F7)
26*f5bd13edSPatrice Chotard 		{ 0xC0000000, REGION_0, XN_DIS, PRIV_RW_USR_RW,
27*f5bd13edSPatrice Chotard 		O_I_WB_RD_WR_ALLOC, REGION_16MB },
28*f5bd13edSPatrice Chotard #endif
29c729fb25SPatrice Chotard 
30*f5bd13edSPatrice Chotard #if defined(CONFIG_STM32H7)
31*f5bd13edSPatrice Chotard 		{ 0xD0000000, REGION_0, XN_DIS, PRIV_RW_USR_RW,
32*f5bd13edSPatrice Chotard 		O_I_WB_RD_WR_ALLOC, REGION_32MB },
33c729fb25SPatrice Chotard #endif
34c729fb25SPatrice Chotard 	};
35c729fb25SPatrice Chotard 
36c729fb25SPatrice Chotard 	disable_mpu();
37c729fb25SPatrice Chotard 	for (i = 0; i < ARRAY_SIZE(stm32_region_config); i++)
38c729fb25SPatrice Chotard 		mpu_config(&stm32_region_config[i]);
39c729fb25SPatrice Chotard 	enable_mpu();
40c729fb25SPatrice Chotard 
41c729fb25SPatrice Chotard 	return 0;
42c729fb25SPatrice Chotard }
43