Skip to content

v1.1.0

Compare
Choose a tag to compare
@hrw hrw released this 01 Dec 17:25
· 31 commits to devel since this release

Changes:

  • updated to ArmArm J.a version
  • added field names
  • order changed to same as in ArmArm to make it easier to follow

Output from "max" cpu:

ArmCpuInfo v1.0.0

ID_AA64MMFR0_EL1 = 0x0100032310201126
ID_AA64MMFR1_EL1 = 0x0010011010312122
ID_AA64MMFR2_EL1 = 0x1221011110011011
ID_AA64PFR0_EL1  = 0x1201001121112222
ID_AA64PFR1_EL1  = 0x0000000001000121
ID_AA64ISAR0_EL1 = 0x1221111110212120
ID_AA64ISAR1_EL1 = 0x0011111101211052
ID_AA64ISAR2_EL1 = 0x0000000000110000
ID_AA64DFR0_EL1  = 0x1000000010305609
ID_AA64SMFR0_EL1 = 0x80F100FD00000000
ID_AA64ZFR0_EL1  = 0x0110110100110021

Reg   | Name        |  Bits | Value | Feature
------|-------------|-------|-------|----------------------------------------------
MMFR0 | ECV         | 63:60 |  0000 | FEAT_ECV not implemented.
MMFR0 | FGT         | 59:56 |  0001 | FEAT_FGT implemented.
MMFR0 | ExS         | 47:44 |  0000 | FEAT_ExS not implemented.
MMFR0 | TGran4      | 31:28 |  0001 |  4KB granule supported for 52-bit address.
MMFR0 | TGran4_2    | 43:40 |  0011 |  4KB granule supported at stage 2 for 52-bit address.
MMFR0 | Tgran16     | 23:20 |  0010 | 16KB granule supported for 52-bit address.
MMFR0 | TGran16_2   | 35:32 |  0011 | 16KB granule supported at stage 2 for 52-bit address.
MMFR0 | TGran64     | 27:24 |  0000 | 64KB granule supported.
MMFR0 | TGran64_2   | 39:36 |  0010 | 64KB granule supported at stage 2.
MMFR0 | SNSMem      | 15:12 |  0001 | Supports a distinction between Secure and Non-Secure Memory.
MMFR0 | BigEnd      | 11:8  |  0001 | Mixed-endian support.
MMFR0 | BigEndEL0   | 19:16 |  0000 | No mixed-endian support at EL0.
MMFR0 | ASIDBits    |  7:4  |  0010 | ASID: 16 Bits
MMFR0 | PARange     |  3:0  |  0110 | 52 Bits (4PB) of physical address range supported.
      |             |       |       | FEAT_LPA implemented.
------|-------------|-------|-------|----------------------------------------------
MMFR1 | CMOW        | 59:56 |  0000 | FEAT_CMOW not implemented.
MMFR1 | TIDCP1      | 55:52 |  0001 | FEAT_TIDCP1 implemented
MMFR1 | nTLBPA      | 51:48 |  0000 | FEAT_nTLBPA not implemented.
MMFR1 | AFP         | 47:44 |  0000 | FEAT_AFP not implemented.
MMFR1 | HCX         | 43:40 |  0001 | FEAT_HCX implemented.
MMFR1 | ETS         | 39:36 |  0001 | FEAT_ETS implemented.
MMFR1 | TWED        | 35:32 |  0000 | FEAT_TWED not implemented.
MMFR1 | XNX         | 31:28 |  0001 | FEAT_XNX implemented.
MMFR1 | SpecSEI     | 27:24 |  0000 | The PE never generates an SError interrupt due to
      |             |       |       | an External abort on a speculative read.
MMFR1 | PAN         | 23:20 |  0011 | FEAT_PAN3 implemented.
MMFR1 | LO          | 19:16 |  0001 | FEAT_LOR implemented.
MMFR1 | HPDS        | 15:12 |  0010 | FEAT_HPDS2 implemented.
MMFR1 | VH          | 11:8  |  0001 | FEAT_VHE implemented.
MMFR1 | VMIDBits    |  7:4  |  0010 | FEAT_VMID16 implemented.
MMFR1 | HAFDBS      |  3:0  |  0010 | FEAT_HAFDBS implemented with dirty status support.
------|-------------|-------|-------|----------------------------------------------
MMFR2 | E0PD        | 63:60 |  0001 | FEAT_E0PD implemented.
MMFR2 | EVT         | 59:56 |  0010 | FEAT_EVT: HCR_EL2.{TTLBOS, TTLSBIS, TOCU, TICAB, TID4} traps.
MMFR2 | BBM         | 55:52 |  0010 | FEAT_BBM: Level 2 support for changing block size.
MMFR2 | TTL         | 51:48 |  0001 | FEAT_TTL implemented.
MMFR2 | FWB         | 43:40 |  0001 | FEAT_S2FWB implemented.
MMFR2 | IDS         | 39:36 |  0001 | FEAT_IDST implemented.
MMFR2 | AT          | 35:32 |  0001 | FEAT_LSE2 implemented.
MMFR2 | ST          | 31:28 |  0001 | FEAT_TTST implemented.
MMFR2 | NV          | 27:24 |  0000 | FEAT_NV not implemented.
MMFR2 | CCIDX       | 23:20 |  0000 | FEAT_CCIDX not implemented.
MMFR2 | VARange     | 19:16 |  0001 | FEAT_LVA implemented.
MMFR2 | IESB        | 15:12 |  0001 | FEAT_IESB implemented.
MMFR2 | LSM         | 11:8  |  0000 | FEAT_LSMAOC not implemented.
MMFR2 | UAO         |  7:4  |  0001 | FEAT_UAO implemented.
MMFR2 | CnP         |  3:0  |  0001 | FEAT_TTCNP implemented.
------|-------------|-------|-------|----------------------------------------------
PFR0  | CSV3        | 63:60 |  0001 | FEAT_CSV3 implemented.
PFR0  | CSV2        | 59:56 |  0010 | FEAT_CSV2_2 implemented.
PFR0  | RME         | 55:52 |  0000 | FEAT_RME not implemented
PFR0  | DIT         | 51:48 |  0001 | FEAT_DIT implemented.
PFR0  | AMU         | 47:44 |  0000 | FEAT_AMU not implemented.
PFR0  | MPAM        | 43:40 |  0000 | FEAT_MPAM not implemented.
PFR0  | SEL2        | 39:36 |  0001 | Secure EL2 implemented.
PFR0  | SVE         | 35:32 |  0001 | FEAT_SVE implemented.
PFR0  | RAS         | 31:28 |  0010 | FEAT_RASv1p1 implemented. FEAT_DoubleFault implemented.
PFR0  | GIC         | 27:24 |  0001 | System registers to versions 3.0/4.0 of GIC CPU implemented.
PFR0  | AdvSIMD     | 23:20 |  0001 | Advanced SIMD with half precision support (FEAT_FP16).
PFR0  | FP          | 19:16 |  0001 | Floating-point with half-precision support (FEAT_FP16).
PFR0  | EL3         | 15:12 |  0010 | EL3 in AArch64 and AArch32
PFR0  | EL2         | 11:8  |  0010 | EL2 in AArch64 and AArch32
PFR0  | EL1         |  7:4  |  0010 | EL1 in AArch64 and AArch32
PFR0  | EL0         |  3:0  |  0010 | EL0 in AArch64 and AArch32
------|-------------|-------|-------|----------------------------------------------
PFR1  | NMI         | 39:36 |  0000 | FEAT_NMI not implemented.
PFR1  | RNDR_trap   | 31:28 |  0000 | FEAT_RNG_TRAP not implemented.
PFR1  | SME         | 27:24 |  0001 | FEAT_SME implemented.
PFR1  | MTE         | 11:8  |  0001 | FEAT_MTE implemented.
PFR1  | SSBS        |  7:4  |  0010 | FEAT_SSBS2 implemented.
PFR1  | BT          |  3:0  |  0001 | FEAT_BTI implemented.
------|-------------|-------|-------|----------------------------------------------
ISAR0 | RNDR        | 63:60 |  0001 | FEAT_RNG implemented.
ISAR0 | TLB         | 59:56 |  0010 | FEAT_TLBIRANGE implemented.
ISAR0 | TS          | 55:52 |  0010 | FEAT_FlagM2 implemented.
ISAR0 | FHM         | 51:48 |  0001 | FEAT_FHM implemented.
ISAR0 | DP          | 47:44 |  0001 | FEAT_DotProd implemented.
ISAR0 | SM4         | 43:40 |  0001 | FEAT_SM4 implemented.
ISAR0 | SM3         | 39:36 |  0001 | FEAT_SM3 implemented.
ISAR0 | SHA3        | 35:32 |  0001 | FEAT_SHA3 implemented.
ISAR0 | RDM         | 31:28 |  0001 | FEAT_RDM implemented.
ISAR0 | TME         | 27:24 |  0000 | TME instructions not implemented.
ISAR0 | Atomic      | 23:20 |  0010 | FEAT_LSE implemented.
ISAR0 | CRC32       | 19:16 |  0001 | CRC32 instructions implemented.
ISAR0 | SHA2        | 15:12 |  0010 | FEAT_SHA512 implemented.
ISAR0 | SHA1        | 11:8  |  0001 | FEAT_SHA1 implemented.
ISAR0 | AES         |  7:4  |  0010 | FEAT_AES and FEAT_PMULL implemented.
------|-------------|-------|-------|----------------------------------------------
ISAR1 | LS64        | 63:60 |  0000 | FEAT_LS64 not implemented.
ISAR1 | XS          | 59:56 |  0000 | FEAT_XS not implemented.
ISAR1 | I8MM        | 55:52 |  0001 | FEAT_I8MM implemented.
ISAR1 | DGH         | 51:48 |  0001 | FEAT_DGH implemented.
ISAR1 | BF16        | 47:44 |  0001 | FEAT_BF16 implemented.
ISAR1 | SPECRES     | 43:40 |  0001 | FEAT_SPECRES implemented.
ISAR1 | SB          | 39:36 |  0001 | FEAT_SB implemented.
ISAR1 | FRINTTS     | 35:32 |  0001 | FEAT_FRINTTS implemented.
ISAR1 | GPI         | 31:28 |  0000 | FEAT_PACIMP not implemented.
ISAR1 | GPA         | 27:24 |  0001 | FEAT_PACQARMA5 implemented.
ISAR1 | LRCPC       | 23:20 |  0010 | FEAT_LRCPC2 implemented.
ISAR1 | FCMA        | 19:16 |  0001 | FEAT_FCMA implemented.
ISAR1 | JSCVT       | 15:12 |  0001 | FEAT_JSCVT implemented.
ISAR1 | API         | 11:8  |  0000 | Address Authentication (API) not implemented.
ISAR1 | APA         |  7:4  |  0101 | FEAT_FPACCOMBINE implemented.
      |             |       |       | FEAT_PACQARMA5 implemented.
ISAR1 | DPB         |  3:0  |  0010 | FEAT_DPB2 implemented.
------|-------------|-------|-------|----------------------------------------------
ISAR2 | PAC_frac    | 27:24 |  0000 | FEAT_CONSTPACFIELD not implemented.
ISAR2 | BC          | 23:20 |  0001 | FEAT_HBC implemented.
ISAR2 | MOPS        | 19:16 |  0001 | FEAT_MOPS implemented.
ISAR2 | APA3        | 15:12 |  0000 | Address Authentication (APA3) not implemented.
ISAR2 | GPA3        | 11:8  |  0000 | FEAT_PACQARMA3 not implemented.
ISAR2 | RPRES       |  7:4  |  0000 | FEAT_RPRES not implemented.
ISAR2 | WFxT        |  3:0  |  0000 | FEAT_WFxT not implemented.
------|-------------|-------|-------|----------------------------------------------
DFR0  | HPMN0       | 63:60 |  0001 | FEAT_HPMN0 implemented.
DFR0  | BRBE        | 55:52 |  0000 | FEAT_BRBE not implemented.
DFR0  | MTPMU       | 51:48 |  0000 | FEAT_MTPMU not implemented.
DFR0  | TraceBuffer | 47:44 |  0000 | FEAT_TRBE not implemented.
DFR0  | TraceFilt   | 43:40 |  0000 | FEAT_TRF not implemented.
DFR0  | DoubleLock  | 39:36 |  0000 | FEAT_DoubleLock implemented.
DFR0  | PMSVer      | 35:32 |  0000 | FEAT_SPE not implemented.
DFR0  | CTX_CMPs    | 31:28 |  0001 | Number of breakpoints that are context-aware, minus 1.
DFR0  | WRPs        | 23:20 |  0011 | Number of watchpoints, minus 1.
DFR0  | BRPs        | 15:12 |  0101 | Number of breakpoints, minus 1.
DFR0  | PMUVer      | 11:8  |  0110 | FEAT_PMUv3p5 implemented.
DFR0  | TraceVer    |  7:4  |  0000 | Trace unit System registers not implemented.
DFR0  | DebugVer    |  3:0  |  1001 | FEAT_Debugv8p4 implemented.
------|-------------|-------|-------|----------------------------------------------
SMFR0 | FA64        |    63 |  0001 | FEAT_SME_FA64 implemented.
SMFR0 | SMEver      | 59:56 |  0000 | Mandatory SME instructions are implemented.
SMFR0 | I16I64      | 55:52 |  1111 | FEAT_SME_I16I64 implemented
SMFR0 | F64F64      |    48 |  0001 | FEAT_SME_F64F64 implemented.
SMFR0 | I16I32      | 47:44 |  0000 | SME2 I16I32 not implemented.
SMFR0 | I8I32       | 39:36 |  1111 | SME I8I32 implemented.
SMFR0 | F16F32      |    35 |  0001 | SME F16F32 implemented.
SMFR0 | B16F32      |    34 |  0001 | SME B16F32 implemented.
SMFR0 | BI32I32     |    33 |  0000 | SME BI32I32 not implemented.
SMFR0 | F32F32      |    32 |  0001 | SME F32F32 implemented.
------|-------------|-------|-------|----------------------------------------------
ZFR0  | F64MM       | 59:56 |  0001 | FEAT_F64MM SVE implemented
ZFR0  | F32MM       | 55:52 |  0001 | FEAT_F32MM SVE implemented
ZFR0  | I8MM        | 47:44 |  0001 | FEAT_I8MM SVE implemented.
ZFR0  | SM4         | 43:40 |  0001 | FEAT_SVE_SM4 implemented.
ZFR0  | SHA3        | 35:32 |  0001 | FEAT_SVE_SHA3 implemented.
ZFR0  | BF16        | 23:20 |  0001 | FEAT_BF16 SVE implemented.
ZFR0  | BitPerm     | 19:16 |  0001 | FEAT_SVE_BitPerm implemented.
ZFR0  | AES         |  7:4  |  0010 | FEAT_SVE_AES and FEAT_SVE_PMULL128 implemented.
ZFR0  | SVEver      |  3:0  |  0001 | FEAT_SVE2 implemented.
------|-------------|-------|-------|----------------------------------------------