diff options
author | Vikas Manocha <vikas.manocha@st.com> | 2017-05-03 23:38:56 (GMT) |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-05-12 12:37:07 (GMT) |
commit | 33b78476d2bfd2660e376ea743bff5dc210971ca (patch) | |
tree | 931db7984e3e24dd909cb182b87768b1f313a757 /arch/arm/mach-stm32/stm32f4/soc.c | |
parent | 96b61ab15c3a477ee14bb7e97faa2d8e1cdf3874 (diff) | |
download | u-boot-33b78476d2bfd2660e376ea743bff5dc210971ca.tar.xz |
stm32: use armv7m MPU configuration support
Signed-off-by: Vikas Manocha <vikas.manocha@st.com>
Diffstat (limited to 'arch/arm/mach-stm32/stm32f4/soc.c')
-rw-r--r-- | arch/arm/mach-stm32/stm32f4/soc.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/arch/arm/mach-stm32/stm32f4/soc.c b/arch/arm/mach-stm32/stm32f4/soc.c index b5d06db..3f45a25 100644 --- a/arch/arm/mach-stm32/stm32f4/soc.c +++ b/arch/arm/mach-stm32/stm32f4/soc.c @@ -7,7 +7,7 @@ #include <common.h> #include <asm/io.h> -#include <asm/armv7m.h> +#include <asm/armv7m_mpu.h> #include <asm/arch/stm32.h> u32 get_cpu_rev(void) @@ -17,17 +17,19 @@ u32 get_cpu_rev(void) int arch_cpu_init(void) { + struct mpu_region_config stm32_region_config[] = { + { 0x00000000, REGION_0, XN_DIS, PRIV_RW_USR_RW, + STRONG_ORDER, REGION_4GB }, + }; configure_clocks(); - /* * Configure the memory protection unit (MPU) to allow full access to * the whole 4GB address space. */ - writel(0, &V7M_MPU->rnr); - writel(0, &V7M_MPU->rbar); - writel((V7M_MPU_RASR_AP_RW_RW | V7M_MPU_RASR_SIZE_4GB - | V7M_MPU_RASR_EN), &V7M_MPU->rasr); - writel(V7M_MPU_CTRL_ENABLE | V7M_MPU_CTRL_HFNMIENA, &V7M_MPU->ctrl); + disable_mpu(); + for (int i = 0; i < ARRAY_SIZE(stm32_region_config); i++) + mpu_config(&stm32_region_config[i]); + enable_mpu(); return 0; } |