| d33ff5e0 | 07-Mar-2025 |
Andre Przywara <andre.przywara@arm.com> |
feat(smccc): add FEAT_TWED to ARCH_FEATURE_AVAILABILITY
FEAT_TWED (Delayed Trapping of WFE) is an ARMv8.6 feature that is advertised in the ID_AA64MMFR1_EL1 ID register and controlled by a bit in th
feat(smccc): add FEAT_TWED to ARCH_FEATURE_AVAILABILITY
FEAT_TWED (Delayed Trapping of WFE) is an ARMv8.6 feature that is advertised in the ID_AA64MMFR1_EL1 ID register and controlled by a bit in the SCR_EL3 register.
On cores implementing that feature we should announce it in the ARCH_FEATURE_AVAILABILITY SMCCC call, so that users of that interface can correctly assess the availability of the delayed trap.
Change-Id: I2b185f7eb9d58e45472983204db0305511372477 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| ba9e6a34 | 08-Apr-2025 |
Andre Przywara <andre.przywara@arm.com> |
feat(cpufeat): add support for PMUv3p9
Armv8.9 introduced the FEAT_PMUV3P9 extension, which allows finer grained control over EL0 usage of PMU registers. This is controlled by the new PMUACR_EL1 sys
feat(cpufeat): add support for PMUv3p9
Armv8.9 introduced the FEAT_PMUV3P9 extension, which allows finer grained control over EL0 usage of PMU registers. This is controlled by the new PMUACR_EL1 system register, access to which is guarded by the MDCR_EL3.EnPM2 bit. We should set this bit to avoid a trap into EL3 when lower ELs access this register.
Add the required bits and pieces to make this feature usable: - Add the CPUID and MDCR_EL3 bit definitions associated with FEAT_PMUV3P9. - Extend the existing PMU feature check to allow v9 now as well. This is fine since we don't context switch PMU registers at all, so we don't need to do much except to flip the MDCR bit: - Set the EnPM2 bit in pmuv3_enable, so the feature is usuable in non-secure world (and there only). - Handle the MDCR bit for the ARCH_FEATURE_AVAILABILITY feature.
Please note that MDCR_EL3.EnPM2 guards other system registers as well, for other PMU related new architecture features.
Change-Id: I288ca15f5c9efd336c64477d1c6fe9543613e238 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| 8723eaf2 | 08-Feb-2025 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
fix(spmd): check pwr mgmt status for SPMC framework response
The direct message response received by the SPMD upon a CPU_OFF power management operation must be a framework message. If message indica
fix(spmd): check pwr mgmt status for SPMC framework response
The direct message response received by the SPMD upon a CPU_OFF power management operation must be a framework message. If message indicates SPMC denied the CPU_OFF operation, SPMD shall panic.
However, if SPMC does not support receiving power management related framework messages from SPMD, it will return FFA_ERROR. In such case, SPMD takes an implementation defined choice to ignore the the FFA_ERROR and proceed with power management operation.
Change-Id: I18b9ee3fb8fd605bcd4aaa6802c969e9d36ccbe1 Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
show more ...
|
| 90552c61 | 30-Jan-2025 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
feat(rme): add SMMU and PCIe information to Boot manifest
- Define information structures for SMMU, root complex, root port and BDF mappings. - Add entries for SMMU and PCIe root complexes to Boot
feat(rme): add SMMU and PCIe information to Boot manifest
- Define information structures for SMMU, root complex, root port and BDF mappings. - Add entries for SMMU and PCIe root complexes to Boot manifest. - Update RMMD_MANIFEST_VERSION_MINOR from 4 to 5.
Change-Id: I0a76dc18edbaaff40116f376aeb56c750d57c7c1 Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
show more ...
|
| 48488245 | 20-Mar-2025 |
Soby Mathew <soby.mathew@arm.com> |
Merge changes from topic "mec" into integration
* changes: feat(qemu): add plat_rmmd_mecid_key_update() feat(rmmd): add RMM_MECID_KEY_UPDATE call |
| f801fdc2 | 22-Apr-2024 |
Tushar Khandelwal <tushar.khandelwal@arm.com> |
feat(rmmd): add RMM_MECID_KEY_UPDATE call
With this addition, TF-A now has an SMC call to handle the update of MEC keys associated to MECIDs.
The behavior of this newly added call is empty for now
feat(rmmd): add RMM_MECID_KEY_UPDATE call
With this addition, TF-A now has an SMC call to handle the update of MEC keys associated to MECIDs.
The behavior of this newly added call is empty for now until an implementation for the MPE (Memory Protection Engine) driver is available. Only parameter sanitization has been implemented.
Signed-off-by: Tushar Khandelwal <tushar.khandelwal@arm.com> Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> Signed-off-by: Juan Pablo Conde <juanpablo.conde@arm.com> Change-Id: I2a969310b47e8c6da1817a79be0cd56158c6efc3
show more ...
|
| 8762735b | 12-Mar-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge changes from topic "mb/drtm" into integration
* changes: feat(drtm): validate launch features in DRTM parameters feat(lib): add EXTRACT_FIELD macro for field extraction |
| c5ea3fac | 12-Mar-2025 |
Soby Mathew <soby.mathew@arm.com> |
Merge "feat(rmmd): add FEAT_MEC support" into integration |
| 7e84f3cf | 15-Mar-2024 |
Tushar Khandelwal <tushar.khandelwal@.com> |
feat(rmmd): add FEAT_MEC support
This patch provides architectural support for further use of Memory Encryption Contexts (MEC) by declaring the necessary registers, bits, masks, helpers and values a
feat(rmmd): add FEAT_MEC support
This patch provides architectural support for further use of Memory Encryption Contexts (MEC) by declaring the necessary registers, bits, masks, helpers and values and modifying the necessary registers to enable FEAT_MEC.
Signed-off-by: Tushar Khandelwal <tushar.khandelwal@arm.com> Signed-off-by: Juan Pablo Conde <juanpablo.conde@arm.com> Change-Id: I670dbfcef46e131dcbf3a0b927467ebf6f438fa4
show more ...
|
| 8666bcfa | 06-Mar-2025 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(drtm): validate launch features in DRTM parameters
Perform sanity checks on the launch features received via DRTM parameters. Return INVALID_PARAMETERS if they are incorrect.
Change-Id: I7e806
feat(drtm): validate launch features in DRTM parameters
Perform sanity checks on the launch features received via DRTM parameters. Return INVALID_PARAMETERS if they are incorrect.
Change-Id: I7e8068154028d1c8f6b6b45449616bb5711ea76e Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| 2bec665f | 27-Feb-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(smccc): register PMUv3p5 and PMUv3p7 bits with the FEATURE_AVAILABILITY call
These bits were missed with the original implementation. They are set if supported, so we need to ignore them.
Chang
fix(smccc): register PMUv3p5 and PMUv3p7 bits with the FEATURE_AVAILABILITY call
These bits were missed with the original implementation. They are set if supported, so we need to ignore them.
Change-Id: I3a94017bacdc54bfc14f0add972240148da3b41d Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| d153bcf4 | 06-Mar-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(spm_mm): move mm_communication header define to general header" into integration |
| 94127ae2 | 25-Feb-2025 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(drtm): retrieve DLME image authentication features
Retrieve DLME image authentication features and report them back to the DCE preamble. Currently, this value is always set to 0, as no platform
feat(drtm): retrieve DLME image authentication features
Retrieve DLME image authentication features and report them back to the DCE preamble. Currently, this value is always set to 0, as no platform supports DLME authentication.
Additionally, the default schema is always used instead of the DLME PCR schema since DLME authentication is not currently supported.
This change primarily upgrades the DRTM parameters version to V2, aligning with DRTM spec v1.1 [1].
[1]: https://developer.arm.com/documentation/den0113/c/?lang=en
Change-Id: Ie2ceb0d2ff49465643597e8725710a93d89e74a2 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| b51436c2 | 20-Nov-2024 |
Levi Yun <yeoreum.yun@arm.com> |
feat(spm_mm): move mm_communication header define to general header
To support TPM start method with SIP, SIP handler dispatch request to secure partition via MM_COMMUNICATE abi. That means spm_mm s
feat(spm_mm): move mm_communication header define to general header
To support TPM start method with SIP, SIP handler dispatch request to secure partition via MM_COMMUNICATE abi. That means spm_mm sip handler should generate mm communication header.
Move mm_communication header's definition to spm_mm_svc header.
Change-Id: I40567c16e67b068ee83a39eff050d6578aecfb2c Signed-off-by: Levi Yun <yeoreum.yun@arm.com>
show more ...
|
| bef44f60 | 14-Oct-2024 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
feat(rmm): add PCIe IO info to Boot manifest
- Add PCIe and SMMUv3 related information to DTS for configurations with ENABLE_RME=1. - Add entries for PCIe IO memory regions to Boot manifest - Upda
feat(rmm): add PCIe IO info to Boot manifest
- Add PCIe and SMMUv3 related information to DTS for configurations with ENABLE_RME=1. - Add entries for PCIe IO memory regions to Boot manifest - Update RMMD_MANIFEST_VERSION_MINOR from 3 to 4. - Read PCIe related information from DTB and write it to Boot manifest. - Rename structures that used to describe DRAM layout and now describe both DRAM and PCIe IO memory regions: - ns_dram_bank -> memory_bank - ns_dram_info -> memory_info.
Change-Id: Ib75d1af86076f724f5c330074e231f1c2ba8e21d Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
show more ...
|
| 8ae6b1ad | 28-Jan-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(security): apply SMCCC_ARCH_WORKAROUND_4 to affected cpus
This patch implements SMCCC_ARCH_WORKAROUND_4 and allows discovery through SMCCC_ARCH_FEATURES. This mechanism is enabled if CVE_2024_78
fix(security): apply SMCCC_ARCH_WORKAROUND_4 to affected cpus
This patch implements SMCCC_ARCH_WORKAROUND_4 and allows discovery through SMCCC_ARCH_FEATURES. This mechanism is enabled if CVE_2024_7881 [1] is enabled by the platform. If CVE_2024_7881 mitigation is implemented, the discovery call returns 0, if not -1 (SMC_ARCH_CALL_NOT_SUPPORTED).
For more information about SMCCC_ARCH_WORKAROUND_4 [2], please refer to the SMCCC Specification reference provided below.
[1]: https://developer.arm.com/Arm%20Security%20Center/Arm%20CPU%20Vulnerability%20CVE-2024-7881 [2]: https://developer.arm.com/documentation/den0028/latest
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I1b1ffaa1f806f07472fd79d5525f81764d99bc79
show more ...
|
| 4c23d627 | 28-Jan-2025 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "fix(spmd): fix build failure due to redefinition" into integration |
| ee990d52 | 13-Jan-2025 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge changes from topic "hob_creation_in_tf_a" into integration
* changes: feat(el3_spmc): ffa error handling in direct msg feat(ff-a): support FFA_MSG_SEND_DIRECT_REQ2/RESP2 feat(ff-a): add
Merge changes from topic "hob_creation_in_tf_a" into integration
* changes: feat(el3_spmc): ffa error handling in direct msg feat(ff-a): support FFA_MSG_SEND_DIRECT_REQ2/RESP2 feat(ff-a): add FFA_MEM_PERM_GET/SET_SMC64 feat(el3-spmc): support Hob list to boot S-EL0 SP feat(synquacer): add support Hob creation fix(fvp): exclude extend memory map TZC regions feat(fvp): add StandaloneMm manifest in fvp feat(spm): use xfer list with Hob list in SPM_MM
show more ...
|
| 09a580b7 | 07-Aug-2024 |
Levi Yun <yeoreum.yun@arm.com> |
feat(ff-a): support FFA_MSG_SEND_DIRECT_REQ2/RESP2
StandaloneMm which is S-EL0 partition uses FFA_MSG_SEND_DIRECT_REQ2/RESP2 to handle multiple services. For this, add support for FFA_MSG_SEND_DIREC
feat(ff-a): support FFA_MSG_SEND_DIRECT_REQ2/RESP2
StandaloneMm which is S-EL0 partition uses FFA_MSG_SEND_DIRECT_REQ2/RESP2 to handle multiple services. For this, add support for FFA_MSG_SEND_DIRECT_REQ2/RESP2 in el3_spmc restrictly up to use 8 registers. although FF-A v1.2 defines FFA_MSG_SEND_DIRECT_REQ2/RESP2 with ability to pass/return up to 18 registers.
Signed-off-by: Levi Yun <yeoreum.yun@arm.com> Change-Id: I8ab1c332d269d9d131330bb2debd10d75bdba1ee
show more ...
|
| 8db17052 | 25-Oct-2024 |
Boyan Karatotev <boyan.karatotev@arm.com> |
feat(smccc): implement SMCCC_ARCH_FEATURE_AVAILABILITY
SMCCC_ARCH_FEATURE_AVAILABILITY [1] is a call to query firmware about the features it is aware of and enables. This is useful when a feature is
feat(smccc): implement SMCCC_ARCH_FEATURE_AVAILABILITY
SMCCC_ARCH_FEATURE_AVAILABILITY [1] is a call to query firmware about the features it is aware of and enables. This is useful when a feature is not enabled at EL3, eg due to an older FW image, but it is present in hardware. In those cases, the EL1 ID registers do not reflect the usable feature set and this call should provide the necessary information to remedy that.
The call itself is very lightweight - effectively a sanitised read of the relevant system register. Bits that are not relevant to feature enablement are masked out and active low bits are converted to active high.
The implementation is also very simple. All relevant, irrelevant, and inverted bits combined into bitmasks at build time. Then at runtime the masks are unconditionally applied to produce the right result. This assumes that context managers will make sure that disabled features do not have their bits set and the registers are context switched if any fields in them make enablement ambiguous.
Features that are not yet supported in TF-A have not been added. On debug builds, calling this function will fail an assert if any bits that are not expected are set. In combination with CI this should allow for this feature to to stay up to date as new architectural features are added.
If a call for MPAM3_EL3 is made when MPAM is not enabled, the call will return INVALID_PARAM, while if it is FEAT_STATE_CHECK, it will return zero. This should be fairly consistent with feature detection.
The bitmask is meant to be interpreted as the logical AND of the relevant ID registers. It would be permissible for this to return 1 while the ID returns 0. Despite this, this implementation takes steps not to. In the general case, the two should match exactly.
Finally, it is not entirely clear whether this call replies to SMC32 requests. However, it will not, as the return values are all 64 bits.
[1]: https://developer.arm.com/documentation/den0028/galp1/?lang=en
Co-developed-by: Charlie Bareham <charlie.bareham@arm.com> Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: I1a74e7d0b3459b1396961b8fa27f84e3f0ad6a6f
show more ...
|
| ddf72e6a | 07-Aug-2024 |
Levi Yun <yeoreum.yun@arm.com> |
feat(ff-a): add FFA_MEM_PERM_GET/SET_SMC64
FF-A memory management protocol v1.1 specifies not only FFA_MEM_PERM_GET_SMC32/FFA_MEM_PERM_SET_SMC32 but also FFA_MEM_PERM_GET_SMC64/FFA_MEM_PERM_SET_SMC6
feat(ff-a): add FFA_MEM_PERM_GET/SET_SMC64
FF-A memory management protocol v1.1 specifies not only FFA_MEM_PERM_GET_SMC32/FFA_MEM_PERM_SET_SMC32 but also FFA_MEM_PERM_GET_SMC64/FFA_MEM_PERM_SET_SMC64.
Change former FFA_MEM_PERM_GET/SET definitions to separate operations and add handler for FFA_MEM_PERM_GET/SET_SMC64 in spmc_smc_handler().
Signed-off-by: Levi Yun <yeoreum.yun@arm.com> Change-Id: I175063654703db26c1ffc3cfd7fa428b94d2bfc9
show more ...
|
| a869e2dc | 24-Oct-2024 |
Sudeep Holla <sudeep.holla@arm.com> |
fix(spmd): fix build failure due to redefinition
Clang build breaks with the following warning:
| In file included from services/std_svc/spmd/spmd_logical_sp.c:15: | include/services/el3_spmd
fix(spmd): fix build failure due to redefinition
Clang build breaks with the following warning:
| In file included from services/std_svc/spmd/spmd_logical_sp.c:15: | include/services/el3_spmd_logical_sp.h:15:38: error: redefinition of | typedef 'spmd_spm_core_context_t' is a C11 feature [-Werror,-Wtypedef-redefinition]. | 15 | typedef struct spmd_spm_core_context spmd_spm_core_context_t; | | ^ | services/std_svc/spmd/spmd_private.h:58:3: note: previous definition is here | 58 | } spmd_spm_core_context_t; | | ^ | CC services/std_svc/std_svc_setup.c | 1 error generated. | In file included from services/std_svc/spmd/spmd_main.c:35: | services/std_svc/spmd/spmd_private.h:58:3: error: redefinition of typedef | 'spmd_spm_core_context_t' is a C11 feature [-Werror,-Wtypedef-redefinition] | 58 | } spmd_spm_core_context_t; | | ^ | include/services/el3_spmd_logical_sp.h:15:38: note: previous definition is here | 15 | typedef struct spmd_spm_core_context spmd_spm_core_context_t; | | ^ | 1 error generated.
A structure 'spmd_spm_core_context_t' defined in 'spmd_private.h' is also declared in 'el3_spmd_logical_sp.h' as it is used in a couple of function declarations. These function declarations can be moved to spmd_private.h as they are not needed elsewhere.
Change-Id: Ic6b9a277abe00cb7129f671570abf7255be62dfa Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
show more ...
|
| aa99881d | 15-Nov-2024 |
AlexeiFedorov <Alexei.Fedorov@arm.com> |
fix(rme): add console name to checksum calculation
The name field of console_info structure was missed in checksum calculation. This is corrected by adding a new helper checksum_calc() which compute
fix(rme): add console name to checksum calculation
The name field of console_info structure was missed in checksum calculation. This is corrected by adding a new helper checksum_calc() which computes the checksum in a field agnostic manner.
Change-Id: I5c39ee43f1fa20872c37846e3feeabd0525a47ae Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
show more ...
|
| 6a88ec8b | 04-Jun-2024 |
Raghu Krishnamurthy <raghupathyk@nvidia.com> |
feat(rmmd): el3 token sign during attestation
Add required SMCs by RMM to push attestation signing requests to EL3 and get responses. EL3 may then choose to push these requests to a HES as suitable
feat(rmmd): el3 token sign during attestation
Add required SMCs by RMM to push attestation signing requests to EL3 and get responses. EL3 may then choose to push these requests to a HES as suitable for a platform. This patch also supports the new RMM_EL3_FEATURES interface, that RMM can use to query for support for HES based signing. The new interface exposes a feature register with different bits defining different discoverable features. This new interface is available starting the 0.4 version of the RMM-EL3 interface, causing the version to bump up. This patch also adds a platform port for FVP that implements the platform hooks required to enable the new SMCs, but it does not push to a HES and instead copies a zeroed buffer in EL3.
Change-Id: I69c110252835122a9533e71bdcce10b5f2a686b2 Signed-off-by: Raghu Krishnamurthy <raghupathyk@nvidia.com>
show more ...
|
| e9529e46 | 24-Sep-2024 |
Raghu Krishnamurthy <raghupathyk@nvidia.com> |
refactor: digest sizes
The digest size in bytes for sha1/256/384/512 were defined in multiple places. Refactor the macros into a common header file.
Change-Id: I84ef3561486ff70345ae8c871d5d6e156457
refactor: digest sizes
The digest size in bytes for sha1/256/384/512 were defined in multiple places. Refactor the macros into a common header file.
Change-Id: I84ef3561486ff70345ae8c871d5d6e1564574ec2 Signed-off-by: Raghu Krishnamurthy <raghupathyk@nvidia.com>
show more ...
|