Update macro to check need for CVE-2017-5715 mitigation
authorAntonio Nino Diaz <antonio.ninodiaz@arm.com>
Tue, 12 Feb 2019 11:25:02 +0000 (11:25 +0000)
committerAntonio Nino Diaz <antonio.ninodiaz@arm.com>
Thu, 14 Feb 2019 14:43:43 +0000 (14:43 +0000)
commitff6f62e105c6553a7b64a8c3c2165b53f7250300
tree310b13dbb9c089f8b294489dceea508973e62d11
parent3e310f30f29d37faee6625cff54c31bdae1cbb72
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>
include/lib/cpus/aarch64/cpu_macros.S