xref: /linux/arch/arm64/tools/sysreg (revision dffdeade18432d257e0c1845dc4e694f414a9721)
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
1177a41a97bSMark BrownSysreg	SCTLR_EL1	3	0	1	0	0
1187a41a97bSMark BrownField	63	TIDCP
1197a41a97bSMark BrownField	62	SPINMASK
1207a41a97bSMark BrownField	61	NMI
1217a41a97bSMark BrownField	60	EnTP2
1227a41a97bSMark BrownRes0	59:58
1237a41a97bSMark BrownField	57	EPAN
1247a41a97bSMark BrownField	56	EnALS
1257a41a97bSMark BrownField	55	EnAS0
1267a41a97bSMark BrownField	54	EnASR
1277a41a97bSMark BrownField	53	TME
1287a41a97bSMark BrownField	52	TME0
1297a41a97bSMark BrownField	51	TMT
1307a41a97bSMark BrownField	50	TMT0
1317a41a97bSMark BrownField	49:46	TWEDEL
1327a41a97bSMark BrownField	45	TWEDEn
1337a41a97bSMark BrownField	44	DSSBS
1347a41a97bSMark BrownField	43	ATA
1357a41a97bSMark BrownField	42	ATA0
1367a41a97bSMark BrownEnum	41:40	TCF
1377a41a97bSMark Brown	0b00	NONE
1387a41a97bSMark Brown	0b01	SYNC
1397a41a97bSMark Brown	0b10	ASYNC
1407a41a97bSMark Brown	0b11	ASYMM
1417a41a97bSMark BrownEndEnum
1427a41a97bSMark BrownEnum	39:38	TCF0
1437a41a97bSMark Brown	0b00	NONE
1447a41a97bSMark Brown	0b01	SYNC
1457a41a97bSMark Brown	0b10	ASYNC
1467a41a97bSMark Brown	0b11	ASYMM
1477a41a97bSMark BrownEndEnum
1487a41a97bSMark BrownField	37	ITFSB
1497a41a97bSMark BrownField	36	BT1
1507a41a97bSMark BrownField	35	BT0
1517a41a97bSMark BrownRes0	34
1527a41a97bSMark BrownField	33	MSCEn
1537a41a97bSMark BrownField	32	CMOW
1547a41a97bSMark BrownField	31	EnIA
1557a41a97bSMark BrownField	30	EnIB
1567a41a97bSMark BrownField	29	LSMAOE
1577a41a97bSMark BrownField	28	nTLSMD
1587a41a97bSMark BrownField	27	EnDA
1597a41a97bSMark BrownField	26	UCI
1607a41a97bSMark BrownField	25	EE
1617a41a97bSMark BrownField	24	E0E
1627a41a97bSMark BrownField	23	SPAN
1637a41a97bSMark BrownField	22	EIS
1647a41a97bSMark BrownField	21	IESB
1657a41a97bSMark BrownField	20	TSCXT
1667a41a97bSMark BrownField	19	WXN
1677a41a97bSMark BrownField	18	nTWE
1687a41a97bSMark BrownRes0	17
1697a41a97bSMark BrownField	16	nTWI
1707a41a97bSMark BrownField	15	UCT
1717a41a97bSMark BrownField	14	DZE
1727a41a97bSMark BrownField	13	EnDB
1737a41a97bSMark BrownField	12	I
1747a41a97bSMark BrownField	11	EOS
1757a41a97bSMark BrownField	10	EnRCTX
1767a41a97bSMark BrownField	9	UMA
1777a41a97bSMark BrownField	8	SED
1787a41a97bSMark BrownField	7	ITD
1797a41a97bSMark BrownField	6	nAA
1807a41a97bSMark BrownField	5	CP15BEN
1817a41a97bSMark BrownField	4	SA0
1827a41a97bSMark BrownField	3	SA
1837a41a97bSMark BrownField	2	C
1847a41a97bSMark BrownField	1	A
1857a41a97bSMark BrownField	0	M
1867a41a97bSMark BrownEndSysreg
1877a41a97bSMark Brown
188b5c0f105SMark BrownSysregFields	CPACR_ELx
189b5c0f105SMark BrownRes0	63:29
190b5c0f105SMark BrownField	28	TTA
191b5c0f105SMark BrownRes0	27:26
192b5c0f105SMark BrownField	25:24	SMEN
193b5c0f105SMark BrownRes0	23:22
194b5c0f105SMark BrownField	21:20	FPEN
195b5c0f105SMark BrownRes0	19:18
196b5c0f105SMark BrownField	17:16	ZEN
197b5c0f105SMark BrownRes0	15:0
198b5c0f105SMark BrownEndSysregFields
199b5c0f105SMark Brown
200b5c0f105SMark BrownSysreg	CPACR_EL1	3	0	1	0	2
201b5c0f105SMark BrownFields	CPACR_ELx
202b5c0f105SMark BrownEndSysreg
203b5c0f105SMark Brown
2049321f049SMark BrownSysreg	SMPRI_EL1	3	0	1	2	4
2059321f049SMark BrownRes0	63:4
2069321f049SMark BrownField	3:0	PRIORITY
2079321f049SMark BrownEndSysreg
2089321f049SMark Brown
20989e9fb32SMark BrownSysregFields	ZCR_ELx
21089e9fb32SMark BrownRes0	63:9
21189e9fb32SMark BrownRaz	8:4
21289e9fb32SMark BrownField	3:0	LEN
21389e9fb32SMark BrownEndSysregFields
21489e9fb32SMark Brown
21589e9fb32SMark BrownSysreg ZCR_EL1	3	0	1	2	0
21689e9fb32SMark BrownFields ZCR_ELx
21789e9fb32SMark BrownEndSysreg
21889e9fb32SMark Brown
2190d1322e7SMark BrownSysregFields	SMCR_ELx
2200d1322e7SMark BrownRes0	63:32
2210d1322e7SMark BrownField	31	FA64
2220d1322e7SMark BrownRes0	30:9
2230d1322e7SMark BrownRaz	8:4
2240d1322e7SMark BrownField	3:0	LEN
2250d1322e7SMark BrownEndSysregFields
2260d1322e7SMark Brown
2270d1322e7SMark BrownSysreg	SMCR_EL1	3	0	1	2	6
2280d1322e7SMark BrownFields	SMCR_ELx
2290d1322e7SMark BrownEndSysreg
2300d1322e7SMark Brown
231*dffdeadeSMark BrownSysreg	FAR_EL1	3	0	6	0	0
232*dffdeadeSMark BrownField	63:0	ADDR
233*dffdeadeSMark BrownEndSysreg
234*dffdeadeSMark Brown
2358c12e22cSMark BrownSysregFields	CONTEXTIDR_ELx
2368c12e22cSMark BrownRes0	63:32
2378c12e22cSMark BrownField	31:0	PROCID
2388c12e22cSMark BrownEndSysregFields
2398c12e22cSMark Brown
2408c12e22cSMark BrownSysreg	CONTEXTIDR_EL1	3	0	13	0	1
2418c12e22cSMark BrownFields	CONTEXTIDR_ELx
2428c12e22cSMark BrownEndSysreg
2438c12e22cSMark Brown
244af65ea97SMark BrownSysreg	CLIDR_EL1	3	1	0	0	1
245af65ea97SMark BrownRes0	63:47
246af65ea97SMark BrownField	46:33	Ttypen
247af65ea97SMark BrownField	32:30	ICB
248af65ea97SMark BrownField	29:27	LoUU
249af65ea97SMark BrownField	26:24	LoC
250af65ea97SMark BrownField	23:21	LoUIS
251af65ea97SMark BrownField	20:18	Ctype7
252af65ea97SMark BrownField	17:15	Ctype6
253af65ea97SMark BrownField	14:12	Ctype5
254af65ea97SMark BrownField	11:9	Ctype4
255af65ea97SMark BrownField	8:6	Ctype3
256af65ea97SMark BrownField	5:3	Ctype2
257af65ea97SMark BrownField	2:0	Ctype1
258af65ea97SMark BrownEndSysreg
259af65ea97SMark Brown
260c37b8700SMark BrownSysreg	SMIDR_EL1	3	1	0	0	6
261c37b8700SMark BrownRes0	63:32
262c37b8700SMark BrownField	31:24	IMPLEMENTER
263c37b8700SMark BrownField	23:16	REVISION
264c37b8700SMark BrownField	15	SMPS
265c37b8700SMark BrownRes0	14:12
266c37b8700SMark BrownField	11:0	AFFINITY
267c37b8700SMark BrownEndSysreg
268c37b8700SMark Brown
2698bd354b3SMark BrownSysreg	CSSELR_EL1	3	2	0	0	0
2708bd354b3SMark BrownRes0	63:5
2718bd354b3SMark BrownField	4	TnD
2728bd354b3SMark BrownField	3:1	Level
2738bd354b3SMark BrownField	0	InD
2748bd354b3SMark BrownEndSysreg
2758bd354b3SMark Brown
27611e12a91SMark BrownSysreg	SVCR	3	3	4	2	2
27711e12a91SMark BrownRes0	63:2
27811e12a91SMark BrownField	1	ZA
27911e12a91SMark BrownField	0	SM
28011e12a91SMark BrownEndSysreg
28111e12a91SMark Brown
28289e9fb32SMark BrownSysreg	ZCR_EL2	3	4	1	2	0
28389e9fb32SMark BrownFields	ZCR_ELx
28489e9fb32SMark BrownEndSysreg
28589e9fb32SMark Brown
2868e053810SMark BrownSysreg	SMPRIMAP_EL2	3	4	1	2	5
2878e053810SMark BrownField	63:60	P15
2888e053810SMark BrownField	59:56	P14
2898e053810SMark BrownField	55:52	P13
2908e053810SMark BrownField	51:48	P12
2918e053810SMark BrownField	47:44	P11
2928e053810SMark BrownField	43:40	P10
2938e053810SMark BrownField	39:36	F9
2948e053810SMark BrownField	35:32	P8
2958e053810SMark BrownField	31:28	P7
2968e053810SMark BrownField	27:24	P6
2978e053810SMark BrownField	23:20	P5
2988e053810SMark BrownField	19:16	P4
2998e053810SMark BrownField	15:12	P3
3008e053810SMark BrownField	11:8	P2
3018e053810SMark BrownField	7:4	P1
3028e053810SMark BrownField	3:0	P0
3038e053810SMark BrownEndSysreg
3048e053810SMark Brown
3050d1322e7SMark BrownSysreg	SMCR_EL2	3	4	1	2	6
3060d1322e7SMark BrownFields	SMCR_ELx
3070d1322e7SMark BrownEndSysreg
3080d1322e7SMark Brown
30901baa57aSMark BrownSysreg	DACR32_EL2	3	4	3	0	0
31001baa57aSMark BrownRes0	63:32
31101baa57aSMark BrownField	31:30	D15
31201baa57aSMark BrownField	29:28	D14
31301baa57aSMark BrownField	27:26	D13
31401baa57aSMark BrownField	25:24	D12
31501baa57aSMark BrownField	23:22	D11
31601baa57aSMark BrownField	21:20	D10
31701baa57aSMark BrownField	19:18	D9
31801baa57aSMark BrownField	17:16	D8
31901baa57aSMark BrownField	15:14	D7
32001baa57aSMark BrownField	13:12	D6
32101baa57aSMark BrownField	11:10	D5
32201baa57aSMark BrownField	9:8	D4
32301baa57aSMark BrownField	7:6	D3
32401baa57aSMark BrownField	5:4	D2
32501baa57aSMark BrownField	3:2	D1
32601baa57aSMark BrownField	1:0	D0
32701baa57aSMark BrownEndSysreg
32801baa57aSMark Brown
329*dffdeadeSMark BrownSysreg	FAR_EL2	3	4	6	0	0
330*dffdeadeSMark BrownField	63:0	ADDR
331*dffdeadeSMark BrownEndSysreg
332*dffdeadeSMark Brown
3338c12e22cSMark BrownSysreg	CONTEXTIDR_EL2	3	4	13	0	1
3348c12e22cSMark BrownFields	CONTEXTIDR_ELx
3358c12e22cSMark BrownEndSysreg
3368c12e22cSMark Brown
337b5c0f105SMark BrownSysreg	CPACR_EL12	3	5	1	0	2
338b5c0f105SMark BrownFields	CPACR_ELx
339b5c0f105SMark BrownEndSysreg
340b5c0f105SMark Brown
34189e9fb32SMark BrownSysreg	ZCR_EL12	3	5	1	2	0
34289e9fb32SMark BrownFields	ZCR_ELx
34389e9fb32SMark BrownEndSysreg
34489e9fb32SMark Brown
3450d1322e7SMark BrownSysreg	SMCR_EL12	3	5	1	2	6
3460d1322e7SMark BrownFields	SMCR_ELx
3470d1322e7SMark BrownEndSysreg
3480d1322e7SMark Brown
349*dffdeadeSMark BrownSysreg	FAR_EL12	3	5	6	0	0
350*dffdeadeSMark BrownField	63:0	ADDR
351*dffdeadeSMark BrownEndSysreg
352*dffdeadeSMark Brown
3538c12e22cSMark BrownSysreg	CONTEXTIDR_EL12	3	5	13	0	1
3548c12e22cSMark BrownFields	CONTEXTIDR_ELx
3558c12e22cSMark BrownEndSysreg
3568c12e22cSMark Brown
35741fde735SMark BrownSysregFields TTBRx_EL1
35841fde735SMark BrownField	63:48	ASID
35941fde735SMark BrownField	47:1	BADDR
36041fde735SMark BrownField	0	CnP
36141fde735SMark BrownEndSysregFields
36241fde735SMark Brown
36341fde735SMark BrownSysreg	TTBR0_EL1	3	0	2	0	0
36441fde735SMark BrownFields	TTBRx_EL1
36541fde735SMark BrownEndSysreg
36641fde735SMark Brown
36741fde735SMark BrownSysreg	TTBR1_EL1	3	0	2	0	1
36841fde735SMark BrownFields	TTBRx_EL1
36941fde735SMark BrownEndSysreg
370