diff options
author | Amit Daniel Kachhap <amit.kachhap@arm.com> | 2018-07-19 16:13:38 +0530 |
---|---|---|
committer | ronald-cron-arm <39518861+ronald-cron-arm@users.noreply.github.com> | 2018-10-18 17:22:34 +0000 |
commit | a8ba268e7e7b93b798313ab6d70810491bf9caca (patch) | |
tree | 73a65aba3903ff60ded374b003a367dd3c797d1b /product/sgi575 | |
parent | 28728d6c67487472cff374b59a25fb845c75510f (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.c | 47 | ||||
-rw-r--r-- | product/sgi575/scp_ramfw/firmware.mk | 2 |
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 \ |