mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-19 02:54:24 +00:00
doc: Update description for AT speculative workaround
Documented the CPU specific build macros created for AT speculative workaround. Updated the description of 'ERRATA_SPECULATIVE_AT' errata workaround option. Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com> Change-Id: Ie46a80d4e8183c1d5c8b153f08742a04d41a2af2
This commit is contained in:
parent
e1c4933372
commit
e008a29a18
3 changed files with 46 additions and 19 deletions
|
@ -127,6 +127,9 @@ For Cortex-A53, the following errata build flags are defined :
|
||||||
Earlier revisions of the CPU have other errata which require the same
|
Earlier revisions of the CPU have other errata which require the same
|
||||||
workaround in software, so they should be covered anyway.
|
workaround in software, so they should be covered anyway.
|
||||||
|
|
||||||
|
- ``ERRATA_A53_1530924``: This applies errata 1530924 workaround to all
|
||||||
|
revisions of Cortex-A53 CPU.
|
||||||
|
|
||||||
For Cortex-A55, the following errata build flags are defined :
|
For Cortex-A55, the following errata build flags are defined :
|
||||||
|
|
||||||
- ``ERRATA_A55_768277``: This applies errata 768277 workaround to Cortex-A55
|
- ``ERRATA_A55_768277``: This applies errata 768277 workaround to Cortex-A55
|
||||||
|
@ -147,6 +150,9 @@ For Cortex-A55, the following errata build flags are defined :
|
||||||
- ``ERRATA_A55_1221012``: This applies errata 1221012 workaround to Cortex-A55
|
- ``ERRATA_A55_1221012``: This applies errata 1221012 workaround to Cortex-A55
|
||||||
CPU. This needs to be enabled only for revision <= r1p0 of the CPU.
|
CPU. This needs to be enabled only for revision <= r1p0 of the CPU.
|
||||||
|
|
||||||
|
- ``ERRATA_A55_1530923``: This applies errata 1530923 workaround to all
|
||||||
|
revisions of Cortex-A55 CPU.
|
||||||
|
|
||||||
For Cortex-A57, the following errata build flags are defined :
|
For Cortex-A57, the following errata build flags are defined :
|
||||||
|
|
||||||
- ``ERRATA_A57_806969``: This applies errata 806969 workaround to Cortex-A57
|
- ``ERRATA_A57_806969``: This applies errata 806969 workaround to Cortex-A57
|
||||||
|
@ -182,12 +188,17 @@ For Cortex-A57, the following errata build flags are defined :
|
||||||
- ``ERRATA_A57_859972``: This applies errata 859972 workaround to Cortex-A57
|
- ``ERRATA_A57_859972``: This applies errata 859972 workaround to Cortex-A57
|
||||||
CPU. This needs to be enabled only for revision <= r1p3 of the CPU.
|
CPU. This needs to be enabled only for revision <= r1p3 of the CPU.
|
||||||
|
|
||||||
|
- ``ERRATA_A57_1319537``: This applies errata 1319537 workaround to all
|
||||||
|
revisions of Cortex-A57 CPU.
|
||||||
|
|
||||||
For Cortex-A72, the following errata build flags are defined :
|
For Cortex-A72, the following errata build flags are defined :
|
||||||
|
|
||||||
- ``ERRATA_A72_859971``: This applies errata 859971 workaround to Cortex-A72
|
- ``ERRATA_A72_859971``: This applies errata 859971 workaround to Cortex-A72
|
||||||
CPU. This needs to be enabled only for revision <= r0p3 of the CPU.
|
CPU. This needs to be enabled only for revision <= r0p3 of the CPU.
|
||||||
|
|
||||||
|
- ``ERRATA_A72_1319367``: This applies errata 1319367 workaround to all
|
||||||
|
revisions of Cortex-A72 CPU.
|
||||||
|
|
||||||
For Cortex-A73, the following errata build flags are defined :
|
For Cortex-A73, the following errata build flags are defined :
|
||||||
|
|
||||||
- ``ERRATA_A73_852427``: This applies errata 852427 workaround to Cortex-A73
|
- ``ERRATA_A73_852427``: This applies errata 852427 workaround to Cortex-A73
|
||||||
|
@ -233,6 +244,11 @@ For Cortex-A76, the following errata build flags are defined :
|
||||||
- ``ERRATA_A76_1800710``: This applies errata 1800710 workaround to Cortex-A76
|
- ``ERRATA_A76_1800710``: This applies errata 1800710 workaround to Cortex-A76
|
||||||
CPU. This needs to be enabled only for revision <= r4p0 of the CPU.
|
CPU. This needs to be enabled only for revision <= r4p0 of the CPU.
|
||||||
|
|
||||||
|
- ``ERRATA_A76_1165522``: This applies errata 1165522 workaround to all
|
||||||
|
revisions of Cortex-A76 CPU. This errata is fixed in r3p0 but due to
|
||||||
|
limitation of errata framework this errata is applied to all revisions
|
||||||
|
of Cortex-A76 CPU.
|
||||||
|
|
||||||
For Cortex-A77, the following errata build flags are defined :
|
For Cortex-A77, the following errata build flags are defined :
|
||||||
|
|
||||||
- ``ERRATA_A77_1800714``: This applies errata 1800714 workaround to Cortex-A77
|
- ``ERRATA_A77_1800714``: This applies errata 1800714 workaround to Cortex-A77
|
||||||
|
|
|
@ -694,28 +694,36 @@ Common build options
|
||||||
default value of this flag is ``no``. Note this option must be enabled only
|
default value of this flag is ``no``. Note this option must be enabled only
|
||||||
for ARM architecture greater than Armv8.5-A.
|
for ARM architecture greater than Armv8.5-A.
|
||||||
|
|
||||||
- ``ERRATA_SPECULATIVE_AT``: This flag enables/disables page table walk during
|
- ``ERRATA_SPECULATIVE_AT``: This flag determines whether to enable ``AT``
|
||||||
context restore as speculative AT instructions using an out-of-context
|
speculative errata workaround or not. It accepts 2 values: ``1`` and ``0``.
|
||||||
translation regime could cause subsequent requests to generate an incorrect
|
The default value of this flag is ``0``.
|
||||||
translation.
|
|
||||||
System registers are not updated during context save, hence this workaround
|
``AT`` speculative errata workaround disables stage1 page table walk for
|
||||||
need not be applied in the context save path.
|
lower ELs (EL1 and EL0) in EL3 so that ``AT`` speculative fetch at any point
|
||||||
|
produces either the correct result or failure without TLB allocation.
|
||||||
|
|
||||||
This boolean option enables errata for all below CPUs.
|
This boolean option enables errata for all below CPUs.
|
||||||
|
|
||||||
+---------+--------------+
|
+---------+--------------+-------------------------+
|
||||||
| Errata | CPU |
|
| Errata | CPU | Workaround Define |
|
||||||
+=========+==============+
|
+=========+==============+=========================+
|
||||||
| 1165522 | Cortex-A76 |
|
| 1165522 | Cortex-A76 | ``ERRATA_A76_1165522`` |
|
||||||
+---------+--------------+
|
+---------+--------------+-------------------------+
|
||||||
| 1319367 | Cortex-A72 |
|
| 1319367 | Cortex-A72 | ``ERRATA_A72_1319367`` |
|
||||||
+---------+--------------+
|
+---------+--------------+-------------------------+
|
||||||
| 1319537 | Cortex-A57 |
|
| 1319537 | Cortex-A57 | ``ERRATA_A57_1319537`` |
|
||||||
+---------+--------------+
|
+---------+--------------+-------------------------+
|
||||||
| 1530923 | Cortex-A55 |
|
| 1530923 | Cortex-A55 | ``ERRATA_A55_1530923`` |
|
||||||
+---------+--------------+
|
+---------+--------------+-------------------------+
|
||||||
| 1530924 | Cortex-A53 |
|
| 1530924 | Cortex-A53 | ``ERRATA_A53_1530924`` |
|
||||||
+---------+--------------+
|
+---------+--------------+-------------------------+
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
This option is enabled by build only if platform sets any of above defines
|
||||||
|
mentioned in ’Workaround Define' column in the table.
|
||||||
|
If this option is enabled for the EL3 software then EL2 software also must
|
||||||
|
implement this workaround due to the behaviour of the errata mentioned
|
||||||
|
in new SDEN document which will get published soon.
|
||||||
|
|
||||||
- ``RAS_TRAP_LOWER_EL_ERR_ACCESS``: This flag enables/disables the SCR_EL3.TERR
|
- ``RAS_TRAP_LOWER_EL_ERR_ACCESS``: This flag enables/disables the SCR_EL3.TERR
|
||||||
bit, to trap access to the RAS ERR and RAS ERX registers from lower ELs.
|
bit, to trap access to the RAS ERR and RAS ERX registers from lower ELs.
|
||||||
|
|
|
@ -18,6 +18,9 @@ You can find additional definitions in the `Arm Glossary`_.
|
||||||
API
|
API
|
||||||
Application Programming Interface
|
Application Programming Interface
|
||||||
|
|
||||||
|
AT
|
||||||
|
Address Translation
|
||||||
|
|
||||||
BTI
|
BTI
|
||||||
Branch Target Identification. An Armv8.5 extension providing additional
|
Branch Target Identification. An Armv8.5 extension providing additional
|
||||||
control flow integrity around indirect branches and their targets.
|
control flow integrity around indirect branches and their targets.
|
||||||
|
|
Loading…
Add table
Reference in a new issue