aboutsummaryrefslogtreecommitdiff
path: root/product/sgi575
diff options
context:
space:
mode:
authorAmit Daniel Kachhap <amit.kachhap@arm.com>2018-07-19 16:13:38 +0530
committerronald-cron-arm <39518861+ronald-cron-arm@users.noreply.github.com>2018-10-18 17:22:34 +0000
commita8ba268e7e7b93b798313ab6d70810491bf9caca (patch)
tree73a65aba3903ff60ded374b003a367dd3c797d1b /product/sgi575
parent28728d6c67487472cff374b59a25fb845c75510f (diff)
sgi575/scp_ramfw: Add config for MPU
Change-Id: I60884ff0a068ebfcaee2a824a9a86d1f3cff4795 Signed-off-by: Amit Daniel Kachhap <amit.kachhap@arm.com>
Diffstat (limited to 'product/sgi575')
-rw-r--r--product/sgi575/scp_ramfw/config_armv7m_mpu.c47
-rw-r--r--product/sgi575/scp_ramfw/firmware.mk2
2 files changed, 49 insertions, 0 deletions
diff --git a/product/sgi575/scp_ramfw/config_armv7m_mpu.c b/product/sgi575/scp_ramfw/config_armv7m_mpu.c
new file mode 100644
index 00000000..515cce4f
--- /dev/null
+++ b/product/sgi575/scp_ramfw/config_armv7m_mpu.c
@@ -0,0 +1,47 @@
+/*
+ * Arm SCP/MCP Software
+ * Copyright (c) 2018, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <fwk_macros.h>
+#include <fwk_module.h>
+#include <mod_armv7m_mpu.h>
+#include <scp_sgi575_mmap.h>
+#include <scp_sgi575_mmap_scp.h>
+
+static const ARM_MPU_Region_t regions[] = {
+ { /* 0x0000_0000 - 0xFFFF_FFFF */
+ .RBAR = ARM_MPU_RBAR(0, 0x00000000),
+ .RASR = ARM_MPU_RASR(
+ 1, ARM_MPU_AP_PRIV, 0, 1, 0, 1, 0, ARM_MPU_REGION_SIZE_4GB),
+ },
+ { /* 0x0080_0000 - 0x00FF_FFFF */
+ .RBAR = ARM_MPU_RBAR(1, SCP_RAM0_BASE),
+ .RASR = ARM_MPU_RASR(
+ 0, ARM_MPU_AP_PRO, 0, 0, 1, 0, 0, ARM_MPU_REGION_SIZE_256KB),
+ },
+ { /* 0x2000_0000 - 0x20FF_FFFF */
+ .RBAR = ARM_MPU_RBAR(2, SCP_RAM1_BASE),
+ .RASR = ARM_MPU_RASR(
+ 1, ARM_MPU_AP_PRIV, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_256KB),
+ },
+ { /* 0xA400_0000 - 0xA400_7FFF*/
+ .RBAR = ARM_MPU_RBAR(3, SCP_TRUSTED_RAM_BASE),
+ .RASR = ARM_MPU_RASR(
+ 1, ARM_MPU_AP_PRIV, 0, 1, 1, 1, 0, ARM_MPU_REGION_SIZE_4KB),
+ },
+ { /* 0xA600_0000 - 0xA600_7FFF */
+ .RBAR = ARM_MPU_RBAR(4, SCP_NONTRUSTED_RAM_BASE),
+ .RASR = ARM_MPU_RASR(
+ 1, ARM_MPU_AP_PRIV, 0, 1, 1, 1, 0, ARM_MPU_REGION_SIZE_256B),
+ },
+};
+
+const struct fwk_module_config config_armv7m_mpu = {
+ .data = &((struct mod_armv7m_mpu_config){
+ .region_count = FWK_ARRAY_SIZE(regions),
+ .regions = regions,
+ }),
+};
diff --git a/product/sgi575/scp_ramfw/firmware.mk b/product/sgi575/scp_ramfw/firmware.mk
index 267eeff4..5798444a 100644
--- a/product/sgi575/scp_ramfw/firmware.mk
+++ b/product/sgi575/scp_ramfw/firmware.mk
@@ -11,6 +11,7 @@ BS_FIRMWARE_HAS_NOTIFICATION := yes
BS_FIRMWARE_MODULE_HEADERS_ONLY :=
BS_FIRMWARE_MODULES := \
+ armv7m_mpu \
pl011 \
log \
cmn600 \
@@ -31,6 +32,7 @@ BS_FIRMWARE_MODULES := \
BS_FIRMWARE_SOURCES := \
rtx_config.c \
sgi575_core.c \
+ config_armv7m_mpu.c \
config_log.c \
config_cmn600.c \
config_power_domain.c \