10a61ee88SVikas Manocha /* 20a61ee88SVikas Manocha * (C) Copyright 2015 30a61ee88SVikas Manocha * Kamil Lulko, <kamil.lulko@gmail.com> 40a61ee88SVikas Manocha * 50a61ee88SVikas Manocha * SPDX-License-Identifier: GPL-2.0+ 60a61ee88SVikas Manocha */ 70a61ee88SVikas Manocha 80a61ee88SVikas Manocha #include <common.h> 90a61ee88SVikas Manocha #include <asm/io.h> 1033b78476SVikas Manocha #include <asm/armv7m_mpu.h> 110a61ee88SVikas Manocha #include <asm/arch/stm32.h> 120a61ee88SVikas Manocha get_cpu_rev(void)130a61ee88SVikas Manochau32 get_cpu_rev(void) 140a61ee88SVikas Manocha { 150a61ee88SVikas Manocha return 0; 160a61ee88SVikas Manocha } 170a61ee88SVikas Manocha arch_cpu_init(void)180a61ee88SVikas Manochaint arch_cpu_init(void) 190a61ee88SVikas Manocha { 2033b78476SVikas Manocha struct mpu_region_config stm32_region_config[] = { 2133b78476SVikas Manocha { 0x00000000, REGION_0, XN_DIS, PRIV_RW_USR_RW, 2233b78476SVikas Manocha STRONG_ORDER, REGION_4GB }, 2333b78476SVikas Manocha }; 24*679590ebSPatrice Chotard int i; 25*679590ebSPatrice Chotard 260a61ee88SVikas Manocha configure_clocks(); 270a61ee88SVikas Manocha /* 280a61ee88SVikas Manocha * Configure the memory protection unit (MPU) to allow full access to 290a61ee88SVikas Manocha * the whole 4GB address space. 300a61ee88SVikas Manocha */ 3133b78476SVikas Manocha disable_mpu(); 32*679590ebSPatrice Chotard for (i = 0; i < ARRAY_SIZE(stm32_region_config); i++) 3333b78476SVikas Manocha mpu_config(&stm32_region_config[i]); 3433b78476SVikas Manocha enable_mpu(); 350a61ee88SVikas Manocha 360a61ee88SVikas Manocha return 0; 370a61ee88SVikas Manocha } 380a61ee88SVikas Manocha s_init(void)390a61ee88SVikas Manochavoid s_init(void) 400a61ee88SVikas Manocha { 410a61ee88SVikas Manocha } 42