xref: /linux/arch/arm64/tools/sysreg (revision 7a41a97b65ea7c4e0458b11e7a2c71c6dd3be0c4)
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
11641fde735SMark Brown
117*7a41a97bSMark BrownSysreg	SCTLR_EL1	3	0	1	0	0
118*7a41a97bSMark BrownField	63	TIDCP
119*7a41a97bSMark BrownField	62	SPINMASK
120*7a41a97bSMark BrownField	61	NMI
121*7a41a97bSMark BrownField	60	EnTP2
122*7a41a97bSMark BrownRes0	59:58
123*7a41a97bSMark BrownField	57	EPAN
124*7a41a97bSMark BrownField	56	EnALS
125*7a41a97bSMark BrownField	55	EnAS0
126*7a41a97bSMark BrownField	54	EnASR
127*7a41a97bSMark BrownField	53	TME
128*7a41a97bSMark BrownField	52	TME0
129*7a41a97bSMark BrownField	51	TMT
130*7a41a97bSMark BrownField	50	TMT0
131*7a41a97bSMark BrownField	49:46	TWEDEL
132*7a41a97bSMark BrownField	45	TWEDEn
133*7a41a97bSMark BrownField	44	DSSBS
134*7a41a97bSMark BrownField	43	ATA
135*7a41a97bSMark BrownField	42	ATA0
136*7a41a97bSMark BrownEnum	41:40	TCF
137*7a41a97bSMark Brown	0b00	NONE
138*7a41a97bSMark Brown	0b01	SYNC
139*7a41a97bSMark Brown	0b10	ASYNC
140*7a41a97bSMark Brown	0b11	ASYMM
141*7a41a97bSMark BrownEndEnum
142*7a41a97bSMark BrownEnum	39:38	TCF0
143*7a41a97bSMark Brown	0b00	NONE
144*7a41a97bSMark Brown	0b01	SYNC
145*7a41a97bSMark Brown	0b10	ASYNC
146*7a41a97bSMark Brown	0b11	ASYMM
147*7a41a97bSMark BrownEndEnum
148*7a41a97bSMark BrownField	37	ITFSB
149*7a41a97bSMark BrownField	36	BT1
150*7a41a97bSMark BrownField	35	BT0
151*7a41a97bSMark BrownRes0	34
152*7a41a97bSMark BrownField	33	MSCEn
153*7a41a97bSMark BrownField	32	CMOW
154*7a41a97bSMark BrownField	31	EnIA
155*7a41a97bSMark BrownField	30	EnIB
156*7a41a97bSMark BrownField	29	LSMAOE
157*7a41a97bSMark BrownField	28	nTLSMD
158*7a41a97bSMark BrownField	27	EnDA
159*7a41a97bSMark BrownField	26	UCI
160*7a41a97bSMark BrownField	25	EE
161*7a41a97bSMark BrownField	24	E0E
162*7a41a97bSMark BrownField	23	SPAN
163*7a41a97bSMark BrownField	22	EIS
164*7a41a97bSMark BrownField	21	IESB
165*7a41a97bSMark BrownField	20	TSCXT
166*7a41a97bSMark BrownField	19	WXN
167*7a41a97bSMark BrownField	18	nTWE
168*7a41a97bSMark BrownRes0	17
169*7a41a97bSMark BrownField	16	nTWI
170*7a41a97bSMark BrownField	15	UCT
171*7a41a97bSMark BrownField	14	DZE
172*7a41a97bSMark BrownField	13	EnDB
173*7a41a97bSMark BrownField	12	I
174*7a41a97bSMark BrownField	11	EOS
175*7a41a97bSMark BrownField	10	EnRCTX
176*7a41a97bSMark BrownField	9	UMA
177*7a41a97bSMark BrownField	8	SED
178*7a41a97bSMark BrownField	7	ITD
179*7a41a97bSMark BrownField	6	nAA
180*7a41a97bSMark BrownField	5	CP15BEN
181*7a41a97bSMark BrownField	4	SA0
182*7a41a97bSMark BrownField	3	SA
183*7a41a97bSMark BrownField	2	C
184*7a41a97bSMark BrownField	1	A
185*7a41a97bSMark BrownField	0	M
186*7a41a97bSMark BrownEndSysreg
187*7a41a97bSMark Brown
18841fde735SMark BrownSysregFields TTBRx_EL1
18941fde735SMark BrownField	63:48	ASID
19041fde735SMark BrownField	47:1	BADDR
19141fde735SMark BrownField	0	CnP
19241fde735SMark BrownEndSysregFields
19341fde735SMark Brown
19441fde735SMark BrownSysreg	TTBR0_EL1	3	0	2	0	0
19541fde735SMark BrownFields	TTBRx_EL1
19641fde735SMark BrownEndSysreg
19741fde735SMark Brown
19841fde735SMark BrownSysreg	TTBR1_EL1	3	0	2	0	1
19941fde735SMark BrownFields	TTBRx_EL1
20041fde735SMark BrownEndSysreg
201