1ba0a3c16SToshifumi NISHINAGA /*
2ba0a3c16SToshifumi NISHINAGA * (C) Copyright 2015
3ba0a3c16SToshifumi NISHINAGA * Kamil Lulko, <kamil.lulko@gmail.com>
4ba0a3c16SToshifumi NISHINAGA *
5ba0a3c16SToshifumi NISHINAGA * SPDX-License-Identifier: GPL-2.0+
6ba0a3c16SToshifumi NISHINAGA */
7ba0a3c16SToshifumi NISHINAGA
8ba0a3c16SToshifumi NISHINAGA #include <common.h>
9ba0a3c16SToshifumi NISHINAGA #include <asm/io.h>
1033b78476SVikas Manocha #include <asm/armv7m_mpu.h>
11ba0a3c16SToshifumi NISHINAGA #include <asm/arch/stm32.h>
12ba0a3c16SToshifumi NISHINAGA
get_cpu_rev(void)13ba0a3c16SToshifumi NISHINAGA u32 get_cpu_rev(void)
14ba0a3c16SToshifumi NISHINAGA {
15ba0a3c16SToshifumi NISHINAGA return 0;
16ba0a3c16SToshifumi NISHINAGA }
17ba0a3c16SToshifumi NISHINAGA
arch_cpu_init(void)18ba0a3c16SToshifumi NISHINAGA int arch_cpu_init(void)
19ba0a3c16SToshifumi NISHINAGA {
20*747c4c68SSimon Glass int i;
21*747c4c68SSimon Glass
2233b78476SVikas Manocha struct mpu_region_config stm32_region_config[] = {
2333b78476SVikas Manocha { 0x00000000, REGION_0, XN_DIS, PRIV_RW_USR_RW,
24624b7101SVikas Manocha O_I_WB_RD_WR_ALLOC, REGION_4GB },
2525c1b135SToshifumi NISHINAGA
26624b7101SVikas Manocha { 0x00000000, REGION_1, XN_DIS, PRIV_RW_USR_RW,
27624b7101SVikas Manocha STRONG_ORDER, REGION_512MB },
28624b7101SVikas Manocha
29624b7101SVikas Manocha { 0x40000000, REGION_2, XN_EN, PRIV_RW_USR_RW,
30624b7101SVikas Manocha DEVICE_NON_SHARED, REGION_512MB },
31624b7101SVikas Manocha
32624b7101SVikas Manocha { 0xA0000000, REGION_3, XN_EN, PRIV_RW_USR_RW,
33624b7101SVikas Manocha DEVICE_NON_SHARED, REGION_512MB },
34624b7101SVikas Manocha
35624b7101SVikas Manocha { 0xE0000000, REGION_4, XN_EN, PRIV_RW_USR_RW,
36624b7101SVikas Manocha STRONG_ORDER, REGION_512MB },
3733b78476SVikas Manocha };
3825c1b135SToshifumi NISHINAGA
3933b78476SVikas Manocha disable_mpu();
40*747c4c68SSimon Glass for (i = 0; i < ARRAY_SIZE(stm32_region_config); i++)
4133b78476SVikas Manocha mpu_config(&stm32_region_config[i]);
4233b78476SVikas Manocha enable_mpu();
4325c1b135SToshifumi NISHINAGA
44ba0a3c16SToshifumi NISHINAGA return 0;
45ba0a3c16SToshifumi NISHINAGA }
46ba0a3c16SToshifumi NISHINAGA
s_init(void)47ba0a3c16SToshifumi NISHINAGA void s_init(void)
48ba0a3c16SToshifumi NISHINAGA {
49ba0a3c16SToshifumi NISHINAGA }
50