| ff6f62e1 | 12-Feb-2019 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Update macro to check need for CVE-2017-5715 mitigation
Armv8.5 introduces the field CSV2 to register ID_AA64PFR0_EL1. It can have the following 3 values:
- 0: Branch targets trained in one hardwar
Update macro to check need for CVE-2017-5715 mitigation
Armv8.5 introduces the field CSV2 to register ID_AA64PFR0_EL1. It can have the following 3 values:
- 0: Branch targets trained in one hardware described context may affect speculative execution in a different hardware described context. In some CPUs it may be needed to apply mitigations.
- 1: Branch targets trained in one hardware described context can only affect speculative execution in a different hardware described context in a hard-to-determine way. No mitigation required.
- 2: Same as 1, but the device is also aware of SCXTNUM_ELx register contexts. The TF doesn't use the registers, so there is no difference with 1.
The field CSV2 was originally introduced in the TRM of the Cortex-A76 before the release of the Armv8.5 architecture. That TRM only mentions the meaning of values 0 and 1. Because of this, the code only checks if the field has value 1 to know whether to enable or disable the mitigations.
This patch makes it aware of value 2 as well. Both values 1 and 2 disable the mitigation, and 0 enables it.
Change-Id: I5af33de25a0197c98173f52c6c8c77b51a51429f Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| 6cf8d65f | 28-Aug-2018 |
Varun Wadekar <vwadekar@nvidia.com> |
cpus: denver: Implement static workaround for CVE-2018-3639
For Denver CPUs, this approach enables the mitigation during EL3 initialization, following every PE reset. No mechanism is provided to dis
cpus: denver: Implement static workaround for CVE-2018-3639
For Denver CPUs, this approach enables the mitigation during EL3 initialization, following every PE reset. No mechanism is provided to disable the mitigation at runtime.
This approach permanently mitigates the EL3 software stack only. Other software components are responsible to enable it for their exception levels.
TF-A implements this approach for the Denver CPUs with DENVER_MIDR_PN3 and earlier:
* By setting bit 11 (Disable speculative store buffering) of `ACTLR_EL3`
* By setting bit 9 (Disable speculative memory disambiguation) of `ACTLR_EL3`
TF-A implements this approach for the Denver CPUs with DENVER_MIDR_PN4 and later:
* By setting bit 18 (Disable speculative store buffering) of `ACTLR_EL3`
* By setting bit 17 (Disable speculative memory disambiguation) of `ACTLR_EL3`
Change-Id: If1de96605ce3f7b0aff5fab2c828e5aecb687555 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| 9fdad699 | 04-May-2018 |
Roberto Vargas <roberto.vargas@arm.com> |
Remove integrity check in declare_cpu_ops_base
This check was added to ensure the correct behaviour of fill_constants macro. This macro has been verified and it is known his correct behaviour. The c
Remove integrity check in declare_cpu_ops_base
This check was added to ensure the correct behaviour of fill_constants macro. This macro has been verified and it is known his correct behaviour. The check generates an error when the clang assembler is used, so it is better to remove the check.
Change-Id: I3447ff9e9e5ee5cf0502f65e53c3d105d9396b8b Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
show more ...
|
| d6b79809 | 16-May-2018 |
Dimitris Papastamos <dimitris.papastamos@arm.com> |
Implement dynamic mitigation for CVE-2018-3639 on Cortex-A76
The Cortex-A76 implements SMCCC_ARCH_WORKAROUND_2 as defined in "Firmware interfaces for mitigating cache speculation vulnerabilities Sys
Implement dynamic mitigation for CVE-2018-3639 on Cortex-A76
The Cortex-A76 implements SMCCC_ARCH_WORKAROUND_2 as defined in "Firmware interfaces for mitigating cache speculation vulnerabilities System Software on Arm Systems"[0].
Dynamic mitigation for CVE-2018-3639 is enabled/disabled by setting/clearning bit 16 (Disable load pass store) of `CPUACTLR2_EL1`.
NOTE: The generic code that implements dynamic mitigation does not currently implement the expected semantics when dispatching an SDEI event to a lower EL. This will be fixed in a separate patch.
[0] https://developer.arm.com/cache-speculation-vulnerability-firmware-specification
Change-Id: I8fb2862b9ab24d55a0e9693e48e8be4df32afb5a Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
show more ...
|