| #
4bb0cdc1 |
| 25-May-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes I31ec0001,Ib06cd024,I7c11f15d,Ie0d5d4c8,I285f3b59, ... into integration
* changes: fix(el3-spmc): correctly account for emad_offset refactor(el3-spmc): avoid unnecessarily revalida
Merge changes I31ec0001,Ib06cd024,I7c11f15d,Ie0d5d4c8,I285f3b59, ... into integration
* changes: fix(el3-spmc): correctly account for emad_offset refactor(el3-spmc): avoid unnecessarily revalidating offset fix(el3-spmc): only call spmc_shm_check_obj() on complete objects refactor(spmc): assert on out-of-bounds emad access refactor(el3-spmc): spmc_shmem_obj_get_emad() will never fail fix(el3-spmc): validate descriptor headers fix(el3-spmc): use version-dependent minimum descriptor length refactor(el3-spmc): check emad_count offset
show more ...
|
| #
56c052d3 |
| 31-Dec-2022 |
Demi Marie Obenour <demiobenour@gmail.com> |
fix(el3-spmc): validate descriptor headers
This avoids out-of-bounds reads later.
Change-Id: Iee4245a393f1fde63d8ebada25ea2568cf984871 Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
|
| #
eef12e26 |
| 31-Dec-2022 |
Demi Marie Obenour <demiobenour@gmail.com> |
refactor(el3-spmc): check emad_count offset
Subsequent code will assume that it version-independent, so check it with a CASSERT.
Change-Id: I233b51ef700103f1a0789d5608e3b02c96d0eeb7 Signed-off-by:
refactor(el3-spmc): check emad_count offset
Subsequent code will assume that it version-independent, so check it with a CASSERT.
Change-Id: I233b51ef700103f1a0789d5608e3b02c96d0eeb7 Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
show more ...
|
| #
70313d36 |
| 19-May-2022 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge changes from topic "ffa_el3_spmc" into integration
* changes: feat(fvp): add plat hook for memory transactions feat(spmc): enable handling of the NS bit feat(spmc): add support for v1.1
Merge changes from topic "ffa_el3_spmc" into integration
* changes: feat(fvp): add plat hook for memory transactions feat(spmc): enable handling of the NS bit feat(spmc): add support for v1.1 FF-A memory data structures feat(spmc/mem): prevent duplicated sharing of memory regions feat(spmc/mem): support multiple endpoints in memory transactions feat(spmc): add support for v1.1 FF-A boot protocol feat(plat/fvp): introduce accessor function to obtain datastore feat(spmc/mem): add FF-A memory management code
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 ...
|
| #
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 ...
|
| #
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 ...
|