| f0244e5d | 13-Jan-2022 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc/mem): support multiple endpoints in memory transactions
Enable FFA_MEM_LEND and FFA_MEM_SHARE transactions to support multiple borrowers and add the appropriate validation. Since we curren
feat(spmc/mem): support multiple endpoints in memory transactions
Enable FFA_MEM_LEND and FFA_MEM_SHARE transactions to support multiple borrowers and add the appropriate validation. Since we currently only support a single S-EL1 partition, this functionality is to support the use case where a VM shares or lends memory to one or more VMs in the normal world as part of the same transaction to the SP.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: Ia12c4357e9d015cb5f9b38e518b7a25b1ea2e30e
show more ...
|
| 2e219215 | 19-Oct-2021 |
Achin Gupta <achin.gupta@arm.com> |
feat(spmc): add support for v1.1 FF-A boot protocol
A partition can request the use of the FF-A boot protocol via an entry in its manifest along with the register (0-3) that should be populated with
feat(spmc): add support for v1.1 FF-A boot protocol
A partition can request the use of the FF-A boot protocol via an entry in its manifest along with the register (0-3) that should be populated with a pointer to a data structure containing boot related information. Currently the boot information consists of an allocated memory region containing the SP's manifest, allowing it to map and parse any extra information as required.
This implementation only supports the v1.1 data structures and will return an error if a v1.0 client requests the usage of the protocol.
Signed-off-by: Achin Gupta <achin.gupta@arm.com> Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I67692553a90a7e7d94c64fe275edd247b512efca
show more ...
|
| e0b1a6d5 | 01-Oct-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc/mem): add FF-A memory management code
Originally taken from the downstream Trusty SPD [1] implementation and modified to integrate with the EL3 SPMC internals.
Add support to the EL3 SPMC
feat(spmc/mem): add FF-A memory management code
Originally taken from the downstream Trusty SPD [1] implementation and modified to integrate with the EL3 SPMC internals.
Add support to the EL3 SPMC for a subset of the FF-A memory management ABIs: - FFA_MEM_SHARE - FFA_MEM_LEND - FFA_MEM_RETRIEVE_REQ - FFA_MEM_RETRIEVE_RESP - FFA_MEM_RELINQUISH - FFA_MEM_RECLAIM - FFA_MEM_FRAG_RX - FFA_MEM_FRAG_TX
This implementation relies on a datastore allocated in platform specific code in order to store memory descriptors about ongoing memory transactions. This mechanism will be implemented in the following commit.
[1] https://android.googlesource.com/trusty/external/trusted-firmware-a/+/refs/heads/master/services/spd/trusty/
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: Ib042f73c8a6e0f0aed00f6762be175cb9dedc042
show more ...
|
| 642db984 | 23-Sep-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmd): allow forwarding of FFA_FRAG_RX/TX calls
Enable the SPMD to forward FFA_FRAG_RX/TX calls between the normal world and the SPMC.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change
feat(spmd): allow forwarding of FFA_FRAG_RX/TX calls
Enable the SPMD to forward FFA_FRAG_RX/TX calls between the normal world and the SPMC.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I097a48552827a8527dd3efe1155bc601d7cbf887
show more ...
|
| 59bd2ad8 | 12-Apr-2022 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): add support for FF-A power mgmt. messages in the EL3 SPMC
This patch adds support for forwarding the following PSCI messages received by the SPMC at EL3 to the S-EL1 SP if the SP has ind
feat(spmc): add support for FF-A power mgmt. messages in the EL3 SPMC
This patch adds support for forwarding the following PSCI messages received by the SPMC at EL3 to the S-EL1 SP if the SP has indicated that it wishes to receive the appropriate message via its manifest.
1. A PSCI CPU_OFF message in response to a cpu hot unplug request from the OS. 2. A message to indicate warm boot of a cpu in response to a cpu hot plug request from the OS. 3. A PSCI CPU_SUSPEND message in response to a cpu idle event initiated from the OS. 4. A message to indicate warm boot of a cpu from a shallow power state in response to a cpu resume power event.
This patch also implements the FFA_SECONDARY_EP_REGISTER function to enable the SP specify its secondary entrypoint.
Signed-off-by: Achin Gupta <achin.gupta@arm.com> Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I375d0655b2c6fc27445facc39213d1d0678557f4
show more ...
|
| f74e2772 | 17-Aug-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): add FFA_PARTITION_INFO_GET handler
Enable the SPMC to handle calls to FFA_PARTITION_INFO_GET. This allows the normal world to discover which partitions are running in the secure world in
feat(spmc): add FFA_PARTITION_INFO_GET handler
Enable the SPMC to handle calls to FFA_PARTITION_INFO_GET. This allows the normal world to discover which partitions are running in the secure world including logical partitions in EL3.
This implementation supports both the v1.0 and v1.1 implementations of the Partition Info Get Descriptor. The SPMC populates the appropriate descriptor in the partitions RX buffer, if requested, according to the version of FF-A that the caller is using.
Additionally rename the common/uuid UUID_H include guard due to a conflict with another header file.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I0a85f1dae50fae1fe47a3cafb765fbe9f40619e1
show more ...
|
| 0c7707fd | 08-Dec-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): enable handling FFA_VERSION ABI
Report the SPMC version to the caller, currently v1.1 and also store the requested version to allow the SPMC to use the corresponding FF-A version in futu
feat(spmc): enable handling FFA_VERSION ABI
Report the SPMC version to the caller, currently v1.1 and also store the requested version to allow the SPMC to use the corresponding FF-A version in future ABI calls.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I79aafd1e6694cbd4b231bbd0cac5834a71063d79
show more ...
|
| 7affa25c | 14-Feb-2022 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc/lsp): add logical partition framework
Introduce a framework to support running logical partitions alongside the SPMC in EL3 as per the v1.1 FF-A spec.
The DECLARE_LOGICAL_PARTITION macro
feat(spmc/lsp): add logical partition framework
Introduce a framework to support running logical partitions alongside the SPMC in EL3 as per the v1.1 FF-A spec.
The DECLARE_LOGICAL_PARTITION macro has been added to simplify the process to define a Logical Partition. The partitions themselves are statically allocated with the descriptors placed in RO memory.
It is assumed that the MAX_EL3_LP_DESCS_COUNT will be defined by the platform.
Change-Id: I1c2523e0ad2d9c5d36aeeef6b8bcb1e80db7c443 Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
show more ...
|
| 65b13bac | 22-Apr-2022 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge changes from topic "ffa_el3_spmc" into integration
* changes: feat(spmc): add support for direct req/resp feat(spmc): add support for handling FFA_ERROR ABI feat(spmc): add support for F
Merge changes from topic "ffa_el3_spmc" into integration
* changes: feat(spmc): add support for direct req/resp feat(spmc): add support for handling FFA_ERROR ABI feat(spmc): add support for FFA_MSG_WAIT feat(spmc): add function to determine the return path from the SPMC feat(spmd): enable handling of FF-A SMCs with the SPMC at EL3 feat(spmd): update SPMC init flow to use EL3 implementation feat(spmc): add FF-A secure partition manager core feat(spmc): prevent read only xlat tables with the EL3 SPMC feat(spmc): enable building of the SPMC at EL3 refactor(spm_mm): reorganize secure partition manager code
show more ...
|
| 6f867496 | 21-Apr-2022 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "feat(spm): add FFA_RX_ACQUIRE forwarding in SPMD" into integration |
| bb01a673 | 29-Nov-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmd): enable handling of FF-A SMCs with the SPMC at EL3
Any FF-A SMC that arrives from the normal world is handled by the SPMD before being forwarded to the SPMC. Similarly any SMC arriving fr
feat(spmd): enable handling of FF-A SMCs with the SPMC at EL3
Any FF-A SMC that arrives from the normal world is handled by the SPMD before being forwarded to the SPMC. Similarly any SMC arriving from the secure world will hit the SPMC first and be forwarded to the SPMD if required, otherwise the SPMC will respond directly.
This allows for the existing flow of handling FF-A ABI's when the SPMC resides at a lower EL to be preserved.
In order to facilitate this flow the spmd_smc_forward function has been split and control is either passed to the SPMC or it is forwarded as before. To allow this the flags and cookie parameters must now also be passed into this method as the SPMC must be able to provide these when calling back into the SPMD handler as appropriate.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I84fee8390023295b9689067e14cd25cba23ca39b
show more ...
|
| 6da76075 | 29-Nov-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmd): update SPMC init flow to use EL3 implementation
Allow the SPMD to initialise an SPMC implementation at EL3 directly rather than at a lower EL. This includes removing the requirement to p
feat(spmd): update SPMC init flow to use EL3 implementation
Allow the SPMD to initialise an SPMC implementation at EL3 directly rather than at a lower EL. This includes removing the requirement to parse an SPMC manifest to obtain information about the SPMC implementation, in this case since the SPMD and SPMC reside in the same EL we can hardcode the required information directly.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I66d1e1b3ec2d0abbfc28b011a32445ee890a331d
show more ...
|
| 5096aeb2 | 01-Dec-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): add FF-A secure partition manager core
This patch introduces the core support for enabling an SPMC in EL3 as per the FF-A spec.
The current implemented functionality is targeted to enab
feat(spmc): add FF-A secure partition manager core
This patch introduces the core support for enabling an SPMC in EL3 as per the FF-A spec.
The current implemented functionality is targeted to enable initialization of the SPMC itself and initial support for bringing up a single S-EL1 SP.
This includes initialization of the SPMC's internal state, parsing of an SP's manifest, preparing the cpu contexts and appropriate system registers for the Secure Partition.
The spmc_smc_handler is the main handler for all incoming SMCs to the SPMC, FF-A ABI handlers and functionality will be implemented in subsequent patches.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: Ib33c240b91e54cbd018a69fec880d02adfbe12b9
show more ...
|
| a0435105 | 22-Mar-2022 |
Soby Mathew <soby.mathew@arm.com> |
feat(rme): add dummy realm attestation key to RMMD
Add a dummy realm attestation key to RMMD, and return it on request. The realm attestation key is requested with an SMC with the following paramete
feat(rme): add dummy realm attestation key to RMMD
Add a dummy realm attestation key to RMMD, and return it on request. The realm attestation key is requested with an SMC with the following parameters: * Fid (0xC400001B2). * Attestation key buffer PA (the realm attestation key is copied at this address by the monitor). * Attestation key buffer length as input and size of realm attesation key as output. * Type of elliptic curve.
Signed-off-by: Tamas Ban <tamas.ban@arm.com> Signed-off-by: Subhasish Ghosh <subhasish.ghosh@arm.com> Signed-off-by: Soby Mathew <soby.mathew@arm.com> Change-Id: I12d8d98fd221f4638ef225c9383374ddf6e65eac
show more ...
|
| 0f9159b7 | 22-Mar-2022 |
Soby Mathew <soby.mathew@arm.com> |
feat(rme): add dummy platform token to RMMD
Add a dummy platform token to RMMD and return it on request. The platform token is requested with an SMC with the following parameters: * Fid (0xC4000
feat(rme): add dummy platform token to RMMD
Add a dummy platform token to RMMD and return it on request. The platform token is requested with an SMC with the following parameters: * Fid (0xC40001B3). * Platform token PA (the platform token is copied at this address by the monitor). The challenge object needs to be passed by the caller in this buffer. * Platform token len. * Challenge object len.
When calling the SMC, the platform token buffer received by EL3 contains the challenge object. It is not used on the FVP and is only printed to the log.
Signed-off-by: Mate Toth-Pal <mate.toth-pal@arm.com> Signed-off-by: Subhasish Ghosh <subhasish.ghosh@arm.com> Change-Id: I8b2f1d54426c04e76d7a3baa6b0fbc40b0116348
show more ...
|
| 319fb084 | 22-Mar-2022 |
Soby Mathew <soby.mathew@arm.com> |
refactor(rme): reorg existing RMMD EL3 service FIDs
This patch reworks the GTSI service implementation in RMMD such that it is made internal to RMMD. This rework also lays the ground work for additi
refactor(rme): reorg existing RMMD EL3 service FIDs
This patch reworks the GTSI service implementation in RMMD such that it is made internal to RMMD. This rework also lays the ground work for additional RMMD services which can be invoked from RMM.
The rework renames some of the FID macros to make it more suited for adding more RMMD services. All the RMM-EL31 service SMCs are now routed via rmmd_rmm_el3_handler().
Signed-off-by: Soby Mathew <soby.mathew@arm.com> Change-Id: Ic52ca0f33b79a1fd1deefa8136f9586b088b2e07
show more ...
|
| d555233f | 18-Mar-2022 |
Federico Recanati <federico.recanati@arm.com> |
feat(spm): add FFA_RX_ACQUIRE forwarding in SPMD
Add FF-A v1.1 FFA_RX_ACQUIRE ABI forwarding to SPMD. RX acquire interface is used by Hypervisor to acquire ownership of a VM's RX buffer from SPMC wh
feat(spm): add FFA_RX_ACQUIRE forwarding in SPMD
Add FF-A v1.1 FFA_RX_ACQUIRE ABI forwarding to SPMD. RX acquire interface is used by Hypervisor to acquire ownership of a VM's RX buffer from SPMC when it needs to deliver a message to the VM.
Change-Id: I5f57240a9c9e94eb696a5a394ec0644170380026 Signed-off-by: Federico Recanati <federico.recanati@arm.com>
show more ...
|
| 9b2510b6 | 24-Feb-2022 |
Bipin Ravi <bipin.ravi@arm.com> |
fix(security): apply SMCCC_ARCH_WORKAROUND_3 to A73/A75/A72/A57
This patch applies CVE-2022-23960 workarounds for Cortex-A75, Cortex-A73, Cortex-A72 & Cortex-A57. This patch also implements the new
fix(security): apply SMCCC_ARCH_WORKAROUND_3 to A73/A75/A72/A57
This patch applies CVE-2022-23960 workarounds for Cortex-A75, Cortex-A73, Cortex-A72 & Cortex-A57. This patch also implements the new SMCCC_ARCH_WORKAROUND_3 and enables necessary discovery hooks for Coxtex-A72, Cortex-A57, Cortex-A73 and Cortex-A75 to enable discovery of this SMC via SMC_FEATURES. SMCCC_ARCH_WORKAROUND_3 is implemented for A57/A72 because some revisions are affected by both CVE-2022-23960 and CVE-2017-5715 and this allows callers to replace SMCCC_ARCH_WORKAROUND_1 calls with SMCCC_ARCH_WORKAROUND_3. For details of SMCCC_ARCH_WORKAROUND_3, please refer SMCCCv1.4 specification.
Signed-off-by: Bipin Ravi <bipin.ravi@arm.com> Signed-off-by: John Powell <john.powell@arm.com> Change-Id: Ifa6d9c7baa6764924638efe3c70468f98d60ed7c
show more ...
|
| c2eba07c | 03-Feb-2022 |
Federico Recanati <federico.recanati@arm.com> |
feat(spm): add FFA_MSG_SEND2 forwarding in SPMD
Add FF-A v1.1 indirect messaging ABI FFA_MSG_SEND2 to SPMD to allow message forwarding across normal/secure worlds.
Change-Id: I074fbd2e4d13893925f98
feat(spm): add FFA_MSG_SEND2 forwarding in SPMD
Add FF-A v1.1 indirect messaging ABI FFA_MSG_SEND2 to SPMD to allow message forwarding across normal/secure worlds.
Change-Id: I074fbd2e4d13893925f987cee271d49da3aaf64b Signed-off-by: Federico Recanati <federico.recanati@arm.com>
show more ...
|
| b9fd2d3c | 14-Nov-2021 |
Subhasish Ghosh <subhasish.ghosh@arm.com> |
fix(rmmd): align RMI and GTSI FIDs with SMCCC
This patch allocates the RMI and GTSI FIDs from the reserved range in Standard Secure Service call range of SMCCC.
Signed-off-by: Subhasish Ghosh <subh
fix(rmmd): align RMI and GTSI FIDs with SMCCC
This patch allocates the RMI and GTSI FIDs from the reserved range in Standard Secure Service call range of SMCCC.
Signed-off-by: Subhasish Ghosh <subhasish.ghosh@arm.com> Change-Id: I82e77778882194c2a78ca6340788d53bab7c3a50
show more ...
|
| a7065244 | 09-Nov-2021 |
Mark Dykes <mark.dykes@arm.com> |
Merge "Changing SMC code for transitioning Granule" into integration |
| 51d8d1e3 | 08-Nov-2021 |
Mark Dykes <mark.dykes@arm.com> |
Changing SMC code for transitioning Granule
Changing the SMC code value to conform with RMM for transitioning a realm granule back to non-secure, otherwise known as undelegate.
Signed-off-by: Mark
Changing SMC code for transitioning Granule
Changing the SMC code value to conform with RMM for transitioning a realm granule back to non-secure, otherwise known as undelegate.
Signed-off-by: Mark Dykes <mark.dykes@arm.com> Change-Id: Ia45ad6cab538de48c65b071b49e504be234afa2b
show more ...
|
| 8cb99c3f | 05-Aug-2020 |
Olivier Deprez <olivier.deprez@arm.com> |
feat(SPMD): route secure interrupts to SPMC
Define a handler in the SPMD to route secure interrupts occurring while the normal world runs. On a Group1 Secure interrupt (with a GICv3 or a Group0 inte
feat(SPMD): route secure interrupts to SPMC
Define a handler in the SPMD to route secure interrupts occurring while the normal world runs. On a Group1 Secure interrupt (with a GICv3 or a Group0 interrupt on GICv2), the normal world is pre-empted to EL3 and redirected to the SPMD/SPMC for further handling.
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com> Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com> Change-Id: I1350d74048c5549a2af8da0ba004c08512cc006a
show more ...
|
| 50a3056a | 09-Jul-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
feat(rme): add Test Realm Payload (TRP)
TRP is a small test payload that implements Realm Monitor Management (RMM) functionalities. RMM runs in the Realm world (R-EL2) and manages the execution of R
feat(rme): add Test Realm Payload (TRP)
TRP is a small test payload that implements Realm Monitor Management (RMM) functionalities. RMM runs in the Realm world (R-EL2) and manages the execution of Realm VMs and their interaction with the hypervisor in Normal world.
TRP is used to test the interface between RMM and Normal world software, known as Realm Management Interface (RMI). Current functions includes returning RMM version and transitioning granules from Non-secure to Realm world and vice versa.
More information about RMM can be found at: https://developer.arm.com/documentation/den0125/latest
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: Ic7b9a1e1f3142ef6458d40150d0b4ba6bd723ea2
show more ...
|
| 77c27753 | 09-Jul-2021 |
Zelalem Aweke <zelalem.aweke@arm.com> |
feat(rme): add RMM dispatcher (RMMD)
This patch introduces the RMM dispatcher into BL31. This will be the mechanism that will enable communication to take place between the Realm and non-secure worl
feat(rme): add RMM dispatcher (RMMD)
This patch introduces the RMM dispatcher into BL31. This will be the mechanism that will enable communication to take place between the Realm and non-secure world. Currently gives the capability for granules to be transitioned from non-secure type to realm and vice versa.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Signed-off-by: Subhasish Ghosh <subhasish.ghosh@arm.com> Change-Id: I1fdc99a4bdd42bc14911aa0c6954b131de309511
show more ...
|