diff options
author | Soby Mathew <soby.mathew@arm.com> | 2016-11-14 12:44:32 +0000 |
---|---|---|
committer | Soby Mathew <soby.mathew@arm.com> | 2017-06-05 13:32:17 +0100 |
commit | 40111d4473043a823eb0d2bdcac093a3ffc9df2b (patch) | |
tree | 7d6594b1ce12c2aeaf77c88532f6e89d110d876e | |
parent | c04a3b6c180556ee22c958b74b8c07758b870685 (diff) |
Add SCMI support for Juno platform
This patch adds the memory map region for the SCMI payload memory
and maps the Juno core indices to SCMI power domains via the
`plat_css_core_pos_to_scmi_dmn_id_map` array.
Change-Id: I0d2bb2a719ff5b6a9d8e22e91e1625ab14453665
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
-rw-r--r-- | include/plat/arm/css/common/css_def.h | 5 | ||||
-rw-r--r-- | plat/arm/board/common/board_css_common.c | 9 | ||||
-rw-r--r-- | plat/arm/board/juno/include/platform_def.h | 9 | ||||
-rw-r--r-- | plat/arm/board/juno/juno_topology.c | 7 |
4 files changed, 28 insertions, 2 deletions
diff --git a/include/plat/arm/css/common/css_def.h b/include/plat/arm/css/common/css_def.h index 4c4dece6..0b74cede 100644 --- a/include/plat/arm/css/common/css_def.h +++ b/include/plat/arm/css/common/css_def.h @@ -74,6 +74,11 @@ CSS_DEVICE_SIZE, \ MT_DEVICE | MT_RW | MT_SECURE) +#define CSS_MAP_NSRAM MAP_REGION_FLAT( \ + NSRAM_BASE, \ + NSRAM_SIZE, \ + MT_DEVICE | MT_RW | MT_SECURE) + /* Platform ID address */ #define SSC_VERSION_OFFSET 0x040 diff --git a/plat/arm/board/common/board_css_common.c b/plat/arm/board/common/board_css_common.c index 1758a235..42f754e2 100644 --- a/plat/arm/board/common/board_css_common.c +++ b/plat/arm/board/common/board_css_common.c @@ -49,6 +49,15 @@ const mmap_region_t plat_arm_mmap[] = { ARM_MAP_SHARED_RAM, V2M_MAP_IOFPGA, CSS_MAP_DEVICE, +#if CSS_USE_SCMI_DRIVER + /* + * The SCMI payload area is currently in the Non Secure SRAM. This is + * a potential security risk but this will be resolved once SCP + * completely replaces SCPI with SCMI as the only communication + * protocol. + */ + CSS_MAP_NSRAM, +#endif SOC_CSS_MAP_DEVICE, {0} }; diff --git a/plat/arm/board/juno/include/platform_def.h b/plat/arm/board/juno/include/platform_def.h index 8f038267..68c38ee1 100644 --- a/plat/arm/board/juno/include/platform_def.h +++ b/plat/arm/board/juno/include/platform_def.h @@ -74,8 +74,13 @@ #endif #ifdef IMAGE_BL31 -# define PLAT_ARM_MMAP_ENTRIES 5 -# define MAX_XLAT_TABLES 2 +# if CSS_USE_SCMI_DRIVER +# define PLAT_ARM_MMAP_ENTRIES 6 +# define MAX_XLAT_TABLES 3 +# else +# define PLAT_ARM_MMAP_ENTRIES 5 +# define MAX_XLAT_TABLES 2 +# endif #endif #ifdef IMAGE_BL32 diff --git a/plat/arm/board/juno/juno_topology.c b/plat/arm/board/juno/juno_topology.c index d2e0c77e..b9412b1f 100644 --- a/plat/arm/board/juno/juno_topology.c +++ b/plat/arm/board/juno/juno_topology.c @@ -51,3 +51,10 @@ unsigned int plat_arm_get_cluster_core_count(u_register_t mpidr) return (((mpidr) & 0x100) ? JUNO_CLUSTER1_CORE_COUNT :\ JUNO_CLUSTER0_CORE_COUNT); } + +/* + * The array mapping platform core position (implemented by plat_my_core_pos()) + * to the SCMI power domain ID implemented by SCP. + */ +const uint32_t plat_css_core_pos_to_scmi_dmn_id_map[PLATFORM_CORE_COUNT] = { + 2, 3, 4, 5, 0, 1 }; |