diff options
| author | Abdellatif El Khlifi <[email protected]> | 2023-07-13 14:28:46 +0100 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2023-07-24 15:30:03 -0400 |
| commit | aabbc2f8b2a4e1a458a34b9ff5becb997c6157ff (patch) | |
| tree | d42d114d5132371d0d960f02600715267140c303 /include | |
| parent | 20e2b994f98642cf4152c117bd72fa719aca1de1 (diff) | |
arm_ffa: efi: introduce FF-A MM communication
Add MM communication support using FF-A transport
This feature allows accessing MM partitions services through
EFI MM communication protocol. MM partitions such as StandAlonneMM
or smm-gateway secure partitions which reside in secure world.
An MM shared buffer and a door bell event are used to exchange
the data.
The data is used by EFI services such as GetVariable()/SetVariable()
and copied from the communication buffer to the MM shared buffer.
The secure partition is notified about availability of data in the
MM shared buffer by an FF-A message (door bell).
On such event, MM SP can read the data and updates the MM shared
buffer with the response data.
The response data is copied back to the communication buffer and
consumed by the EFI subsystem.
MM communication protocol supports FF-A 64-bit direct messaging.
Signed-off-by: Abdellatif El Khlifi <[email protected]>
Tested-by: Gowtham Suresh Kumar <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
Cc: Tom Rini <[email protected]>
Cc: Ilias Apalodimas <[email protected]>
Cc: Jens Wiklander <[email protected]>
Diffstat (limited to 'include')
| -rw-r--r-- | include/mm_communication.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/mm_communication.h b/include/mm_communication.h index e65fbde60d0..f17847583b2 100644 --- a/include/mm_communication.h +++ b/include/mm_communication.h @@ -6,6 +6,9 @@ * Copyright (c) 2017, Intel Corporation. All rights reserved. * Copyright (C) 2020 Linaro Ltd. <[email protected]> * Copyright (C) 2020 Linaro Ltd. <[email protected]> + * Copyright 2022-2023 Arm Limited and/or its affiliates <[email protected]> + * Authors: + * Abdellatif El Khlifi <[email protected]> */ #ifndef _MM_COMMUNICATION_H_ @@ -13,6 +16,9 @@ #include <part_efi.h> +/* MM service UUID string (big-endian format). This UUID is common across all MM SPs */ +#define MM_SP_UUID "33d532ed-e699-0942-c09c-a798d9cd722d" + /* * Interface to the pseudo Trusted Application (TA), which provides a * communication channel with the Standalone MM (Management Mode) @@ -248,4 +254,11 @@ struct smm_variable_var_check_property { u16 name[]; }; +/* supported MM transports */ +enum mm_comms_select { + MM_COMMS_UNDEFINED, + MM_COMMS_FFA, + MM_COMMS_OPTEE +}; + #endif /* _MM_COMMUNICATION_H_ */ |
