1 /* 2 * Arm SCP/MCP Software 3 * Copyright (c) 2022, Arm Limited and Contributors. All rights reserved. 4 * 5 * SPDX-License-Identifier: BSD-3-Clause 6 */ 7 8 #include "scp_mmap.h" 9 10 #include <mod_armv7m_mpu.h> 11 12 #include <fwk_macros.h> 13 #include <fwk_module.h> 14 15 #include <fmw_cmsis.h> 16 17 static const ARM_MPU_Region_t regions[4] = { 18 { 19 /* 0x0000_0000 - 0xFFFF_FFFF */ 20 .RBAR = ARM_MPU_RBAR(0, 0x00000000), 21 .RASR = ARM_MPU_RASR( 22 1, 23 ARM_MPU_AP_PRIV, 24 0, 25 1, 26 0, 27 1, 28 0, 29 ARM_MPU_REGION_SIZE_4GB), 30 }, 31 { 32 /* 0x1000_0000 - 0x1007_FFFF */ 33 .RBAR = ARM_MPU_RBAR(1, SCP_RAM_BASE), 34 .RASR = ARM_MPU_RASR( 35 0, 36 ARM_MPU_AP_PRIV, 37 0, 38 0, 39 1, 40 1, 41 0, 42 ARM_MPU_REGION_SIZE_512KB), 43 }, 44 { 45 /* 0xA400_0000 - 0xA400_7FFF*/ 46 .RBAR = ARM_MPU_RBAR(2, SCP_TRUSTED_RAM_BASE), 47 .RASR = ARM_MPU_RASR( 48 1, 49 ARM_MPU_AP_PRIV, 50 0, 51 1, 52 1, 53 1, 54 0, 55 ARM_MPU_REGION_SIZE_4KB), 56 }, 57 { 58 /* 0xA600_0000 - 0xA600_7FFF */ 59 .RBAR = ARM_MPU_RBAR(3, SCP_NONTRUSTED_RAM_BASE), 60 .RASR = ARM_MPU_RASR( 61 1, 62 ARM_MPU_AP_PRIV, 63 0, 64 1, 65 1, 66 1, 67 0, 68 ARM_MPU_REGION_SIZE_256B), 69 }, 70 }; 71 72 const struct fwk_module_config config_armv7m_mpu = { 73 .data = &((struct mod_armv7m_mpu_config){ 74 .region_count = FWK_ARRAY_SIZE(regions), 75 .regions = regions, 76 }), 77 }; 78