| a97bfa5f | 14-Dec-2022 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
feat(rme): set DRAM information in Boot Manifest platform data
This patch adds support for setting configuration of DRAM banks for FVP model in RMM-EL3 Boot Manifest structure. Structure 'rmm_manife
feat(rme): set DRAM information in Boot Manifest platform data
This patch adds support for setting configuration of DRAM banks for FVP model in RMM-EL3 Boot Manifest structure. Structure 'rmm_manifest' is extended with 'plat_dram' structure which contains information about platform's DRAM layout: - number of DRAM banks; - pointer to 'dram_bank[]' array; - check sum: two's complement 64-bit value of the sum of data in 'plat_dram' and 'dram_bank[] array. Each 'dram_bank' structure holds information about DRAM bank base address and its size. This values must be aligned to 4KB page size. The patch increases Boot Manifest minor version to 2 and removes 'typedef rmm_manifest_t' as per "3.4.15.1. Avoid anonymous typedefs of structs/enums in headers" of https://trustedfirmware-a.readthedocs.io/en/latest/process/coding-style.html
Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com> Change-Id: I5176caa5780e27d1e0daeb5dea3e40cf6ad5fd12
show more ...
|
| a0f256b0 | 08-Dec-2022 |
Alexei Fedorov <Alexei.Fedorov@arm.com> |
Merge "fix(rmmd): add missing padding to RMM Boot Manifest and initialize it" into integration |
| dc0ca64e | 01-Dec-2022 |
Javier Almansa Sobrino <javier.almansasobrino@arm.com> |
fix(rmmd): add missing padding to RMM Boot Manifest and initialize it
This patch also: * Enforces the check of RES0 fields on EL3-RMM boot interface and manifest * Fixes a couple of
fix(rmmd): add missing padding to RMM Boot Manifest and initialize it
This patch also: * Enforces the check of RES0 fields on EL3-RMM boot interface and manifest * Fixes a couple of nits on the EL3-RMM Boot Interface documentation.
Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com> Change-Id: Idb9e38f9fcda2ba0655646a1e2c4fdbabd5cdc40
show more ...
|
| b96253db | 24-Nov-2022 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
fix(trp): preserve RMI SMC X4 when not used as return
This patch adds X2-X6 and 'smc_ret' parameters to trp_rmi_handler(). The last 'smc_ret' parameter passed in X7 contains address of 'trp_smc_resu
fix(trp): preserve RMI SMC X4 when not used as return
This patch adds X2-X6 and 'smc_ret' parameters to trp_rmi_handler(). The last 'smc_ret' parameter passed in X7 contains address of 'trp_smc_result' structure on stack to return result of RMI SMC call.
This allows to preserve X4 if not used as a return argument as per SMCCCv1.2. The patch also removes use of trp_args_t in RMI handling.
Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com> Change-Id: I9e3387a7380b37863eeccc53d13e92e0ac5cffbd
show more ...
|
| 0b22e591 | 11-Oct-2022 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
refactor(trng): cleanup the existing TRNG support
This patch adds the following changes to complete the existing TRNG implementation:
1. Adds a feature specific scope for buildlog generation. 2. Up
refactor(trng): cleanup the existing TRNG support
This patch adds the following changes to complete the existing TRNG implementation:
1. Adds a feature specific scope for buildlog generation. 2. Updates the docs on the build flag "TRNG_SUPPORT" and its values. 3. Makefile update and improves the existing comments at few sections for better understanding of the underlying logic.
Change-Id: I3f72f0ccd5c94005a2df87158cf23199d2160d37 Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| e9467afb | 16-Jun-2022 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(drtm): retrieve DRTM features
Retrieved below DRTM features via DRTM_FEATURES SMC call - 1. TPM features 2. Minimum memory requirement 3. Boot PE ID 4. DMA protection
Change-Id: Ia6dc497259541
feat(drtm): retrieve DRTM features
Retrieved below DRTM features via DRTM_FEATURES SMC call - 1. TPM features 2. Minimum memory requirement 3. Boot PE ID 4. DMA protection
Change-Id: Ia6dc497259541ce30a6550afa35d95d9a9a366af Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com> Signed-off-by: Lucian Paul-Trifu <lucian.paultrifu@gmail.com>
show more ...
|
| 2a1cdee4 | 11-Mar-2022 |
johpow01 <john.powell@arm.com> |
feat(drtm): add platform functions for DRTM
Added platform hooks to retrieve DRTM features and address map. Additionally, implemented these hooks for the FVP platform.
Signed-off-by: John Powell <j
feat(drtm): add platform functions for DRTM
Added platform hooks to retrieve DRTM features and address map. Additionally, implemented these hooks for the FVP platform.
Signed-off-by: John Powell <john.powell@arm.com> Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com> Change-Id: I5621cc9807ffff8139ae8876250147f7b2c76759
show more ...
|
| e6381f9c | 12-May-2022 |
John Powell <john.powell@arm.com> |
feat(sdei): add a function to return total number of events registered
This patch adds a public API to return the total number of registered events. The purpose of this is primarily for DRTM to ensu
feat(sdei): add a function to return total number of events registered
This patch adds a public API to return the total number of registered events. The purpose of this is primarily for DRTM to ensure that no SDEI event can interfere with a dynamic launch.
Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I1d1cba2da7d5566cc340620ee1ce7d7844740b86
show more ...
|
| e62748e3 | 23-Feb-2022 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
feat(drtm): add standard DRTM service
Added a dummy DRTM setup function and also, introduced DRTM SMCs handling as per DRTM spec [1]. Few basic SMCs are handled in this change such as ARM_DRTM_SVC_V
feat(drtm): add standard DRTM service
Added a dummy DRTM setup function and also, introduced DRTM SMCs handling as per DRTM spec [1]. Few basic SMCs are handled in this change such as ARM_DRTM_SVC_VERSION and ARM_DRTM_SVC_FEATURES that returns DRTM version and functions ids supported respectively, and others are dummy for now.
[1]: https://developer.arm.com/documentation/den0113/latest
Signed-off-by: Manish V Badarkhe <manish.badarkhe@arm.com> Signed-off-by: Lucian Paul-Trifu <lucian.paultrifu@gmail.com> Change-Id: I8c7afe920c78e064cbab2298f59e6837c70ba8ff
show more ...
|
| e50fedbc | 04-Jul-2022 |
Javier Almansa Sobrino <javier.almansasobrino@arm.com> |
fix(doc): document missing RMM-EL3 runtime services
This patch adds documentation for the missing RMM-EL3 runtime services:
* RMM_RMI_REQ_COMPLETE * RMM_GTSI_DELEGATE * RMM_GTSI_UNDELEGATE
This pa
fix(doc): document missing RMM-EL3 runtime services
This patch adds documentation for the missing RMM-EL3 runtime services:
* RMM_RMI_REQ_COMPLETE * RMM_GTSI_DELEGATE * RMM_GTSI_UNDELEGATE
This patch also fixes a couple of minor bugs on return codes for delegate/undelegate internal APIs.
Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com> Change-Id: Ic721005e7851e838eebaee7865ba78fadc3309e4
show more ...
|
| 1d0ca40e | 25-Apr-2022 |
Javier Almansa Sobrino <javier.almansasobrino@arm.com> |
feat(rmmd): add support to create a boot manifest
This patch also adds an initial RMM Boot Manifest (v0.1) for fvp platform.
Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com> Ch
feat(rmmd): add support to create a boot manifest
This patch also adds an initial RMM Boot Manifest (v0.1) for fvp platform.
Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com> Change-Id: I1374f8f9cb207028f1820953cd2a5cf6d6c3b948
show more ...
|
| dc65ae46 | 13-Apr-2022 |
Javier Almansa Sobrino <javier.almansasobrino@arm.com> |
fix(rme): use RMM shared buffer for attest SMCs
Use the RMM shared buffer to attestation token and signing key SMCs.
Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com> Change-Id:
fix(rme): use RMM shared buffer for attest SMCs
Use the RMM shared buffer to attestation token and signing key SMCs.
Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com> Change-Id: I313838b26d3d9334fb0fe8cd4b229a326440d2f4
show more ...
|
| 8c980a4a | 24-Nov-2021 |
Javier Almansa Sobrino <javier.almansasobrino@arm.com> |
feat(rmmd): add support for RMM Boot interface
This patch adds the infrastructure needed to pass boot arguments from EL3 to RMM and allocates a shared buffer between both worlds that can be used, am
feat(rmmd): add support for RMM Boot interface
This patch adds the infrastructure needed to pass boot arguments from EL3 to RMM and allocates a shared buffer between both worlds that can be used, among others, to pass a boot manifest to RMM. The buffer is composed a single memory page be used by a later EL3 <-> RMM interface by all CPUs.
The RMM boot manifest is not implemented by this patch.
In addition to that, this patch also enables support for RMM when RESET_TO_BL31 is enabled.
Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com> Change-Id: I855cd4758ee3843eadd9fb482d70a6d18954d82a
show more ...
|
| fb00dc4a | 12-May-2022 |
Subhasish Ghosh <subhasish.ghosh@arm.com> |
fix(rme/fid): refactor RME fid macros
Refactored RME FID macros to simplify usage.
Signed-off-by: Subhasish Ghosh <subhasish.ghosh@arm.com> Change-Id: I68f51f43d6c100d90069577412c2e495fe7b7e40 |
| 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 ...
|
| 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 ...
|