Skip to content

Commit

Permalink
[FMV] Remove features predres and ls64. (#382)
Browse files Browse the repository at this point in the history
These cannot be detected by reading the ID_AA64ISAR1_EL1 register since
their corresponding bitfields are hidden according to the Linux Kernel
docs:


https://www.kernel.org/doc/html/latest/arch/arm64/cpu-feature-registers.html

Additionally the instructions that these features enable are unusable
from user space (Exception Level 0).

For SPECRES the Arm Architecture Reference Manual says:

In AArch64 state, EL0 access to the System instructions is controlled
by:
* When HCR_EL2.{E2H, TGE} is not {1, 1}, SCTLR_EL1.EnRCTX.
* When HCR_EL2.{E2H, TGE} == {1, 1}, SCTLR_EL2.EnRCTX.

For LS64 it says:

* SCTLR_EL1.EnALS, bit [56] : When FEAT_LS64 is implemented: When the
Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}, traps execution of
an LD64B or ST64B instruction at EL0 to EL1.

* SCTLR_EL1.EnAS0, bit [55] : When FEAT_LS64_ACCDATA is implemented:
When the Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}, traps
execution of an ST64BV0 instruction at EL0 to EL1.

* SCTLR_EL1.EnASR, bit [54] : When FEAT_LS64_V is implemented: When the
Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}, traps execution of
an ST64BV instruction at EL0 to EL1.
  • Loading branch information
labrinea authored Jan 27, 2025
1 parent 3a5295a commit 16545a6
Showing 1 changed file with 1 addition and 2 deletions.
3 changes: 1 addition & 2 deletions main/acle.md
Original file line number Diff line number Diff line change
Expand Up @@ -422,6 +422,7 @@ Armv8.4-A [[ARMARMv84]](#ARMARMv84). Support is added for the Dot Product intrin
* Removed Function Multi Versioning features sve-bf16, sve-ebf16, and sve-i8mm.
* Removed Function Multi Versioning features ebf16, memtag3, and rpres.
* Removed Function Multi Versioning feature dgh.
* Removed Function Multi Versioning features ls64 and predres.
* Document Function Multi Versioning feature dependencies.
* Clarify Function Multi Versioning feature dependency rule.
* Simplified Function Multi Versioning version selection rules.
Expand Down Expand Up @@ -2866,10 +2867,8 @@ The following table lists the architectures feature mapping for AArch64
| 430 | `FEAT_SME` | sme | ```ID_AA64PFR1_EL1.SME >= 0b0001``` |
| 440 | `FEAT_MTE`, `FEAT_MTE2` | memtag | ```ID_AA64PFR1_EL1.MTE >= 0b0010``` |
| 470 | `FEAT_SB` | sb | ```ID_AA64ISAR1_EL1.SB >= 0b0001``` |
| 480 | `FEAT_SPECRES` | predres | ```ID_AA64ISAR1_EL1.SPECRES >= 0b0001``` |
| 490 | `FEAT_SSBS`, `FEAT_SSBS2`| ssbs | ```ID_AA64PFR1_EL1.SSBS >= 0b0010``` |
| 510 | `FEAT_BTI` | bti | ```ID_AA64PFR1_EL1.BT >= 0b0001``` |
| 520 | `FEAT_LS64`, `FEAT_LS64_V`, <br> `FEAT_LS64_ACCDATA` | ls64 | ```ID_AA64ISAR1_EL1.LS64 >= 0b0011``` |
| 550 | `FEAT_WFxT` | wfxt | ```ID_AA64ISAR2_EL1.WFxT >= 0b0010``` |
| 560 | `FEAT_SME_F64F64` | sme-f64f64 | ```ID_AA64SMFR0_EL1.F64F64 == 0b1``` |
| 570 | `FEAT_SME_I16I64` | sme-i16i64 | ```ID_AA64SMFR0_EL1.I16I64 == 0b1111``` |
Expand Down

0 comments on commit 16545a6

Please sign in to comment.