Commit e008a29a authored by Manish V Badarkhe's avatar Manish V Badarkhe
Browse files

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: default avatarManish V Badarkhe <Manish.Badarkhe@arm.com>
Change-Id: Ie46a80d4e8183c1d5c8b153f08742a04d41a2af2
parent e1c49333
...@@ -127,6 +127,9 @@ For Cortex-A53, the following errata build flags are defined : ...@@ -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 : ...@@ -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 : ...@@ -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 : ...@@ -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 ...@@ -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`_. ...@@ -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.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment