1 /* 2 * (C) Copyright 2015 3 * Kamil Lulko, <kamil.lulko@gmail.com> 4 * 5 * SPDX-License-Identifier: GPL-2.0+ 6 */ 7 8 #include <common.h> 9 #include <asm/io.h> 10 #include <asm/armv7m_mpu.h> 11 #include <asm/arch/stm32.h> 12 13 u32 get_cpu_rev(void) 14 { 15 return 0; 16 } 17 18 int arch_cpu_init(void) 19 { 20 struct mpu_region_config stm32_region_config[] = { 21 { 0x00000000, REGION_0, XN_DIS, PRIV_RW_USR_RW, 22 O_I_WB_RD_WR_ALLOC, REGION_4GB }, 23 24 { 0x00000000, REGION_1, XN_DIS, PRIV_RW_USR_RW, 25 STRONG_ORDER, REGION_512MB }, 26 27 { 0x40000000, REGION_2, XN_EN, PRIV_RW_USR_RW, 28 DEVICE_NON_SHARED, REGION_512MB }, 29 30 { 0xA0000000, REGION_3, XN_EN, PRIV_RW_USR_RW, 31 DEVICE_NON_SHARED, REGION_512MB }, 32 33 { 0xE0000000, REGION_4, XN_EN, PRIV_RW_USR_RW, 34 STRONG_ORDER, REGION_512MB }, 35 }; 36 37 disable_mpu(); 38 for (int i = 0; i < ARRAY_SIZE(stm32_region_config); i++) 39 mpu_config(&stm32_region_config[i]); 40 enable_mpu(); 41 42 return 0; 43 } 44 45 void s_init(void) 46 { 47 } 48