diff options
author | Sandrine Bailleux <sandrine.bailleux@arm.com> | 2018-01-16 10:04:16 +0100 |
---|---|---|
committer | Sandrine Bailleux <sandrine.bailleux@arm.com> | 2018-01-22 14:49:46 +0000 |
commit | 992788147ff7461b37eb52f17ad962ef21fc372f (patch) | |
tree | 595d0856f8984e4c6a6c6172167ef78277a84cd5 /plat/arm/board/fvp | |
parent | a3077f97cf34e827bfa57d856d395ee98493f1d2 (diff) |
FVP: Add support for comm. buffer in MM_COMMUNICATE
The MM_COMMUNICATE SMC interface supports passing a communication
buffer for additional payload data from normal world to the secure
partition. This commit adds support to use it.
On the TFTF side, the memory mappings have been changed to map this
memory buffer area. This allows TFTF tests to fill in this buffer to
pass data associated to secure service requests. The number of
translation tables had to be increased to map this new memory region.
On Cactus' side, the secure services loop has been modified to read
the communication buffer for MM_COMMUNICATE messages.
A common data structure has been defined, that corresponds to the
type of information that TFTF and Cactus will exchange through
MM_COMMUNICATE messages. The structure might evolve in the future
as we get a better idea of the kind of data that need to be passed
for secure services requests.
The existing MM_COMMUNICATE tests in TFTF have been modified to
pass a valid communication buffer address with a dummy ID.
Change-Id: I2df80a3e64f77eb229783802201a01008d3f9c2f
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
Diffstat (limited to 'plat/arm/board/fvp')
-rw-r--r-- | plat/arm/board/fvp/include/platform_def.h | 8 | ||||
-rw-r--r-- | plat/arm/board/fvp/plat_setup.c | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/plat/arm/board/fvp/include/platform_def.h b/plat/arm/board/fvp/include/platform_def.h index 842efd2..e734371 100644 --- a/plat/arm/board/fvp/include/platform_def.h +++ b/plat/arm/board/fvp/include/platform_def.h @@ -28,8 +28,9 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include "../fvp_def.h" #include <arch.h> +#include <arm_def.h> +#include "../fvp_def.h" /******************************************************************************* * Platform definitions used by common code @@ -219,8 +220,13 @@ * Platform specific page table and MMU setup constants ******************************************************************************/ #define ADDR_SPACE_SIZE (1ull << 32) +#if IMAGE_TFTF +#define MAX_XLAT_TABLES 5 +#define MAX_MMAP_REGIONS 16 +#else #define MAX_XLAT_TABLES 4 #define MAX_MMAP_REGIONS 16 +#endif /******************************************************************************* * Used to align variables on the biggest cache line size in the platform. diff --git a/plat/arm/board/fvp/plat_setup.c b/plat/arm/board/fvp/plat_setup.c index 14d1305..e497f22 100644 --- a/plat/arm/board/fvp/plat_setup.c +++ b/plat/arm/board/fvp/plat_setup.c @@ -60,6 +60,8 @@ static const mmap_region_t mmap[] = { { TFTF_BASE + L2_BLOCK_SIZE, TFTF_BASE + L2_BLOCK_SIZE, (DRAM_BASE + DRAM_SIZE) - (TFTF_BASE + L2_BLOCK_SIZE), MT_MEMORY | MT_RW | MT_NS }, { 0xFFFFFFFF - DRAM_TZ_SIZE + 1, 0xFFFFFFFF - DRAM_TZ_SIZE + 1, DRAM_TZ_SIZE, MT_MEMORY | MT_RW | MT_NS }, + { ARM_SECURE_SERVICE_BUFFER_BASE, ARM_SECURE_SERVICE_BUFFER_BASE, + ARM_SECURE_SERVICE_BUFFER_SIZE, MT_MEMORY | MT_RW | MT_NS }, { 0 } }; #endif /* IMAGE_NS_BL1U */ |