166847e06SMark Rutland# SPDX-License-Identifier: GPL-2.0-only 266847e06SMark Rutland# 366847e06SMark Rutland# System register metadata 466847e06SMark Rutland 566847e06SMark Rutland# Each System register is described by a Sysreg block: 666847e06SMark Rutland 766847e06SMark Rutland# Sysreg <name> <op0> <op1> <crn> <crm> <op2> 866847e06SMark Rutland# <field> 966847e06SMark Rutland# ... 1066847e06SMark Rutland# EndSysreg 1166847e06SMark Rutland 1266847e06SMark Rutland# Within a Sysreg block, each field can be described as one of: 1366847e06SMark Rutland 1466847e06SMark Rutland# Res0 <msb>[:<lsb>] 1566847e06SMark Rutland 1666847e06SMark Rutland# Res1 <msb>[:<lsb>] 1766847e06SMark Rutland 1866847e06SMark Rutland# Field <msb>[:<lsb>] <name> 1966847e06SMark Rutland 2066847e06SMark Rutland# Enum <msb>[:<lsb>] <name> 2166847e06SMark Rutland# <enumval> <enumname> 2266847e06SMark Rutland# ... 2366847e06SMark Rutland# EndEnum 2466847e06SMark Rutland 2566847e06SMark Rutland# Alternatively if multiple registers share the same layout then 2666847e06SMark Rutland# a SysregFields block can be used to describe the shared layout 2766847e06SMark Rutland 2866847e06SMark Rutland# SysregFields <fieldsname> 2966847e06SMark Rutland# <field> 3066847e06SMark Rutland# ... 3166847e06SMark Rutland# EndSysregFields 3266847e06SMark Rutland 3366847e06SMark Rutland# and referenced from within the Sysreg: 3466847e06SMark Rutland 3566847e06SMark Rutland# Sysreg <name> <op0> <op1> <crn> <crm> <op2> 3666847e06SMark Rutland# Fields <fieldsname> 3766847e06SMark Rutland# EndSysreg 3866847e06SMark Rutland 3966847e06SMark Rutland# For ID registers we adopt a few conventions for translating the 4066847e06SMark Rutland# language in the ARM into defines: 4166847e06SMark Rutland# 4266847e06SMark Rutland# NI - Not implemented 4366847e06SMark Rutland# IMP - Implemented 4466847e06SMark Rutland# 4566847e06SMark Rutland# In general it is recommended that new enumeration items be named for the 4666847e06SMark Rutland# feature that introduces them (eg, FEAT_LS64_ACCDATA introduces enumeration 4766847e06SMark Rutland# item ACCDATA) though it may be more taseful to do something else. 4866847e06SMark Rutland 49e33bb646SMark BrownSysreg ID_AA64ISAR0_EL1 3 0 0 6 0 50e33bb646SMark BrownEnum 63:60 RNDR 51e33bb646SMark Brown 0b0000 NI 52e33bb646SMark Brown 0b0001 IMP 53e33bb646SMark BrownEndEnum 54e33bb646SMark BrownEnum 59:56 TLB 55e33bb646SMark Brown 0b0000 NI 56e33bb646SMark Brown 0b0001 OS 57e33bb646SMark Brown 0b0010 RANGE 58e33bb646SMark BrownEndEnum 59e33bb646SMark BrownEnum 55:52 TS 60e33bb646SMark Brown 0b0000 NI 61e33bb646SMark Brown 0b0001 FLAGM 62e33bb646SMark Brown 0b0010 FLAGM2 63e33bb646SMark BrownEndEnum 64e33bb646SMark BrownEnum 51:48 FHM 65e33bb646SMark Brown 0b0000 NI 66e33bb646SMark Brown 0b0001 IMP 67e33bb646SMark BrownEndEnum 68e33bb646SMark BrownEnum 47:44 DP 69e33bb646SMark Brown 0b0000 NI 70e33bb646SMark Brown 0b0001 IMP 71e33bb646SMark BrownEndEnum 72e33bb646SMark BrownEnum 43:40 SM4 73e33bb646SMark Brown 0b0000 NI 74e33bb646SMark Brown 0b0001 IMP 75e33bb646SMark BrownEndEnum 76e33bb646SMark BrownEnum 39:36 SM3 77e33bb646SMark Brown 0b0000 NI 78e33bb646SMark Brown 0b0001 IMP 79e33bb646SMark BrownEndEnum 80e33bb646SMark BrownEnum 35:32 SHA3 81e33bb646SMark Brown 0b0000 NI 82e33bb646SMark Brown 0b0001 IMP 83e33bb646SMark BrownEndEnum 84e33bb646SMark BrownEnum 31:28 RDM 85e33bb646SMark Brown 0b0000 NI 86e33bb646SMark Brown 0b0001 IMP 87e33bb646SMark BrownEndEnum 88e33bb646SMark BrownEnum 27:24 TME 89e33bb646SMark Brown 0b0000 NI 90e33bb646SMark Brown 0b0001 IMP 91e33bb646SMark BrownEndEnum 92e33bb646SMark BrownEnum 23:20 ATOMIC 93e33bb646SMark Brown 0b0000 NI 94e33bb646SMark Brown 0b0010 IMP 95e33bb646SMark BrownEndEnum 96e33bb646SMark BrownEnum 19:16 CRC32 97e33bb646SMark Brown 0b0000 NI 98e33bb646SMark Brown 0b0001 IMP 99e33bb646SMark BrownEndEnum 100e33bb646SMark BrownEnum 15:12 SHA2 101e33bb646SMark Brown 0b0000 NI 102e33bb646SMark Brown 0b0001 SHA256 103e33bb646SMark Brown 0b0010 SHA512 104e33bb646SMark BrownEndEnum 105e33bb646SMark BrownEnum 11:8 SHA1 106e33bb646SMark Brown 0b0000 NI 107e33bb646SMark Brown 0b0001 IMP 108e33bb646SMark BrownEndEnum 109e33bb646SMark BrownEnum 7:4 AES 110e33bb646SMark Brown 0b0000 NI 111e33bb646SMark Brown 0b0001 AES 112e33bb646SMark Brown 0b0010 PMULL 113e33bb646SMark BrownEndEnum 114e33bb646SMark BrownRes0 3:0 115e33bb646SMark BrownEndSysreg 116*41fde735SMark Brown 117*41fde735SMark BrownSysregFields TTBRx_EL1 118*41fde735SMark BrownField 63:48 ASID 119*41fde735SMark BrownField 47:1 BADDR 120*41fde735SMark BrownField 0 CnP 121*41fde735SMark BrownEndSysregFields 122*41fde735SMark Brown 123*41fde735SMark BrownSysreg TTBR0_EL1 3 0 2 0 0 124*41fde735SMark BrownFields TTBRx_EL1 125*41fde735SMark BrownEndSysreg 126*41fde735SMark Brown 127*41fde735SMark BrownSysreg TTBR1_EL1 3 0 2 0 1 128*41fde735SMark BrownFields TTBRx_EL1 129*41fde735SMark BrownEndSysreg 130