1 /* 2 * Arm SCP/MCP Software 3 * Copyright (c) 2018-2021, Arm Limited and Contributors. All rights reserved. 4 * 5 * SPDX-License-Identifier: BSD-3-Clause 6 */ 7 8 #include "scp_sgi575_mmap.h" 9 #include "scp_sgi575_mmap_scp.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 { /* 0x0000_0000 - 0xFFFF_FFFF */ 20 .RBAR = ARM_MPU_RBAR(0, 0x00000000), 21 .RASR = ARM_MPU_RASR( 22 1, ARM_MPU_AP_PRIV, 0, 1, 0, 1, 0, ARM_MPU_REGION_SIZE_4GB), 23 }, 24 { /* 0x0080_0000 - 0x00FF_FFFF */ 25 .RBAR = ARM_MPU_RBAR(1, SCP_RAM0_BASE), 26 .RASR = ARM_MPU_RASR( 27 0, ARM_MPU_AP_PRO, 0, 0, 1, 0, 0, ARM_MPU_REGION_SIZE_256KB), 28 }, 29 { /* 0x2000_0000 - 0x20FF_FFFF */ 30 .RBAR = ARM_MPU_RBAR(2, SCP_RAM1_BASE), 31 .RASR = ARM_MPU_RASR( 32 1, ARM_MPU_AP_PRIV, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_256KB), 33 }, 34 { /* 0xA400_0000 - 0xA400_7FFF*/ 35 .RBAR = ARM_MPU_RBAR(3, SCP_TRUSTED_RAM_BASE), 36 .RASR = ARM_MPU_RASR( 37 1, ARM_MPU_AP_PRIV, 0, 1, 1, 1, 0, ARM_MPU_REGION_SIZE_4KB), 38 }, 39 { /* 0xA600_0000 - 0xA600_7FFF */ 40 .RBAR = ARM_MPU_RBAR(4, SCP_NONTRUSTED_RAM_BASE), 41 .RASR = ARM_MPU_RASR( 42 1, ARM_MPU_AP_PRIV, 0, 1, 1, 1, 0, ARM_MPU_REGION_SIZE_256B), 43 }, 44 }; 45 46 const struct fwk_module_config config_armv7m_mpu = { 47 .data = &((struct mod_armv7m_mpu_config){ 48 .region_count = FWK_ARRAY_SIZE(regions), 49 .regions = regions, 50 }), 51 }; 52