diff --git a/soc/arm/arm/mps2/CMakeLists.txt b/soc/arm/arm/mps2/CMakeLists.txt index b304980e28f..250e7835445 100644 --- a/soc/arm/arm/mps2/CMakeLists.txt +++ b/soc/arm/arm/mps2/CMakeLists.txt @@ -1,3 +1,4 @@ zephyr_sources( soc.c + arm_mpu_regions.c ) diff --git a/soc/arm/arm/mps2/arm_mpu_regions.c b/soc/arm/arm/mps2/arm_mpu_regions.c new file mode 100644 index 00000000000..5c9bd651058 --- /dev/null +++ b/soc/arm/arm/mps2/arm_mpu_regions.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2017 Linaro Limited. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +#include +#include + +static struct arm_mpu_region mpu_regions[] = { + /* Region 0 */ + MPU_REGION_ENTRY("FLASH_0", + CONFIG_FLASH_BASE_ADDRESS, + REGION_FLASH_ATTR(REGION_4M)), + + MPU_REGION_ENTRY("SRAM_0", + CONFIG_SRAM_BASE_ADDRESS, + REGION_RAM_ATTR(REGION_2M)) +}; + +struct arm_mpu_config mpu_config = { + .num_regions = ARRAY_SIZE(mpu_regions), + .mpu_regions = mpu_regions, +}; diff --git a/soc/arm/arm/mps2/soc.h b/soc/arm/arm/mps2/soc.h index de056472948..052489e558d 100644 --- a/soc/arm/arm/mps2/soc.h +++ b/soc/arm/arm/mps2/soc.h @@ -7,6 +7,7 @@ #ifndef _SOC_H_ #define _SOC_H_ +#define __MPU_PRESENT 1 #include #endif /* _SOC_H_ */ diff --git a/soc/arm/arm/mps2/soc_devices.h b/soc/arm/arm/mps2/soc_devices.h index aff99b3747e..9814c44f6ef 100644 --- a/soc/arm/arm/mps2/soc_devices.h +++ b/soc/arm/arm/mps2/soc_devices.h @@ -9,8 +9,10 @@ #ifndef _ASMLANGUAGE +#include #include "soc_registers.h" + /* FPGA system control block (FPGAIO) */ #define FPGAIO_BASE_ADDR (0x40028000) #define __MPS2_FPGAIO ((volatile struct mps2_fpgaio *)FPGAIO_BASE_ADDR)