| 3954bc3c | 20-May-2022 |
Marc Bonnici <marc.bonnici@arm.com> |
fix(spmc): fix FF-A memory transaction validation
Fix an incorrect bound check for overlapping memory regions which can give false positives if the two regions are consecutive to each other.
Signed
fix(spmc): fix FF-A memory transaction validation
Fix an incorrect bound check for overlapping memory regions which can give false positives if the two regions are consecutive to each other.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I997dc4d1ef2014660cc964aff0a73e348c44eff0
show more ...
|
| a8be4cd0 | 21-Feb-2022 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(fvp): add plat hook for memory transactions
Add call to platform hooks upon successful transmission of a memory transaction request and as part of a memory reclaim request. This allows for plat
feat(fvp): add plat hook for memory transactions
Add call to platform hooks upon successful transmission of a memory transaction request and as part of a memory reclaim request. This allows for platform specific functionality to be performed accordingly.
Note the hooks must be placed in the initial share request and final reclaim to prevent order dependencies with operations that may take place in the normal world without visibility of the SPMC.
Add a dummy implementation to the FVP platform.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I0c7441a9fdf953c4db0651512e5e2cdbc6656c79
show more ...
|
| 0560b53e | 19-Apr-2022 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): enable handling of the NS bit
In FF-A v1.1 the NS bit is used by the SPMC to specify the security state of a memory region retrieved by a SP.
Enable the SPMC to set the bit for v1.1 cal
feat(spmc): enable handling of the NS bit
In FF-A v1.1 the NS bit is used by the SPMC to specify the security state of a memory region retrieved by a SP.
Enable the SPMC to set the bit for v1.1 callers or v1.0 callers that explicitly request the usage via FFA_FEATURES.
In this implementation the sender of the memory region must reside in the normal world and the SPMC does not support changing the security state of memory regions therefore always set the NS bit if required by the caller.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I215756b28e2382082933ba1dcc7584e7faf4b36b
show more ...
|
| 7e804f96 | 19-Apr-2022 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): add support for v1.1 FF-A memory data structures
Add support for the FF-A v1.1 data structures to the EL3 SPMC and enable the ability to convert between v1.0 and the v1.1 forwards compat
feat(spmc): add support for v1.1 FF-A memory data structures
Add support for the FF-A v1.1 data structures to the EL3 SPMC and enable the ability to convert between v1.0 and the v1.1 forwards compatible data structures.
The SPMC now uses the v1.1 data structures internally and will convert descriptors as required depending on the FF-A version supported by the calling partition.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: Ic14a95ea2e49c989aecf19b927a6b21ac50f863e
show more ...
|
| fef85e1e | 21-Jan-2022 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc/mem): prevent duplicated sharing of memory regions
Allow the SPMC to reject incoming memory sharing/lending requests that contain memory regions which overlap with an existing request.
To
feat(spmc/mem): prevent duplicated sharing of memory regions
Allow the SPMC to reject incoming memory sharing/lending requests that contain memory regions which overlap with an existing request.
To enable this functionality the SPMC compares each requested memory region to those in ongoing memory transactions and rejects the request if the ranges overlap.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I7588846f272ec2add2a341d9f24836c73a046e2f
show more ...
|
| 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 ...
|
| b1470ccc | 16-May-2022 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge changes from topic "ffa_el3_spmc" into integration
* changes: feat(spmd): allow forwarding of FFA_FRAG_RX/TX calls feat(spmc): add support for FFA_SPM_ID_GET feat(spmc): add support for
Merge changes from topic "ffa_el3_spmc" into integration
* changes: feat(spmd): allow forwarding of FFA_FRAG_RX/TX calls feat(spmc): add support for FFA_SPM_ID_GET feat(spmc): add support for forwarding a secure interrupt to the SP feat(spmc): add support for FF-A power mgmt. messages in the EL3 SPMC
show more ...
|
| c8113bf7 | 16-May-2022 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge changes from topic "ffa_el3_spmc" into integration
* changes: feat(spmc): enable the SPMC to pass the linear core ID in a register feat(spmc): add FFA_RX_RELEASE handler feat(spmc): add
Merge changes from topic "ffa_el3_spmc" into integration
* changes: feat(spmc): enable the SPMC to pass the linear core ID in a register feat(spmc): add FFA_RX_RELEASE handler feat(spmc): add FFA_RUN handler feat(spmc): support FFA_ID_GET ABI feat(spmc): add FFA_FEATURES handler feat(spmc): add FFA_PARTITION_INFO_GET handler feat(spmc): enable handling FF-A RX/TX Mapping ABIs docs(maintainers): introduce SPMC maintainer section
show more ...
|
| 46872e01 | 25-Nov-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): add support for FFA_SPM_ID_GET
Enable a Secure Partition to query the ID assigned to the SPMC. The SPMD will take care of any calls from the normal world therefore we should not need to
feat(spmc): add support for FFA_SPM_ID_GET
Enable a Secure Partition to query the ID assigned to the SPMC. The SPMD will take care of any calls from the normal world therefore we should not need to handle this case in the SPMC.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I97903e920e928df385addbb2d383f24e602bf2db
show more ...
|
| 729d7793 | 04-Oct-2021 |
Achin Gupta <achin.gupta@arm.com> |
feat(spmc): add support for forwarding a secure interrupt to the SP
This patch adds support for forwarding a secure interrupt that preempts the normal world to a SP for top-half interrupt handling.
feat(spmc): add support for forwarding a secure interrupt to the SP
This patch adds support for forwarding a secure interrupt that preempts the normal world to a SP for top-half interrupt handling.
Signed-off-by: Achin Gupta <achin.gupta@arm.com> Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: Iaa6e96f4cf8922ba5b6d128a19359df15e44158d
show more ...
|
| 0dc2b516 | 13-May-2022 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge changes from topic "ns/save_fpregs_context" into integration
* changes: feat(sgi): enable fpregs context save and restore feat(spm_mm): add support to save and restore fp regs |
| f0143004 | 15-Dec-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): enable the SPMC to pass the linear core ID in a register
Add TF-A implementation defined behaviour to provide the linear core ID in the x4 register when bringing up an SP.
Signed-off-by
feat(spmc): enable the SPMC to pass the linear core ID in a register
Add TF-A implementation defined behaviour to provide the linear core ID in the x4 register when bringing up an SP.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I6cb215841097b264d252ec0262b0b7272be99d41
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 ...
|
| f0c25a08 | 12-Apr-2022 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): add FFA_RX_RELEASE handler
Enable a partition to release its RX buffer and the SPMC to update the appropriate state tracking.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-I
feat(spmc): add FFA_RX_RELEASE handler
Enable a partition to release its RX buffer and the SPMC to update the appropriate state tracking.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I5fb6d92244b5ed5f032269b29b102aa874bf3ae3
show more ...
|
| aad20c85 | 31-Aug-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): add FFA_RUN handler
Enable the SPMC to handle the FFA_RUN ABI and update the state tracking accordingly.
Change-Id: I3e8a3fa3ec9b03830055d2fbd6124b8ff1ed4103 Signed-off-by: Marc Bonnici
feat(spmc): add FFA_RUN handler
Enable the SPMC to handle the FFA_RUN ABI and update the state tracking accordingly.
Change-Id: I3e8a3fa3ec9b03830055d2fbd6124b8ff1ed4103 Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
show more ...
|
| d5fe9235 | 24-Nov-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): support FFA_ID_GET ABI
Allow for a partition to retrieve its own partition ID.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I1a19ac30b86736d818673c239b2f8fd2d6128c06 |
| 55a29638 | 13-Dec-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): add FFA_FEATURES handler
Enable the spmc to report the features that it currently supports. Populated with the currently implemented functionality.
Signed-off-by: Marc Bonnici <marc.bon
feat(spmc): add FFA_FEATURES handler
Enable the spmc to report the features that it currently supports. Populated with the currently implemented functionality.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I00e51ded284efd87cd50a0e9416dbc33f22ced85
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 ...
|
| 1a752245 | 25-Aug-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): enable handling FF-A RX/TX Mapping ABIs
Enable handling of FFA_RXTX_MAP and FFA_RXTX_UNMAP ABIs and ensure these buffers are mapped as required to allow access by the SPMC.
Signed-off-b
feat(spmc): enable handling FF-A RX/TX Mapping ABIs
Enable handling of FFA_RXTX_MAP and FFA_RXTX_UNMAP ABIs and ensure these buffers are mapped as required to allow access by the SPMC.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: Ifc425f1ee16c90d1d95b6ae4ac9992d6f785227b
show more ...
|
| 15dd6f19 | 19-Apr-2022 |
Nishant Sharma <nishant.sharma@arm.com> |
feat(spm_mm): add support to save and restore fp regs
Add the support to save Nwd's floating point registers before switching to SEL0 and then restore it after coming out of it. Emit a warning messa
feat(spm_mm): add support to save and restore fp regs
Add the support to save Nwd's floating point registers before switching to SEL0 and then restore it after coming out of it. Emit a warning message if SPM_MM is built with CTX_INCLUDE_FPREGS == 0
There is no need to save FP registers of SEL0 because secure partitions run to completion.
This change is used to prevent context corruption if secure partition enabled and Nwd decide to use floating point registers.
Signed-off-by: Nishant Sharma <nishant.sharma@arm.com> Change-Id: I1eea16ea2311a4f00a806ea72c118752821b9abb
show more ...
|
| c2b14343 | 09-Dec-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): add helper to obtain a partitions FF-A version
Add a helper function to obtain the FF-A version of a calling partition. This is used to ensure that the SPMC maintains backwards compatibi
feat(spmc): add helper to obtain a partitions FF-A version
Add a helper function to obtain the FF-A version of a calling partition. This is used to ensure that the SPMC maintains backwards compatibility if the partition implements a lower minor version for the same major version than the SPMC.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I5b364a1e510a999bb0c4cacae28f23f8a42a1e3e
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 ...
|
| f16b6ee3 | 24-Nov-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): add helper function to obtain endpoint mailbox
Add a helper function to obtain the relevant mailbox buffers depending on which entity was last run. This will be used in subsequent functi
feat(spmc): add helper function to obtain endpoint mailbox
Add a helper function to obtain the relevant mailbox buffers depending on which entity was last run. This will be used in subsequent functionality to populate requested information in the callers RX buffer.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I85959ced4d1454be05a7b3fb6853ed3ab7f0cf3e
show more ...
|