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